/* $Id$
This file is part of libmspgltk
-Copyright © 2009 Mikko Rasa, Mikkosoft Productions
+Copyright © 2009-2011 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
void Container::add(Widget &wdg)
{
- set_parent(wdg, this);
+ wdg.set_parent(this);
children.push_back(create_child(&wdg));
+ on_child_added(wdg);
}
void Container::remove(Widget &wdg)
for(list<Child *>::iterator i=children.begin(); i!=children.end(); ++i)
if((*i)->widget==&wdg)
{
- set_parent(wdg, 0);
+ wdg.set_parent(0);
delete *i;
children.erase(i);
+ on_child_removed(wdg);
return;
}
throw InvalidState("That Widget is not in this Container");
}
+Container::Child *Container::create_child(Widget *wdg)
+{
+ return new Child(*this, wdg);
+}
+
list<Widget *> Container::get_children() const
{
list<Widget *> result;
click_focus = 0;
}
-Container::Child *Container::create_child(Widget *wdg)
-{
- return new Child(*this, wdg);
-}
-
void Container::on_reparent()
{
for(list<Child *>::iterator i=children.begin(); i!=children.end(); ++i)
{
if(Container *c = dynamic_cast<Container *>((*i)->widget))
c->on_reparent();
- update_style(*(*i)->widget);
+ (*i)->widget->update_style();
}
}