本文整理汇总了C++中TreeIterator::has方法的典型用法代码示例。如果您正苦于以下问题:C++ TreeIterator::has方法的具体用法?C++ TreeIterator::has怎么用?C++ TreeIterator::has使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeIterator
的用法示例。
在下文中一共展示了TreeIterator::has方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getMenuTreeNodeSibling
/*---------------------------------------------------------------------*//**
兄弟ノード取得
**//*---------------------------------------------------------------------*/
MenuTreeNode* Menu::getMenuTreeNodeSibling(MenuTreeNode* mtnode) const
{
for(TreeIterator<MenuTreeNode> it = _tree->iterator(); it.has(); it.next())
{
if(it.object() == mtnode)
{
TreeNode<MenuTreeNode>* tnodeSibling = it.node()->sibling();
return (tnodeSibling != 0L) ? tnodeSibling->object() : 0L;
}
}
return 0L;
}
示例2: getMenuTreeNodeChild
/*---------------------------------------------------------------------*//**
子ノード取得
**//*---------------------------------------------------------------------*/
MenuTreeNode* Menu::getMenuTreeNodeChild(MenuTreeNode* mtnode) const
{
for(TreeIterator<MenuTreeNode> it = _tree->iterator(); it.has(); it.next())
{
if(it.object() == mtnode)
{
TreeNode<MenuTreeNode>* tnodeChild = it.node()->child();
return (tnodeChild != 0L) ? tnodeChild->object() : 0L;
}
}
return 0L;
}
示例3: createFromXml
bool Menu::createFromXml(FileBase* fileXml, MenuFuncTable* functblRef, MenuPanelFactory* pnlfctryRef, void* objCreateParam)
{
// XML ファイルをバッファに読み込む
VcString bufFile;
while(true)
{
const int SIZE_BUF = 100 * 1024;
char buf[SIZE_BUF];
int sizeRead = fileXml->read(buf, SIZE_BUF);
bufFile.add(buf, sizeRead);
if(sizeRead < SIZE_BUF) { break; }
}
CMXML_TRACE(VcString::format("{Menu::createFromXml} menu xml : size=%d\n", bufFile.getLength()));
// XML を解析する
XmlParser xmlparser;
xmlparser.parseXmlDocument(&bufFile);
CMXML_TRACE("{Menu::createFromXml} XmlParser::parseXmlDocument end.\n");
// ツリーを作成する
_tree = new Tree<MenuTreeNode>(true);
addTreeNode(_tree->addRootNode(), true, xmlparser.getRootNode());
#if defined(_DEBUG)
TRACE("{Menu::createFromXml} menu hierarchy\n");
for(TreeIterator<MenuTreeNode> it = _tree->iterator(); it.has(); it.next())
{
if(it.object() != 0L) { for(int i = 0; i < it.getDepth(); i++) { CMXML_TRACE(" "); } CMXML_TRACE( *it.object()->getName() + "\n" ); }
}
#endif
// ファンクションテーブルを保存する
_functblRef = functblRef;
// パネルファクトリを保存する
_pnlfctryRef = pnlfctryRef;
// パラメータオブジェクトを保存する
_objCreateParamRef = objCreateParam;
return true;
}
示例4: destroy
/*---------------------------------------------------------------------*//**
破棄
**//*---------------------------------------------------------------------*/
void Menu::destroy()
{
if(_isShow)
{
closeMenu();
}
// ツリー削除
if(_tree != 0L)
{
for(TreeIterator<MenuTreeNode> it = _tree->iterator(); it.has(); it.next())
{
MenuTreeNode* mtnode = it.object();
if(mtnode != 0L) // ルートは NULL
{
mtnode->destroy();
}
}
delete _tree;
_tree = 0L;
}
}