コード例 #1
0
ファイル: nsSolutionBrowser.cpp プロジェクト: Ali-il/gamekit
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);
		}
	}
}
コード例 #2
0
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);
	}
}