Push Widget ownership up one more level.
This commit is contained in:
@ -733,7 +733,9 @@ FltkComplexButtonResource::FltkComplexButtonResource (FltkPlatform *platform,
|
|||||||
flatView = topView = NULL;
|
flatView = topView = NULL;
|
||||||
this->relief = relief;
|
this->relief = relief;
|
||||||
FltkResource::init (platform);
|
FltkResource::init (platform);
|
||||||
ComplexButtonResource::init (widget);
|
std::unique_ptr< dw::core::Widget > widget_unique;
|
||||||
|
widget_unique.reset( widget );
|
||||||
|
ComplexButtonResource::init (std::move( widget_unique ));
|
||||||
}
|
}
|
||||||
|
|
||||||
FltkComplexButtonResource::~FltkComplexButtonResource ()
|
FltkComplexButtonResource::~FltkComplexButtonResource ()
|
||||||
|
|||||||
8
dw/ui.cc
8
dw/ui.cc
@ -340,17 +340,15 @@ ComplexButtonResource::ComplexButtonResource ()
|
|||||||
click_x = click_y = -1;
|
click_x = click_y = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComplexButtonResource::init (Widget *widget)
|
void ComplexButtonResource::init (std::unique_ptr< Widget > widget)
|
||||||
{
|
{
|
||||||
childWidget = widget;
|
childWidget = widget.get();
|
||||||
|
|
||||||
/* FIXME: Buttons should not need a full Layout */
|
/* FIXME: Buttons should not need a full Layout */
|
||||||
layout = new Layout (createPlatform (), false);
|
layout = new Layout (createPlatform (), false);
|
||||||
setLayout (layout);
|
setLayout (layout);
|
||||||
DBG_OBJ_ASSOC_CHILD (layout);
|
DBG_OBJ_ASSOC_CHILD (layout);
|
||||||
std::unique_ptr< Widget > widget_unique;
|
layout->setWidget (std::move( widget ));
|
||||||
widget_unique.reset( widget );
|
|
||||||
layout->setWidget (std::move( widget_unique ));
|
|
||||||
layout->connect (&layoutReceiver);
|
layout->connect (&layoutReceiver);
|
||||||
|
|
||||||
if (getEmbed ())
|
if (getEmbed ())
|
||||||
|
|||||||
2
dw/ui.hh
2
dw/ui.hh
@ -433,7 +433,7 @@ protected:
|
|||||||
virtual int reliefXThickness () = 0;
|
virtual int reliefXThickness () = 0;
|
||||||
virtual int reliefYThickness () = 0;
|
virtual int reliefYThickness () = 0;
|
||||||
|
|
||||||
void init (Widget *widget);
|
void init (std::unique_ptr< Widget > widget);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ComplexButtonResource ();
|
ComplexButtonResource ();
|
||||||
|
|||||||
Reference in New Issue
Block a user