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

View File

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