void CRepositoryBrowser::OnContextMenu_RepoList(CPoint point) { TShadowFilesTreeList selectedLeafs; selectedLeafs.reserve(m_RepoList.GetSelectedCount()); bool folderSelected = false; bool filesSelected = false; bool submodulesSelected = false; POSITION pos = m_RepoList.GetFirstSelectedItemPosition(); while (pos) { CShadowFilesTree * item = (CShadowFilesTree *)m_RepoList.GetItemData(m_RepoList.GetNextSelectedItem(pos)); if (item->m_bSubmodule) submodulesSelected = true; if (item->m_bFolder) folderSelected = true; else filesSelected = true; selectedLeafs.push_back(item); } eSelectionType selType = ONLY_FILES; if (folderSelected && filesSelected) selType = MIXED_FOLDERS_FILES; else if (folderSelected) selType = ONLY_FOLDERS; else if (submodulesSelected) selType = ONLY_FILESSUBMODULES; ShowContextMenu(point, selectedLeafs, selType); }
void CRepositoryBrowser::OnContextMenu_RepoTree(CPoint point) { CPoint clientPoint = point; m_RepoTree.ScreenToClient(&clientPoint); HTREEITEM hTreeItem = m_RepoTree.HitTest(clientPoint); if (hTreeItem == NULL) return; TShadowFilesTreeList selectedLeafs; selectedLeafs.push_back((CShadowFilesTree *)m_RepoTree.GetItemData(hTreeItem)); ShowContextMenu(point, selectedLeafs, ONLY_FOLDERS); }