Show selected refs in list ctrl
[TortoiseGit.git] / src / TortoiseProc / BrowseRefsDlg.h
blobd1a1f4bbeb1561af3e34d0cde598f083eebf79e6
1 #pragma once
3 #include "Git.h"
4 #include <map>
5 #include "afxcmn.h"
6 #include "StandAloneDlg.h"
8 class CShadowTree
10 public:
11 typedef std::map<CString,CShadowTree> TShadowTreeMap;
13 CShadowTree():m_hTree(NULL){}
15 CShadowTree* GetNextSub(CString& nameLeft);
17 bool IsLeaf()const {return m_ShadowTree.empty();}
20 CString m_csName;
21 CString m_csRef;
23 HTREEITEM m_hTree;
25 TShadowTreeMap m_ShadowTree;
26 CShadowTree* m_pParent;
29 class CBrowseRefsDlg : public CResizableStandAloneDialog
31 DECLARE_DYNAMIC(CBrowseRefsDlg)
33 public:
34 CBrowseRefsDlg(CWnd* pParent = NULL); // standard constructor
35 virtual ~CBrowseRefsDlg();
37 // Dialog Data
38 enum { IDD = IDD_DIALOG_BROWSE_REFS };
40 protected:
41 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
43 DECLARE_MESSAGE_MAP()
44 public:
45 afx_msg void OnBnClickedOk();
46 virtual BOOL OnInitDialog();
48 void Refresh();
50 CShadowTree& GetTreeNode(CString refName, CShadowTree* pTreePos=NULL);
52 void FillListCtrlForTreeNode(HTREEITEM treeNode);
54 void FillListCtrlForShadowTree(CShadowTree* pTree, CString refNamePrefix, bool isFirstLevel);
56 private:
57 MAP_HASH_NAME m_RefMap;
59 CShadowTree m_TreeRoot;
60 CTreeCtrl m_RefTreeCtrl;
61 CListCtrl m_ListRefLeafs;
62 afx_msg void OnTvnSelchangedTreeRef(NMHDR *pNMHDR, LRESULT *pResult);