コード例 #1
0
ファイル: nuiComboBox.cpp プロジェクト: YetToCome/nui3
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);
  }
}
コード例 #2
0
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;
}
コード例 #3
0
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;
}
コード例 #4
0
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);
}
コード例 #5
0
ファイル: nuiTree.cpp プロジェクト: YetToCome/nui3
void nuiTreeBase::OnChildDeleted(const nuiEvent& rEvent)
{
  const nuiTreeEvent<nuiTreeBase>* pTreeEvent = dynamic_cast<const nuiTreeEvent<nuiTreeBase>*>(&rEvent);
  DelChild(pTreeEvent->mpChild);
}
コード例 #6
0
ファイル: nuiTree.cpp プロジェクト: YetToCome/nui3
void nuiTreeBase::OnDelChildRequest(const nuiEvent& rEvent)
{
  nuiTreePtr pChild = (nuiTreePtr)rEvent.mpUser;
  mTreeNodeEventSink.DisconnectSource(*const_cast<nuiEventSource*>(rEvent.GetSource()));
  DelChild(pChild);
}