Another STLification of a list.

This commit is contained in:
2025-08-09 11:20:20 -04:00
parent 8549ca489f
commit 4ce4fac659
2 changed files with 14 additions and 28 deletions

View File

@ -1243,13 +1243,13 @@ Fl_Button *FltkCheckButtonResource::createNewButton (core::Allocation
bool FltkRadioButtonResource::Group::FltkGroupIterator::hasNext () bool FltkRadioButtonResource::Group::FltkGroupIterator::hasNext ()
{ {
return it.hasNext (); return pos != last;
} }
dw::core::ui::RadioButtonResource dw::core::ui::RadioButtonResource
*FltkRadioButtonResource::Group::FltkGroupIterator::getNext () *FltkRadioButtonResource::Group::FltkGroupIterator::getNext ()
{ {
return (dw::core::ui::RadioButtonResource*)it.getNext (); return *pos++;
} }
void FltkRadioButtonResource::Group::FltkGroupIterator::unref () void FltkRadioButtonResource::Group::FltkGroupIterator::unref ()
@ -1261,26 +1261,20 @@ void FltkRadioButtonResource::Group::FltkGroupIterator::unref ()
FltkRadioButtonResource::Group::Group (FltkRadioButtonResource FltkRadioButtonResource::Group::Group (FltkRadioButtonResource
*radioButtonResource) *radioButtonResource)
{ {
list = new lout::container::typed::List <FltkRadioButtonResource> (false);
connect (radioButtonResource); connect (radioButtonResource);
} }
FltkRadioButtonResource::Group::~Group ()
{
delete list;
}
void FltkRadioButtonResource::Group::connect (FltkRadioButtonResource void FltkRadioButtonResource::Group::connect (FltkRadioButtonResource
*radioButtonResource) *radioButtonResource)
{ {
list->append (radioButtonResource); list.push_back (radioButtonResource);
} }
void FltkRadioButtonResource::Group::unconnect (FltkRadioButtonResource void FltkRadioButtonResource::Group::unconnect (FltkRadioButtonResource
*radioButtonResource) *radioButtonResource)
{ {
list->removeRef (radioButtonResource); list.remove (radioButtonResource);
if (list->isEmpty ()) if (list.empty())
delete this; delete this;
} }
@ -1322,9 +1316,8 @@ void FltkRadioButtonResource::widgetCallback (Fl_Widget *widget,
void FltkRadioButtonResource::buttonClicked () void FltkRadioButtonResource::buttonClicked ()
{ {
for (Iterator <FltkRadioButtonResource> it = group->iterator (); for ( FltkRadioButtonResource *other: *group )
it.hasNext (); ) { {
FltkRadioButtonResource *other = it.getNext ();
other->setActivated (other == this); other->setActivated (other == this);
} }
} }

View File

@ -401,32 +401,25 @@ private:
public dw::core::ui::RadioButtonResource::GroupIterator public dw::core::ui::RadioButtonResource::GroupIterator
{ {
private: private:
lout::container::typed::Iterator <FltkRadioButtonResource> it; std::list< FltkRadioButtonResource * >::iterator pos;
std::list< FltkRadioButtonResource * >::iterator last;
public: public:
inline FltkGroupIterator (lout::container::typed::List inline FltkGroupIterator (std::list< FltkRadioButtonResource * > &list )
<FltkRadioButtonResource> { pos = list.begin (); last = list.end(); }
*list)
{ it = list->iterator (); }
bool hasNext (); bool hasNext ();
dw::core::ui::RadioButtonResource *getNext (); dw::core::ui::RadioButtonResource *getNext ();
void unref (); void unref ();
}; };
lout::container::typed::List <FltkRadioButtonResource> *list; std::list< FltkRadioButtonResource * > list;
protected:
~Group ();
public: public:
Group (FltkRadioButtonResource *radioButtonResource); Group (FltkRadioButtonResource *radioButtonResource);
inline lout::container::typed::Iterator <FltkRadioButtonResource> auto begin () { return list.begin(); }
iterator () auto end () { return list.end(); }
{
return list->iterator ();
}
inline dw::core::ui::RadioButtonResource::GroupIterator inline dw::core::ui::RadioButtonResource::GroupIterator
*groupIterator () *groupIterator ()