void Container::RemoveAll() { while( !m_children.empty() ) { Widget::Ptr widget = m_children.back(); m_children.pop_back(); widget->SetParent( Widget::Ptr() ); HandleRemove( widget ); } RequestResize(); }
void Container::Remove( const Widget::Ptr& widget ) { WidgetsList::iterator iter( std::find( m_children.begin(), m_children.end(), widget ) ); if( iter != m_children.end() ) { m_children.erase( iter ); widget->SetParent( Widget::Ptr() ); HandleRemove( widget ); RequestResize(); } }
void Container::Add( const Widget::Ptr& widget ) { if( IsChild( widget ) ) { return; } m_children.push_back( widget ); HandleAdd( widget ); // Check if HandleAdd still wants the little boy. if( IsChild( widget ) ) { widget->SetParent( shared_from_this() ); RequestResize(); } }