Another STLification of a list.
This commit is contained in:
21
dw/fltkui.cc
21
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 <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);
|
||||
}
|
||||
}
|
||||
|
21
dw/fltkui.hh
21
dw/fltkui.hh
@ -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 ()
|
||||
|
Reference in New Issue
Block a user