Plumb Widget ownership up higher.

This commit is contained in:
2025-04-18 14:15:09 -04:00
parent b6c7511997
commit 99515ff353
6 changed files with 14 additions and 13 deletions

View File

@ -390,11 +390,10 @@ FltkPlatform::FltkResourceFactory::createLabelButtonResource (const char
}
core::ui::ComplexButtonResource *
FltkPlatform::FltkResourceFactory::createComplexButtonResource (core::Widget
*widget,
FltkPlatform::FltkResourceFactory::createComplexButtonResource (std::unique_ptr< core::Widget > widget,
bool relief)
{
return new ui::FltkComplexButtonResource (platform, widget, relief);
return new ui::FltkComplexButtonResource (platform, std::move( widget ), relief);
}
core::ui::ListResource *

View File

@ -104,7 +104,7 @@ private:
core::ui::LabelButtonResource *createLabelButtonResource (const char
*label);
core::ui::ComplexButtonResource *
createComplexButtonResource (core::Widget *widget, bool relief);
createComplexButtonResource (std::unique_ptr< core::Widget > widget, bool relief);
core::ui::ListResource *
createListResource (core::ui::ListResource::SelectionMode selectionMode,
int rows);

View File

@ -726,16 +726,14 @@ void FltkLabelButtonResource::setLabel (const char *label)
// ----------------------------------------------------------------------
FltkComplexButtonResource::FltkComplexButtonResource (FltkPlatform *platform,
dw::core::Widget
*widget, bool relief):
std::unique_ptr< dw::core::Widget > widget,
bool relief):
FltkSpecificResource <dw::core::ui::ComplexButtonResource> (platform)
{
flatView = topView = NULL;
this->relief = relief;
FltkResource::init (platform);
std::unique_ptr< dw::core::Widget > widget_unique;
widget_unique.reset( widget );
ComplexButtonResource::init (std::move( widget_unique ));
ComplexButtonResource::init (std::move( widget ));
}
FltkComplexButtonResource::~FltkComplexButtonResource ()

View File

@ -284,7 +284,7 @@ protected:
Fl_Widget *createNewWidget (core::Allocation *allocation);
public:
FltkComplexButtonResource (FltkPlatform *platform, dw::core::Widget *widget,
FltkComplexButtonResource (FltkPlatform *platform, std::unique_ptr< dw::core::Widget > widget,
bool relief);
~FltkComplexButtonResource ();
};

View File

@ -582,7 +582,7 @@ class ResourceFactory: public lout::object::Object
public:
virtual LabelButtonResource *createLabelButtonResource (const char *label)
= 0;
virtual ComplexButtonResource *createComplexButtonResource (Widget *widget,
virtual ComplexButtonResource *createComplexButtonResource (std::unique_ptr< Widget > widget,
bool relief)
= 0;
virtual ListResource *createListResource (ListResource::SelectionMode