+void Container::check_animation_interval()
+{
+ Time::TimeDelta shortest;
+ for(list<Child *>::const_iterator i=children.begin(); i!=children.end(); ++i)
+ {
+ const Time::TimeDelta &child_iv = (*i)->widget->get_animation_interval();
+ if(child_iv && (!shortest || child_iv<shortest))
+ shortest = child_iv;
+ }
+
+ if(shortest!=anim_interval)
+ set_animation_interval(shortest);
+}
+
+void Container::rebuild_hierarchy()
+{
+ Widget::rebuild_hierarchy();
+
+ if(children_rebuild_needed)
+ {
+ children_rebuild_needed = false;
+ for(list<Child *>::iterator i=children.begin(); i!=children.end(); ++i)
+ (*i)->widget->rebuild_hierarchy();
+ }
+}
+