Push Widget ownership up one more level.

This commit is contained in:
2025-04-18 14:08:07 -04:00
parent dceaffe4f7
commit b6c7511997
3 changed files with 7 additions and 7 deletions

View File

@ -733,7 +733,9 @@ FltkComplexButtonResource::FltkComplexButtonResource (FltkPlatform *platform,
flatView = topView = NULL;
this->relief = relief;
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 ()

View File

@ -340,17 +340,15 @@ ComplexButtonResource::ComplexButtonResource ()
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 */
layout = new Layout (createPlatform (), false);
setLayout (layout);
DBG_OBJ_ASSOC_CHILD (layout);
std::unique_ptr< Widget > widget_unique;
widget_unique.reset( widget );
layout->setWidget (std::move( widget_unique ));
layout->setWidget (std::move( widget ));
layout->connect (&layoutReceiver);
if (getEmbed ())

View File

@ -433,7 +433,7 @@ protected:
virtual int reliefXThickness () = 0;
virtual int reliefYThickness () = 0;
void init (Widget *widget);
void init (std::unique_ptr< Widget > widget);
public:
ComplexButtonResource ();