本文整理汇总了C++中widget::Ptr::GetHierarchyLevel方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::GetHierarchyLevel方法的具体用法?C++ Ptr::GetHierarchyLevel怎么用?C++ Ptr::GetHierarchyLevel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类widget::Ptr
的用法示例。
在下文中一共展示了Ptr::GetHierarchyLevel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetParent
void Widget::SetParent( Widget::Ptr parent ) {
auto cont = std::dynamic_pointer_cast<Container>( parent );
auto oldparent = m_parent.lock();
if( cont == oldparent ) {
return;
}
if( oldparent ) {
oldparent->Remove( shared_from_this() );
}
m_parent = cont;
auto iter = std::find( root_widgets.begin(), root_widgets.end(), this );
if( parent ) {
// If this widget has a parent, it is no longer a root widget.
if( iter != root_widgets.end() ) {
root_widgets.erase( iter );
}
SetHierarchyLevel( parent->GetHierarchyLevel() + 1 );
}
else {
// If this widget does not have a parent, it becomes a root widget.
if( iter == root_widgets.end() ) {
root_widgets.push_back( this );
}
SetHierarchyLevel( 0 );
}
HandleAbsolutePositionChange();
}
示例2: SetParent
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();
}