Show selected refs in list ctrl
[TortoiseGit.git] / src / TortoiseProc / ChooseVersion.h
blobcb15d1e14bda408a0c4dd3e430ab74c3ae9061e4
1 #pragma once
2 #include "afxwin.h"
3 #include "LogDlg.h"
5 class CChooseVersion
7 public:
9 private:
10 CWnd * m_pWin;
11 protected:
12 CHistoryCombo m_ChooseVersioinBranch;
13 CHistoryCombo m_ChooseVersioinTags;
14 CHistoryCombo m_ChooseVersioinVersion;
16 afx_msg void OnBnClickedChooseRadio()
18 this->m_ChooseVersioinTags.EnableWindow(FALSE);
19 this->m_ChooseVersioinBranch.EnableWindow(FALSE);
20 this->m_ChooseVersioinVersion.EnableWindow(FALSE);
21 int radio=m_pWin->GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);
22 switch (radio)
24 case IDC_RADIO_HEAD:
25 break;
26 case IDC_RADIO_BRANCH:
27 this->m_ChooseVersioinBranch.EnableWindow(TRUE);
28 break;
29 case IDC_RADIO_TAGS:
30 this->m_ChooseVersioinTags.EnableWindow(TRUE);
31 break;
32 case IDC_RADIO_VERSION:
33 this->m_ChooseVersioinVersion.EnableWindow(TRUE);
34 break;
36 // enable version browse button if Version is selected
37 m_pWin->GetDlgItem(IDC_BUTTON_SHOW)->EnableWindow(radio == IDC_RADIO_VERSION);
40 void OnBnClickedChooseVersion()
42 // use the git log to allow selection of a version
43 CLogDlg dlg;
44 // tell the dialog to use mode for selecting revisions
45 dlg.SetSelect(true);
46 // only one revision must be selected however
47 dlg.SingleSelection(true);
48 if ( dlg.DoModal() == IDOK )
50 // get selected hash if any
51 CString selectedHash = dlg.GetSelectedHash();
52 // load into window, do this even if empty so that it is clear that nothing has been selected
53 m_ChooseVersioinVersion.SetWindowText( selectedHash );
57 void UpdateRevsionName()
59 int radio=m_pWin->GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);
60 switch (radio)
62 case IDC_RADIO_HEAD:
63 this->m_VersionName=_T("HEAD");
64 break;
65 case IDC_RADIO_BRANCH:
66 this->m_VersionName=m_ChooseVersioinBranch.GetString();
67 break;
68 case IDC_RADIO_TAGS:
69 this->m_VersionName=m_ChooseVersioinTags.GetString();
70 break;
71 case IDC_RADIO_VERSION:
72 this->m_VersionName=m_ChooseVersioinVersion.GetString();
73 break;
76 void SetDefaultChoose(int id)
78 m_pWin->CheckRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION,id);
79 OnBnClickedChooseRadio();
82 void Init()
84 m_ChooseVersioinBranch.SetMaxHistoryItems(0x7FFFFFFF);
85 m_ChooseVersioinTags.SetMaxHistoryItems(0x7FFFFFFF);
87 STRING_VECTOR list;
88 g_Git.GetTagList(list);
89 m_ChooseVersioinTags.AddString(list);
91 list.clear();
92 int current;
93 g_Git.GetBranchList(list,&current,CGit::BRANCH_ALL);
94 m_ChooseVersioinBranch.AddString(list);
95 m_ChooseVersioinBranch.SetCurSel(current);
99 public:
100 CString m_VersionName;
101 CChooseVersion(CWnd *win)
103 m_pWin=win;
109 #define CHOOSE_VERSION_DDX \
110 DDX_Control(pDX, IDC_COMBOBOXEX_BRANCH, m_ChooseVersioinBranch); \
111 DDX_Control(pDX, IDC_COMBOBOXEX_TAGS, m_ChooseVersioinTags); \
112 DDX_Control(pDX, IDC_COMBOBOXEX_VERSION, m_ChooseVersioinVersion);
114 #define CHOOSE_VERSION_EVENT\
115 ON_BN_CLICKED(IDC_RADIO_HEAD, OnBnClickedChooseRadioHost)\
116 ON_BN_CLICKED(IDC_RADIO_BRANCH, OnBnClickedChooseRadioHost)\
117 ON_BN_CLICKED(IDC_RADIO_TAGS, OnBnClickedChooseRadioHost)\
118 ON_BN_CLICKED(IDC_BUTTON_SHOW, OnBnClickedShow)\
119 ON_BN_CLICKED(IDC_RADIO_VERSION, OnBnClickedChooseRadioHost)
121 #define CHOOSE_VERSION_ADDANCHOR \
123 AddAnchor(IDC_COMBOBOXEX_BRANCH, TOP_LEFT, TOP_RIGHT); \
124 AddAnchor(IDC_COMBOBOXEX_TAGS, TOP_LEFT, TOP_RIGHT); \
125 AddAnchor(IDC_COMBOBOXEX_VERSION, TOP_LEFT, TOP_RIGHT); \
126 AddAnchor(IDC_GROUP_BASEON, TOP_LEFT, TOP_RIGHT); \
127 AddAnchor(IDC_BUTTON_SHOW,TOP_RIGHT); \
130 #define CHOOSE_EVENT_RADIO() \
131 afx_msg void OnBnClickedChooseRadioHost(){OnBnClickedChooseRadio();}\
132 afx_msg void OnBnClickedShow(){OnBnClickedChooseVersion();}