OSDN Git Service

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