void Widget::SetParent( Widget::Ptr parent ) { Container::Ptr cont( std::dynamic_pointer_cast<Container>( parent ) ); if( !cont ) { return; } Container::Ptr oldparent = m_parent.lock(); if( oldparent ) { oldparent->Remove( shared_from_this() ); } m_parent = cont; }
void Widget::SetParent( const Widget::Ptr& parent ) { Container::Ptr cont( DynamicPointerCast<Container>( parent ) ); if( !cont ) { return; } Container::Ptr oldparent = m_parent.lock(); if( oldparent ) { oldparent->Remove( shared_from_this() ); } m_parent = cont; SetHierarchyLevel( parent->GetHierarchyLevel() + 1 ); HandleAbsolutePositionChange(); }