diff --git a/dw/fltkui.cc b/dw/fltkui.cc index f3fe245..014a911 100644 --- a/dw/fltkui.cc +++ b/dw/fltkui.cc @@ -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 (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 it = group->iterator (); - it.hasNext (); ) { - FltkRadioButtonResource *other = it.getNext (); + for ( FltkRadioButtonResource *other: *group ) + { other->setActivated (other == this); } } diff --git a/dw/fltkui.hh b/dw/fltkui.hh index 527d9ce..d630219 100644 --- a/dw/fltkui.hh +++ b/dw/fltkui.hh @@ -401,32 +401,25 @@ private: public dw::core::ui::RadioButtonResource::GroupIterator { private: - lout::container::typed::Iterator it; + std::list< FltkRadioButtonResource * >::iterator pos; + std::list< FltkRadioButtonResource * >::iterator last; public: - inline FltkGroupIterator (lout::container::typed::List - - *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 *list; - - protected: - ~Group (); + std::list< FltkRadioButtonResource * > list; public: Group (FltkRadioButtonResource *radioButtonResource); - inline lout::container::typed::Iterator - iterator () - { - return list->iterator (); - } + auto begin () { return list.begin(); } + auto end () { return list.end(); } inline dw::core::ui::RadioButtonResource::GroupIterator *groupIterator ()