wxTreeItemId luProjTree::findItemByData(const wxTreeItemId& parent, const wxString& data) { if (!parent.IsOk()) return parent; ItemData* item = dynamic_cast<ItemData*>(GetItemData(parent)); if (item && item->GetName() == data) return parent; if (item) gkPrintf("%s", (const char*)item->GetName()); if (HasChildren(parent)) { wxTreeItemIdValue cookie; wxTreeItemId item = GetFirstChild(parent, cookie); while (item.IsOk()) { wxTreeItemId find = findItemByData(item, data); //find is item self or children. if (find.IsOk()) return find; item = GetNextChild(item, cookie); } } return wxTreeItemId(); //not found }
void luProjTree::OnItemActivated(wxTreeEvent& event) { wxTreeItemId itemId = event.GetItem(); ItemData* item = (ItemData*)GetItemData(itemId); luMainFrame* frame = getLuMainFrame(); if (!item || !frame) return; int data = item->GetData(); wxString name = item->GetName(); }
wxString luProjTree::getSelectedItemName() { ItemData* itemData = _getSelectedItemData(); return itemData ? itemData->GetName() : ""; }