size_t wxSTEditorTreeCtrl::DoGetAllChildrenItemIds(const wxTreeItemId& start_id, wxArrayTreeItemIds& arrayIds, STE_TreeCtrlGet_Type get_type) { size_t count = 0; for (wxTreeItemId id = start_id; id; id = GetNextSibling(id)) { if (get_type == STE_TREECTRL_GET_ALL) { arrayIds.Add(id); count++; } else { wxTreeItemData* data = GetItemData(id); if (( data && ((get_type & STE_TREECTRL_GET_DATA) != 0)) || (!data && ((get_type & STE_TREECTRL_GET_NODATA) != 0))) { arrayIds.Add(id); count++; } } wxTreeItemIdValue childCookie; wxTreeItemId childId = GetFirstChild(id, childCookie); if (childId) count += DoGetAllChildrenItemIds(childId, arrayIds, get_type); } return count; }
void clTreeCtrlPanel::GetSelections(wxArrayString& folders, wxArrayTreeItemIds& folderItems, wxArrayString& files, wxArrayTreeItemIds& fileItems) { folders.clear(); files.clear(); folderItems.clear(); fileItems.clear(); wxArrayTreeItemIds items; if(GetTreeCtrl()->GetSelections(items)) { for(size_t i = 0; i < items.size(); ++i) { clTreeCtrlData* cd = GetItemData(items.Item(i)); if(cd) { if(cd->IsFile()) { files.Add(cd->GetPath()); fileItems.Add(items.Item(i)); } else if(cd->IsFolder()) { folders.Add(cd->GetPath()); folderItems.Add(items.Item(i)); } } } } }
void LLDBLocalsView::GetWatchesFromSelections(wxArrayTreeItemIds& items) { items.Clear(); wxArrayTreeItemIds arr; m_treeList->GetSelections(arr); for(size_t i = 0; i < arr.GetCount(); ++i) { wxTreeItemId item = arr.Item(i); if(!GetItemData(item)) continue; LLDBVariableClientData* data = GetItemData(item); if(!data) continue; LLDBVariable::Ptr_t lldbVar = data->GetVariable(); if(!lldbVar) continue; if(lldbVar->IsWatch()) { items.Add(item); } } }
void clTreeCtrlPanel::GetTopLevelFolders(wxArrayString& paths, wxArrayTreeItemIds& items) { wxTreeItemIdValue cookie; wxTreeItemId child = GetTreeCtrl()->GetFirstChild(GetTreeCtrl()->GetRootItem(), cookie); while(child.IsOk()) { clTreeCtrlData* clientData = GetItemData(child); paths.Add(clientData->GetPath()); items.Add(child); child = GetTreeCtrl()->GetNextChild(GetTreeCtrl()->GetRootItem(), cookie); } }
void TreeWndCtrl::GetVisibleItems(wxArrayTreeItemIds& visibleItemList, const wxTreeItemId& item) { wxASSERT_MSG((item != TreeWndCtrlItemIdInvalid), wxT("Invalid item!")); if ( IsVisible(item) ) visibleItemList.Add(item); TreeWndCtrlNode *node = (TreeWndCtrlNode *)item.m_pItem; size_t count = node->m_children.GetCount(); for ( size_t i = 0; i < count; ++i ) GetVisibleItems(visibleItemList, node->m_children.Item(i)); }
SvnTreeData::SvnNodeType SubversionView::DoGetSelectionType(const wxArrayTreeItemIds& items) { m_selectionInfo.Clear(); SvnTreeData::SvnNodeType type(SvnTreeData::SvnNodeTypeInvalid); for (size_t i=0; i<items.GetCount(); i++) { if (items.Item(i).IsOk() == false) { m_selectionInfo.Clear(); return m_selectionInfo.m_selectionType; // Invalid } SvnTreeData *data = (SvnTreeData *)m_treeCtrl->GetItemData(items.Item(i)); if ( !data ) { m_selectionInfo.Clear(); return m_selectionInfo.m_selectionType; // Invalid } if (data->GetType() == SvnTreeData::SvnNodeTypeRoot && items.GetCount() == 1) { // populate the list of paths with all the added paths DoGetPaths( items.Item(i), m_selectionInfo.m_paths ); m_selectionInfo.m_selectionType = SvnTreeData::SvnNodeTypeRoot; return m_selectionInfo.m_selectionType; } if (data->GetType() == SvnTreeData::SvnNodeTypeAddedRoot && items.GetCount() == 1) { // populate the list of paths with all the added paths DoGetPaths( items.Item(i), m_selectionInfo.m_paths ); m_selectionInfo.m_selectionType = SvnTreeData::SvnNodeTypeAddedRoot; return m_selectionInfo.m_selectionType; } if (data->GetType() == SvnTreeData::SvnNodeTypeDeletedRoot && items.GetCount() == 1) { // populate the list of paths with all the deleted paths DoGetPaths( items.Item(i), m_selectionInfo.m_paths ); m_selectionInfo.m_selectionType = SvnTreeData::SvnNodeTypeDeletedRoot; return m_selectionInfo.m_selectionType; } if (data->GetType() == SvnTreeData::SvnNodeTypeConflictRoot && items.GetCount() == 1) { // populate the list of paths with all the conflicted paths DoGetPaths( items.Item(i), m_selectionInfo.m_paths ); m_selectionInfo.m_selectionType = SvnTreeData::SvnNodeTypeConflictRoot; return m_selectionInfo.m_selectionType; } if (data->GetType() == SvnTreeData::SvnNodeTypeModifiedRoot && items.GetCount() == 1) { // populate the list of paths with all the conflicted paths DoGetPaths( items.Item(i), m_selectionInfo.m_paths ); m_selectionInfo.m_selectionType = SvnTreeData::SvnNodeTypeModifiedRoot; return m_selectionInfo.m_selectionType; } if (type == SvnTreeData::SvnNodeTypeInvalid && (data->GetType() == SvnTreeData::SvnNodeTypeFile || data->GetType() == SvnTreeData::SvnNodeTypeRoot)) { type = data->GetType(); m_selectionInfo.m_selectionType = type; m_selectionInfo.m_paths.Add(data->GetFilepath()); } else if ( type == SvnTreeData::SvnNodeTypeInvalid ) { type = data->GetType(); } else if (data->GetType() != type) { m_selectionInfo.m_paths.Clear(); return SvnTreeData::SvnNodeTypeInvalid; } else { // Same type, just add the path m_selectionInfo.m_paths.Add(data->GetFilepath()); } } return type; }