void nuiComboBox::UnparentTree(nuiTreeNode* pTree) { NGL_ASSERT(pTree); pTree->Select(false); pTree->Open(false); nuiWidgetPtr pWidget = pTree->GetElement(); NGL_ASSERT(pWidget); if (pWidget->GetParent() == this) DelChild(pWidget); uint32 count = pTree->GetChildrenCount(); for (uint32 i = 0; i < count; i++) { nuiTreeNode* pNode = dynamic_cast<nuiTreeNode*>(pTree->GetChild(i)); NGL_ASSERT(pNode); UnparentTree(pNode); } }
bool nuiScrollView::Clear() { int childCount = GetChildrenCount(); for (childCount--; childCount >= 0; childCount--) { nuiWidget* pWidget = GetChild(childCount); if (pWidget && pWidget != mpHorizontal && pWidget != mpVertical) { DelChild(pWidget); } } mpChildren.clear(); if (!mVerticalIsExternal) mpChildren.push_back(mpVertical); if (!mHorizontalIsExternal) mpChildren.push_back(mpHorizontal); InvalidateLayout(); DebugRefreshInfo(); return true; }
bool nuiSimpleContainer::Clear() { CheckValid(); // start by trashing everybody nuiContainer::ChildrenCallOnTrash(); // then, clear the container int childCount = GetChildrenCount(); for (childCount--; childCount >= 0; childCount--) { nuiWidget* pWidget = GetChild(childCount); if (pWidget) { DelChild(pWidget); } } mpChildren.clear(); InvalidateLayout(); DebugRefreshInfo(); return true; }
void nuiPopupMenu::UnparentTree(nuiTreeNode* pTree) { NGL_ASSERT(pTree); nuiWidgetPtr pWidget = pTree->GetElement(); if (pWidget->GetParent() == this) { pTree->Select(false); pTree->Open(false); NGL_ASSERT(pWidget); DelChild(pWidget); } uint32 count = pTree->GetChildrenCount(); for (uint32 i = 0; i < count; i++) { nuiTreeNode* pNode = dynamic_cast<nuiTreeNode*>(pTree->GetChild(i)); NGL_ASSERT(pNode); UnparentTree(pNode); } NGL_ASSERT(mpTree); mPopupTreeSink.DisconnectSource(pTree->Changed); mPopupTreeSink.DisconnectSource(pTree->ChildAdded); mPopupTreeSink.DisconnectSource(pTree->ChildDeleted); }
void nuiTreeBase::OnChildDeleted(const nuiEvent& rEvent) { const nuiTreeEvent<nuiTreeBase>* pTreeEvent = dynamic_cast<const nuiTreeEvent<nuiTreeBase>*>(&rEvent); DelChild(pTreeEvent->mpChild); }
void nuiTreeBase::OnDelChildRequest(const nuiEvent& rEvent) { nuiTreePtr pChild = (nuiTreePtr)rEvent.mpUser; mTreeNodeEventSink.DisconnectSource(*const_cast<nuiEventSource*>(rEvent.GetSource())); DelChild(pChild); }