void nsSolutionBrowser::treeEvent(nsTreeEvent& evt) { if (evt.getId() == NS_TREE_ADD) { nsTreeItem* item = new nsTreeItem(); item->m_tree = evt.ptr(); wxTreeItemId root = m_tree->GetRootItem(); m_tree->AppendItem(root, item->m_tree->getName().c_str(), -1, -1, item); m_tree->Expand(root); } else if (evt.getId() == NS_TREE_REMOVE && evt.getCaller() != this) { nsNodeTree* ntree = evt.ptr(); // remove this tree wxTreeItemIdValue cookie; wxTreeItemId id = m_tree->GetFirstChild(m_tree->GetRootItem(), cookie); int max = m_tree->GetCount(), i = 0; for (; id.IsOk() && i < max; ++i) { nsTreeItem* item = (nsTreeItem*)m_tree->GetItemData(id); if (item && item->m_tree == ntree) { m_tree->DeleteChildren(item->GetId()); m_tree->Delete(item->GetId()); return; } id = m_tree->GetNextSibling(id); } } }
void nsPropertyPage::treeEvent(nsTreeEvent& evt) { if (evt.getId() == NS_TREE_CHANGED) { nsNodeTree* ntree = evt.ptr(); if (ntree) { m_tree->setTree(ntree); m_manager->SelectPage(m_tree); } } else if (evt.getId() == NS_TREE_ADD || evt.getId() == NS_TREE_SELECT) { nsNodeTree* ntree = evt.ptr(); if (ntree) { m_tree->setTree(ntree); m_manager->SelectPage(m_tree); } } else if (evt.getId() == NS_TREE_REMOVE || evt.getId() == NS_TREE_DESELECT) { m_tree->setTree(0); m_manager->SelectPage(m_default); } }