1 #include "avVersionEditorDlg.h"
2
3 //(*InternalHeaders(avVersionEditorDlg)
4 #include <wx/string.h>
5 #include <wx/intl.h>
6 #include <wx/font.h>
7 //*)
8
9 #include <globals.h>
10 #include <wx/dirdlg.h>
11 #include <wx/filedlg.h>
12 #include <wx/filename.h>
13 #include <wx/msgdlg.h>
14
15 wxTextCtrl* l_FocusedControl = 0;
16
17 //{ID's
18
19 //(*IdInit(avVersionEditorDlg)
20 const long avVersionEditorDlg::ID_MAJOR_LABEL = wxNewId();
21 const long avVersionEditorDlg::ID_MAJOR_TEXT = wxNewId();
22 const long avVersionEditorDlg::ID_MINOR_LABEL = wxNewId();
23 const long avVersionEditorDlg::ID_MINOR_TEXT = wxNewId();
24 const long avVersionEditorDlg::ID_BUILD_LABEL = wxNewId();
25 const long avVersionEditorDlg::ID_BUILD_TEXT = wxNewId();
26 const long avVersionEditorDlg::ID_REVISION_LABEL = wxNewId();
27 const long avVersionEditorDlg::ID_REVISION_TEXT = wxNewId();
28 const long avVersionEditorDlg::ID_STATICLINE2 = wxNewId();
29 const long avVersionEditorDlg::ID_COUNT_LABEL = wxNewId();
30 const long avVersionEditorDlg::ID_COUNT_TEXT = wxNewId();
31 const long avVersionEditorDlg::ID_VALUES_PANEL = wxNewId();
32 const long avVersionEditorDlg::ID_SATUS_LABEL = wxNewId();
33 const long avVersionEditorDlg::ID_STATUS_COMBOBOX = wxNewId();
34 const long avVersionEditorDlg::ID_STATICLINE4 = wxNewId();
35 const long avVersionEditorDlg::ID_STATICTEXT1 = wxNewId();
36 const long avVersionEditorDlg::ID_ABBREVIATION_COMBOBOX = wxNewId();
37 const long avVersionEditorDlg::ID_STATUS_PANEL = wxNewId();
38 const long avVersionEditorDlg::ID_MINORMAXIMUN_LABEL = wxNewId();
39 const long avVersionEditorDlg::ID_MINORMAXIMUM_TEXT = wxNewId();
40 const long avVersionEditorDlg::ID_BUILDNUMBERMAX_LABEL = wxNewId();
41 const long avVersionEditorDlg::ID_BUILDNUMBERMAX_TEXT = wxNewId();
42 const long avVersionEditorDlg::ID_REVISIONMAX_LABEL = wxNewId();
43 const long avVersionEditorDlg::ID_REVISIONMAX_TEXT = wxNewId();
44 const long avVersionEditorDlg::ID_REVISIONRANDOM_LABEL = wxNewId();
45 const long avVersionEditorDlg::ID_REVISIONRANDOM_TEXT = wxNewId();
46 const long avVersionEditorDlg::ID_BUILDTIMES_LABEL = wxNewId();
47 const long avVersionEditorDlg::ID_BUILDTIMES_TEXT = wxNewId();
48 const long avVersionEditorDlg::ID_SCHEME_PANEL = wxNewId();
49 const long avVersionEditorDlg::ID_HEADER_GUARD_LABEL = wxNewId();
50 const long avVersionEditorDlg::ID_HEADER_GUARD_TEXT = wxNewId();
51 const long avVersionEditorDlg::ID_NAMESPACE_LABEL = wxNewId();
52 const long avVersionEditorDlg::ID_NAMESPACE_TEXT = wxNewId();
53 const long avVersionEditorDlg::ID_PREFIX_LABEL = wxNewId();
54 const long avVersionEditorDlg::ID_PREFIX_TEXT = wxNewId();
55 const long avVersionEditorDlg::ID_CODE_PANEL = wxNewId();
56 const long avVersionEditorDlg::ID_AUTO_CHECK = wxNewId();
57 const long avVersionEditorDlg::ID_DATES_CHECK = wxNewId();
58 const long avVersionEditorDlg::ID_DEFINE_CHECK = wxNewId();
59 const long avVersionEditorDlg::ID_UPDATE_MANIFEST = wxNewId();
60 const long avVersionEditorDlg::ID_COMMIT_CHECK = wxNewId();
61 const long avVersionEditorDlg::ID_ASKCOMMIT_CHECK = wxNewId();
62 const long avVersionEditorDlg::ID_STATICLINE3 = wxNewId();
63 const long avVersionEditorDlg::ID_HEADERPATH_LABEL = wxNewId();
64 const long avVersionEditorDlg::ID_HEADERPATH_TEXTCTRL = wxNewId();
65 const long avVersionEditorDlg::ID_HEADERPATH_BUTTON = wxNewId();
66 const long avVersionEditorDlg::ID_HEADERLANGUAGE_RADIOBOX = wxNewId();
67 const long avVersionEditorDlg::ID_STATICLINE1 = wxNewId();
68 const long avVersionEditorDlg::ID_SVN_CHECK = wxNewId();
69 const long avVersionEditorDlg::ID_SVNDIR_TEXT = wxNewId();
70 const long avVersionEditorDlg::ID_SVNDIR_BUTTON = wxNewId();
71 const long avVersionEditorDlg::ID_SETTINGS_PANEL = wxNewId();
72 const long avVersionEditorDlg::ID_GENERATECHANGES_CHECKBOX = wxNewId();
73 const long avVersionEditorDlg::ID_CHANGESPATH_STATICTEXT = wxNewId();
74 const long avVersionEditorDlg::ID_CHANGESLOGPATH_TEXTCTRL = wxNewId();
75 const long avVersionEditorDlg::ID_CHANGESLOGPATH_BUTTON = wxNewId();
76 const long avVersionEditorDlg::ID_FORMAT_STATICTEXT = wxNewId();
77 const long avVersionEditorDlg::ID_CHANGESTITLE_TEXTCTRL = wxNewId();
78 const long avVersionEditorDlg::ID_FORMATS_STATICTEXT = wxNewId();
79 const long avVersionEditorDlg::ID_CHANGES_PANEL = wxNewId();
80 const long avVersionEditorDlg::ID_AV_NOTEBOOK = wxNewId();
81 const long avVersionEditorDlg::ID_STATICTEXT2 = wxNewId();
82 const long avVersionEditorDlg::ID_ACCEPT = wxNewId();
83 const long avVersionEditorDlg::ID_CANCEL = wxNewId();
84 const long avVersionEditorDlg::ID_VALIDATE_TIMER = wxNewId();
85 //*)
86
87 //}
88
89 //{Events
BEGIN_EVENT_TABLE(avVersionEditorDlg,wxScrollingDialog)90 BEGIN_EVENT_TABLE(avVersionEditorDlg,wxScrollingDialog)
91 //(*EventTable(avVersionEditorDlg)
92 //*)
93 END_EVENT_TABLE()
94 //}
95
96 //{Constructor and Destructor
97 avVersionEditorDlg::avVersionEditorDlg(wxWindow* parent,wxWindowID /*id*/)
98 {
99 //(*Initialize(avVersionEditorDlg)
100 wxBoxSizer* BoxSizer15;
101 wxBoxSizer* codeSizer;
102 wxBoxSizer* BoxSizer10;
103 wxBoxSizer* BoxSizer11;
104 wxBoxSizer* BoxSizer13;
105 wxBoxSizer* BoxSizer14;
106
107 Create(parent, wxID_ANY, _("Auto Versioning Editor"), wxDefaultPosition, wxDefaultSize, wxCAPTION|wxRESIZE_BORDER, _T("wxID_ANY"));
108 SetClientSize(wxSize(469,364));
109 wxFont thisFont(10,wxFONTFAMILY_DEFAULT,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,wxEmptyString,wxFONTENCODING_DEFAULT);
110 SetFont(thisFont);
111 mainSizer = new wxBoxSizer(wxVERTICAL);
112 nbAutoVersioning = new wxNotebook(this, ID_AV_NOTEBOOK, wxDefaultPosition, wxSize(456,283), 0, _T("ID_AV_NOTEBOOK"));
113 nbAutoVersioning->SetMaxSize(wxSize(-1,-1));
114 nbAutoVersioning->SetFocus();
115 pnlVersionValues = new wxPanel(nbAutoVersioning, ID_VALUES_PANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_VALUES_PANEL"));
116 valuesSizer = new wxBoxSizer(wxVERTICAL);
117 BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
118 lblMajor = new wxStaticText(pnlVersionValues, ID_MAJOR_LABEL, _("Major Version"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_MAJOR_LABEL"));
119 BoxSizer3->Add(lblMajor, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
120 txtMajorVersion = new wxTextCtrl(pnlVersionValues, ID_MAJOR_TEXT, _("1"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_MAJOR_TEXT"));
121 txtMajorVersion->SetToolTip(_("Increments by 1 when the \nminor version reaches its\nmaximun value."));
122 BoxSizer3->Add(txtMajorVersion, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
123 valuesSizer->Add(BoxSizer3, 0, wxALL|wxEXPAND, 2);
124 BoxSizer6 = new wxBoxSizer(wxHORIZONTAL);
125 lblMinor = new wxStaticText(pnlVersionValues, ID_MINOR_LABEL, _("Minor Version"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_MINOR_LABEL"));
126 BoxSizer6->Add(lblMinor, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
127 txtMinorVersion = new wxTextCtrl(pnlVersionValues, ID_MINOR_TEXT, _("0"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_MINOR_TEXT"));
128 txtMinorVersion->SetToolTip(_("Increments by one everytime \nthat the build number pass the\nbarrier of build times. The value \nis reset to 0 when it reaches its\nmaximun value."));
129 BoxSizer6->Add(txtMinorVersion, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
130 valuesSizer->Add(BoxSizer6, 0, wxALL|wxEXPAND, 2);
131 BoxSizer9 = new wxBoxSizer(wxHORIZONTAL);
132 lblBuild = new wxStaticText(pnlVersionValues, ID_BUILD_LABEL, _("Build Number"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_BUILD_LABEL"));
133 BoxSizer9->Add(lblBuild, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
134 txtBuildNumber = new wxTextCtrl(pnlVersionValues, ID_BUILD_TEXT, _("0"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUILD_TEXT"));
135 txtBuildNumber->SetToolTip(_("Increments by 1 everytime \nthat the revision number is\nincremented.\n\nEquivalent to \"Release\" on\nunix systems."));
136 BoxSizer9->Add(txtBuildNumber, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
137 valuesSizer->Add(BoxSizer9, 0, wxALL|wxEXPAND, 2);
138 BoxSizer12 = new wxBoxSizer(wxHORIZONTAL);
139 lblRevision = new wxStaticText(pnlVersionValues, ID_REVISION_LABEL, _("Revision"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_REVISION_LABEL"));
140 BoxSizer12->Add(lblRevision, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
141 txtRevisionNumber = new wxTextCtrl(pnlVersionValues, ID_REVISION_TEXT, _("0"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_REVISION_TEXT"));
142 txtRevisionNumber->SetToolTip(_("Increments randomly when\nsome file is modified."));
143 BoxSizer12->Add(txtRevisionNumber, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
144 valuesSizer->Add(BoxSizer12, 0, wxALL|wxEXPAND, 2);
145 StaticLine2 = new wxStaticLine(pnlVersionValues, ID_STATICLINE2, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE2"));
146 valuesSizer->Add(StaticLine2, 0, wxALL|wxEXPAND, 5);
147 BoxSizer19 = new wxBoxSizer(wxHORIZONTAL);
148 lblCount = new wxStaticText(pnlVersionValues, ID_COUNT_LABEL, _("Build Count"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_COUNT_LABEL"));
149 BoxSizer19->Add(lblCount, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
150 txtBuildCount = new wxTextCtrl(pnlVersionValues, ID_COUNT_TEXT, _("0"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_COUNT_TEXT"));
151 txtBuildCount->SetToolTip(_("Increments every time the\nprogram is compiled. Also if \nno changes has been made."));
152 BoxSizer19->Add(txtBuildCount, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
153 valuesSizer->Add(BoxSizer19, 0, wxALL|wxEXPAND, 2);
154 pnlVersionValues->SetSizer(valuesSizer);
155 valuesSizer->Fit(pnlVersionValues);
156 valuesSizer->SetSizeHints(pnlVersionValues);
157 pnlStatus = new wxPanel(nbAutoVersioning, ID_STATUS_PANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_STATUS_PANEL"));
158 statusSizer = new wxBoxSizer(wxVERTICAL);
159 statusSizer->Add(-1,-1,1, wxALL|wxALIGN_CENTER_HORIZONTAL, 5);
160 lblStatus = new wxStaticText(pnlStatus, ID_SATUS_LABEL, _("Software Status:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_SATUS_LABEL"));
161 statusSizer->Add(lblStatus, 0, wxALL|wxEXPAND, 5);
162 cmbStatus = new wxComboBox(pnlStatus, ID_STATUS_COMBOBOX, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_STATUS_COMBOBOX"));
163 cmbStatus->Append(_("Alpha"));
164 cmbStatus->Append(_("Beta"));
165 cmbStatus->Append(_("Release"));
166 cmbStatus->Append(_("Release Candidate"));
167 cmbStatus->Append(_("Custom"));
168 cmbStatus->SetToolTip(_("Example: 1.0 Alpha"));
169 statusSizer->Add(cmbStatus, 0, wxALL|wxEXPAND, 5);
170 StaticLine4 = new wxStaticLine(pnlStatus, ID_STATICLINE4, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE4"));
171 statusSizer->Add(StaticLine4, 0, wxALL|wxEXPAND, 5);
172 StaticText1 = new wxStaticText(pnlStatus, ID_STATICTEXT1, _("Abbreviation:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
173 statusSizer->Add(StaticText1, 0, wxALL|wxEXPAND, 5);
174 cmbAbbreviation = new wxComboBox(pnlStatus, ID_ABBREVIATION_COMBOBOX, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_ABBREVIATION_COMBOBOX"));
175 cmbAbbreviation->Append(_("a"));
176 cmbAbbreviation->Append(_("b"));
177 cmbAbbreviation->Append(_("r"));
178 cmbAbbreviation->Append(_("rc"));
179 cmbAbbreviation->SetToolTip(_("Example 1.0a"));
180 statusSizer->Add(cmbAbbreviation, 0, wxALL|wxEXPAND, 5);
181 statusSizer->Add(-1,-1,1, wxALL|wxALIGN_CENTER_HORIZONTAL, 5);
182 pnlStatus->SetSizer(statusSizer);
183 statusSizer->Fit(pnlStatus);
184 statusSizer->SetSizeHints(pnlStatus);
185 pnlScheme = new wxPanel(nbAutoVersioning, ID_SCHEME_PANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_SCHEME_PANEL"));
186 schemeSizer = new wxBoxSizer(wxVERTICAL);
187 minorMaxSizer = new wxBoxSizer(wxHORIZONTAL);
188 lblMinorMaximum = new wxStaticText(pnlScheme, ID_MINORMAXIMUN_LABEL, _("Minor maximum:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_MINORMAXIMUN_LABEL"));
189 minorMaxSizer->Add(lblMinorMaximum, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
190 txtMinorMaximun = new wxTextCtrl(pnlScheme, ID_MINORMAXIMUM_TEXT, _("10"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_MINORMAXIMUM_TEXT"));
191 txtMinorMaximun->SetToolTip(_("Resets the minor to\nzero when the specified\nvalue is reached."));
192 minorMaxSizer->Add(txtMinorMaximun, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
193 schemeSizer->Add(minorMaxSizer, 0, wxALL|wxEXPAND, 0);
194 buildNumberMaxSizer = new wxBoxSizer(wxHORIZONTAL);
195 lblBuildNumberMaximun = new wxStaticText(pnlScheme, ID_BUILDNUMBERMAX_LABEL, _("Build Number maximum:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_BUILDNUMBERMAX_LABEL"));
196 buildNumberMaxSizer->Add(lblBuildNumberMaximun, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
197 txtBuildNumberMaximun = new wxTextCtrl(pnlScheme, ID_BUILDNUMBERMAX_TEXT, _("0"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUILDNUMBERMAX_TEXT"));
198 txtBuildNumberMaximun->SetToolTip(_("Reset the build number\nto zero when the specified\nvalue is reached.\n\n0 equals to unlimited."));
199 buildNumberMaxSizer->Add(txtBuildNumberMaximun, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
200 schemeSizer->Add(buildNumberMaxSizer, 0, wxALL|wxEXPAND, 0);
201 BoxSizer1 = new wxBoxSizer(wxHORIZONTAL);
202 lblRevisionMax = new wxStaticText(pnlScheme, ID_REVISIONMAX_LABEL, _("Revision maximum:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_REVISIONMAX_LABEL"));
203 BoxSizer1->Add(lblRevisionMax, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
204 txtRevisionMax = new wxTextCtrl(pnlScheme, ID_REVISIONMAX_TEXT, _("0"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_REVISIONMAX_TEXT"));
205 txtRevisionMax->SetToolTip(_("Reset the revision to zero\nwhen the specified value \nis reached.\n\n0 equals to unlimited."));
206 BoxSizer1->Add(txtRevisionMax, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
207 schemeSizer->Add(BoxSizer1, 0, wxALL|wxEXPAND, 0);
208 BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
209 lblRevisionRandom = new wxStaticText(pnlScheme, ID_REVISIONRANDOM_LABEL, _("Revision random maximum:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_REVISIONRANDOM_LABEL"));
210 BoxSizer2->Add(lblRevisionRandom, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
211 txtRevisionRandom = new wxTextCtrl(pnlScheme, ID_REVISIONRANDOM_TEXT, _("10"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_REVISIONRANDOM_TEXT"));
212 txtRevisionRandom->SetToolTip(_("Maximun number value\nused for the random\nincrementation of the\nrevision."));
213 BoxSizer2->Add(txtRevisionRandom, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
214 schemeSizer->Add(BoxSizer2, 0, wxALL|wxEXPAND, 0);
215 lblBuildTimes = new wxStaticText(pnlScheme, ID_BUILDTIMES_LABEL, _("Build times before incrementing Minor:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_BUILDTIMES_LABEL"));
216 schemeSizer->Add(lblBuildTimes, 0, wxTOP|wxLEFT|wxRIGHT|wxEXPAND, 5);
217 txtBuildTimes = new wxTextCtrl(pnlScheme, ID_BUILDTIMES_TEXT, _("100"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUILDTIMES_TEXT"));
218 txtBuildTimes->SetToolTip(_("Indicates the times\nthat the project have\nto be build before\nincrementing the minor."));
219 schemeSizer->Add(txtBuildTimes, 0, wxALL|wxEXPAND, 5);
220 pnlScheme->SetSizer(schemeSizer);
221 schemeSizer->Fit(pnlScheme);
222 schemeSizer->SetSizeHints(pnlScheme);
223 pnlCode = new wxPanel(nbAutoVersioning, ID_CODE_PANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_CODE_PANEL"));
224 codeSizer = new wxBoxSizer(wxVERTICAL);
225 lblHeaderGuard = new wxStaticText(pnlCode, ID_HEADER_GUARD_LABEL, _("Header guard:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_HEADER_GUARD_LABEL"));
226 codeSizer->Add(lblHeaderGuard, 0, wxALL|wxALIGN_LEFT, 5);
227 txtHeaderGuard = new wxTextCtrl(pnlCode, ID_HEADER_GUARD_TEXT, _("VERSION_H"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_HEADER_GUARD_TEXT"));
228 codeSizer->Add(txtHeaderGuard, 0, wxALL|wxEXPAND, 5);
229 lblNamespace = new wxStaticText(pnlCode, ID_NAMESPACE_LABEL, _("Namespace:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_NAMESPACE_LABEL"));
230 codeSizer->Add(lblNamespace, 0, wxALL|wxALIGN_LEFT, 5);
231 txtNameSpace = new wxTextCtrl(pnlCode, ID_NAMESPACE_TEXT, _("AutoVersion"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_NAMESPACE_TEXT"));
232 codeSizer->Add(txtNameSpace, 0, wxALL|wxEXPAND, 5);
233 lblPrefix = new wxStaticText(pnlCode, ID_PREFIX_LABEL, _("Variables prefix:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_PREFIX_LABEL"));
234 codeSizer->Add(lblPrefix, 0, wxALL|wxALIGN_LEFT, 5);
235 txtPrefix = new wxTextCtrl(pnlCode, ID_PREFIX_TEXT, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_PREFIX_TEXT"));
236 codeSizer->Add(txtPrefix, 0, wxALL|wxEXPAND, 5);
237 pnlCode->SetSizer(codeSizer);
238 codeSizer->Fit(pnlCode);
239 codeSizer->SetSizeHints(pnlCode);
240 pnlSettings = new wxPanel(nbAutoVersioning, ID_SETTINGS_PANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_SETTINGS_PANEL"));
241 settingsSizer = new wxBoxSizer(wxVERTICAL);
242 BoxSizer11 = new wxBoxSizer(wxHORIZONTAL);
243 BoxSizer13 = new wxBoxSizer(wxVERTICAL);
244 chkAutoIncrement = new wxCheckBox(pnlSettings, ID_AUTO_CHECK, _("Autoincrement Major and Minor"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_AUTO_CHECK"));
245 chkAutoIncrement->SetValue(true);
246 chkAutoIncrement->SetToolTip(_("Use the default scheme for \nautoincrementing the major \nand minor versions."));
247 BoxSizer13->Add(chkAutoIncrement, 0, wxALL|wxEXPAND, 5);
248 chkDates = new wxCheckBox(pnlSettings, ID_DATES_CHECK, _("Create date declarations"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_DATES_CHECK"));
249 chkDates->SetValue(true);
250 chkDates->SetToolTip(_("Create variable declarations\nfor date, month and year. And \nalso an ubuntu version style."));
251 BoxSizer13->Add(chkDates, 0, wxALL|wxEXPAND, 5);
252 chkDefine = new wxCheckBox(pnlSettings, ID_DEFINE_CHECK, _("Use #define"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_DEFINE_CHECK"));
253 chkDefine->SetValue(false);
254 chkDefine->SetToolTip(_("Use #define declaration instead of static variables"));
255 BoxSizer13->Add(chkDefine, 0, wxALL|wxEXPAND, 5);
256 chkUpdateManifest = new wxCheckBox(pnlSettings, ID_UPDATE_MANIFEST, _("Update manifest.xml"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_UPDATE_MANIFEST"));
257 chkUpdateManifest->SetValue(false);
258 chkUpdateManifest->SetToolTip(_("Update manifest.xml\'s version field with AutoVersion\'s\nvalues using the format MAJOR.MINOR.BUILD.\nThis setting is mainly useful for plugin developers."));
259 BoxSizer13->Add(chkUpdateManifest, 0, wxALL|wxALIGN_LEFT, 5);
260 BoxSizer11->Add(BoxSizer13, 1, wxALL|wxEXPAND, 5);
261 BoxSizer14 = new wxBoxSizer(wxVERTICAL);
262 chkCommit = new wxCheckBox(pnlSettings, ID_COMMIT_CHECK, _("Do Autoincrement"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_COMMIT_CHECK"));
263 chkCommit->SetValue(false);
264 chkCommit->SetToolTip(_("If you check this the version\ninfo will increment when files have\nbeen modified every time before\ncompilation takes effect."));
265 BoxSizer14->Add(chkCommit, 0, wxALL|wxEXPAND, 5);
266 chkAskCommit = new wxCheckBox(pnlSettings, ID_ASKCOMMIT_CHECK, _("Ask to Increment"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_ASKCOMMIT_CHECK"));
267 chkAskCommit->SetValue(false);
268 chkAskCommit->Disable();
269 chkAskCommit->SetToolTip(_("Ask you to increment every time\na change has been made to the \nsource code, before the compilation\ntakes effect."));
270 BoxSizer14->Add(chkAskCommit, 0, wxALL|wxEXPAND, 5);
271 BoxSizer14->Add(-1,-1,1, wxALL|wxALIGN_LEFT, 5);
272 BoxSizer11->Add(BoxSizer14, 0, wxALL|wxEXPAND, 5);
273 settingsSizer->Add(BoxSizer11, 1, wxALL|wxEXPAND, 5);
274 StaticLine3 = new wxStaticLine(pnlSettings, ID_STATICLINE3, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE3"));
275 settingsSizer->Add(StaticLine3, 0, wxALL|wxEXPAND, 1);
276 BoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
277 BoxSizer7 = new wxBoxSizer(wxVERTICAL);
278 lblHeaderPath = new wxStaticText(pnlSettings, ID_HEADERPATH_LABEL, _("Header Path:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_HEADERPATH_LABEL"));
279 BoxSizer7->Add(lblHeaderPath, 0, wxALL|wxEXPAND, 5);
280 BoxSizer15 = new wxBoxSizer(wxHORIZONTAL);
281 txtHeaderPath = new wxTextCtrl(pnlSettings, ID_HEADERPATH_TEXTCTRL, _("version.h"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_HEADERPATH_TEXTCTRL"));
282 txtHeaderPath->SetToolTip(_("Header path"));
283 BoxSizer15->Add(txtHeaderPath, 1, wxALIGN_CENTER_VERTICAL, 5);
284 btnHeaderPath = new wxButton(pnlSettings, ID_HEADERPATH_BUTTON, _("..."), wxDefaultPosition, wxSize(23,26), 0, wxDefaultValidator, _T("ID_HEADERPATH_BUTTON"));
285 btnHeaderPath->SetToolTip(_("Select header path and filename"));
286 BoxSizer15->Add(btnHeaderPath, 0, wxALIGN_CENTER_VERTICAL, 0);
287 BoxSizer7->Add(BoxSizer15, 0, wxTOP|wxLEFT|wxEXPAND, 5);
288 BoxSizer5->Add(BoxSizer7, 1, wxALL|wxEXPAND, 5);
289 BoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
290 wxString __wxRadioBoxChoices_1[2] =
291 {
292 _("C"),
293 _("C++")
294 };
295 rbHeaderLanguage = new wxRadioBox(pnlSettings, ID_HEADERLANGUAGE_RADIOBOX, _("Header language"), wxDefaultPosition, wxDefaultSize, 2, __wxRadioBoxChoices_1, 2, wxRA_VERTICAL, wxDefaultValidator, _T("ID_HEADERLANGUAGE_RADIOBOX"));
296 rbHeaderLanguage->SetSelection(1);
297 rbHeaderLanguage->SetToolTip(_("Sets the language output."));
298 BoxSizer8->Add(rbHeaderLanguage, 1, wxALIGN_LEFT, 5);
299 BoxSizer5->Add(BoxSizer8, 0, wxEXPAND, 5);
300 settingsSizer->Add(BoxSizer5, 0, wxALL|wxEXPAND, 5);
301 StaticLine1 = new wxStaticLine(pnlSettings, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE1"));
302 settingsSizer->Add(StaticLine1, 0, wxALL|wxEXPAND, 5);
303 chkSvn = new wxCheckBox(pnlSettings, ID_SVN_CHECK, _("SVN enabled"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_SVN_CHECK"));
304 chkSvn->SetValue(false);
305 chkSvn->SetToolTip(_("Check this if your project is controlled by svn\nto generate an SVN_REVISION declaration."));
306 settingsSizer->Add(chkSvn, 0, wxALL|wxEXPAND, 2);
307 svnSizer = new wxBoxSizer(wxHORIZONTAL);
308 txtSvnDir = new wxTextCtrl(pnlSettings, ID_SVNDIR_TEXT, wxEmptyString, wxDefaultPosition, wxSize(236,26), 0, wxDefaultValidator, _T("ID_SVNDIR_TEXT"));
309 txtSvnDir->Disable();
310 txtSvnDir->SetToolTip(_("Current SVN directory."));
311 svnSizer->Add(txtSvnDir, 1, wxALL|wxEXPAND, 2);
312 btnSvnDir = new wxButton(pnlSettings, ID_SVNDIR_BUTTON, _("..."), wxDefaultPosition, wxSize(23,26), 0, wxDefaultValidator, _T("ID_SVNDIR_BUTTON"));
313 btnSvnDir->Disable();
314 btnSvnDir->SetToolTip(_("Choose current svn directory project\nif diffrent from the project default."));
315 svnSizer->Add(btnSvnDir, 0, wxALL|wxALIGN_CENTER_VERTICAL, 2);
316 settingsSizer->Add(svnSizer, 0, wxALL|wxEXPAND, 2);
317 pnlSettings->SetSizer(settingsSizer);
318 settingsSizer->Fit(pnlSettings);
319 settingsSizer->SetSizeHints(pnlSettings);
320 pnlChanges = new wxPanel(nbAutoVersioning, ID_CHANGES_PANEL, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_CHANGES_PANEL"));
321 changesSizer = new wxBoxSizer(wxVERTICAL);
322 chkChanges = new wxCheckBox(pnlChanges, ID_GENERATECHANGES_CHECKBOX, _("Show changes editor when incrementing version"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_GENERATECHANGES_CHECKBOX"));
323 chkChanges->SetValue(false);
324 chkChanges->SetToolTip(_("This will open a window\neverytime you commit or\nthe project version increments.\n\nThen you can enter the\nchanges made to the project."));
325 changesSizer->Add(chkChanges, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5);
326 lblChangesPath = new wxStaticText(pnlChanges, ID_CHANGESPATH_STATICTEXT, _("File path;"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_CHANGESPATH_STATICTEXT"));
327 changesSizer->Add(lblChangesPath, 0, wxALL|wxEXPAND, 5);
328 BoxSizer10 = new wxBoxSizer(wxHORIZONTAL);
329 txtChangesLogPath = new wxTextCtrl(pnlChanges, ID_CHANGESLOGPATH_TEXTCTRL, _("ChangesLog.txt"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CHANGESLOGPATH_TEXTCTRL"));
330 txtChangesLogPath->SetToolTip(_("ChangesLog Path"));
331 BoxSizer10->Add(txtChangesLogPath, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
332 btnChangesLogPath = new wxButton(pnlChanges, ID_CHANGESLOGPATH_BUTTON, _("..."), wxDefaultPosition, wxSize(23,26), 0, wxDefaultValidator, _T("ID_CHANGESLOGPATH_BUTTON"));
333 btnChangesLogPath->SetToolTip(_("Select ChangesLog path and filename"));
334 BoxSizer10->Add(btnChangesLogPath, 0, wxALL|wxALIGN_CENTER_VERTICAL, 0);
335 changesSizer->Add(BoxSizer10, 0, wxALL|wxEXPAND, 5);
336 BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
337 lblChangesTitle = new wxStaticText(pnlChanges, ID_FORMAT_STATICTEXT, _("Title Format:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_FORMAT_STATICTEXT"));
338 BoxSizer4->Add(lblChangesTitle, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);
339 txtChangesTitle = new wxTextCtrl(pnlChanges, ID_CHANGESTITLE_TEXTCTRL, _("released version %M.%m.%b of %p"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CHANGESTITLE_TEXTCTRL"));
340 BoxSizer4->Add(txtChangesTitle, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5);
341 changesSizer->Add(BoxSizer4, 0, wxALL|wxEXPAND, 5);
342 lblChangesFormats = new wxStaticText(pnlChanges, ID_FORMATS_STATICTEXT, _("Major: %M, Minor: %m, Build: %b, Revision: %r, SVN Revision: %s, Date: %d, Month: %o, Year: %y, Ubuntu Style Version: %u, Status: %T, Status Short: %t, Project title: %p"), wxDefaultPosition, wxSize(413,80), 0, _T("ID_FORMATS_STATICTEXT"));
343 changesSizer->Add(lblChangesFormats, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5);
344 pnlChanges->SetSizer(changesSizer);
345 changesSizer->Fit(pnlChanges);
346 changesSizer->SetSizeHints(pnlChanges);
347 nbAutoVersioning->AddPage(pnlVersionValues, _("Version Values"), true);
348 nbAutoVersioning->AddPage(pnlStatus, _("Status"), false);
349 nbAutoVersioning->AddPage(pnlScheme, _("Scheme"), false);
350 nbAutoVersioning->AddPage(pnlCode, _("Code"), false);
351 nbAutoVersioning->AddPage(pnlSettings, _("Settings"), false);
352 nbAutoVersioning->AddPage(pnlChanges, _("Changes Log"), false);
353 mainSizer->Add(nbAutoVersioning, 1, wxALL|wxEXPAND, 5);
354 lblCurrentProject = new wxStaticText(this, ID_STATICTEXT2, _("Current Project:"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_STATICTEXT2"));
355 mainSizer->Add(lblCurrentProject, 0, wxALL|wxEXPAND, 5);
356 buttonsSizer = new wxBoxSizer(wxHORIZONTAL);
357 btnAccept = new wxButton(this, ID_ACCEPT, _("&Accept"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_ACCEPT"));
358 btnAccept->SetDefault();
359 btnAccept->SetToolTip(_("Accept changes made."));
360 buttonsSizer->Add(btnAccept, 1, wxALL|wxEXPAND, 5);
361 buttonsSizer->Add(-1,-1,0, wxALL|wxALIGN_CENTER_VERTICAL, 2);
362 btnCancel = new wxButton(this, ID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CANCEL"));
363 btnCancel->SetToolTip(_("Cancel changes made\nto the values in the editor."));
364 buttonsSizer->Add(btnCancel, 1, wxALL|wxEXPAND, 5);
365 mainSizer->Add(buttonsSizer, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 1);
366 SetSizer(mainSizer);
367 tmrValidateInput.SetOwner(this, ID_VALIDATE_TIMER);
368 tmrValidateInput.Start(500, false);
369 SetSizer(mainSizer);
370 Layout();
371 Center();
372
373 Connect(ID_STATUS_COMBOBOX,wxEVT_COMMAND_COMBOBOX_SELECTED,(wxObjectEventFunction)&avVersionEditorDlg::OnCmbStatusSelect);
374 Connect(ID_COMMIT_CHECK,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&avVersionEditorDlg::OnChkCommitClick);
375 Connect(ID_HEADERPATH_BUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&avVersionEditorDlg::OnHeaderPathClick);
376 Connect(ID_SVN_CHECK,wxEVT_COMMAND_CHECKBOX_CLICKED,(wxObjectEventFunction)&avVersionEditorDlg::OnSvnCheck);
377 Connect(ID_SVNDIR_BUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&avVersionEditorDlg::OnSvnDirectoryClick);
378 Connect(ID_CHANGESLOGPATH_BUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&avVersionEditorDlg::OnChangesLogPathClick);
379 Connect(ID_ACCEPT,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&avVersionEditorDlg::OnAcceptClick);
380 Connect(ID_CANCEL,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&avVersionEditorDlg::OnCancelClick);
381 Connect(ID_VALIDATE_TIMER,wxEVT_TIMER,(wxObjectEventFunction)&avVersionEditorDlg::OnTmrValidateInputTrigger);
382 Connect(wxEVT_ENTER_WINDOW,(wxObjectEventFunction)&avVersionEditorDlg::OnMouseEnter);
383 //*)
384
385 tmrValidateInput.Stop();
386 }
387
~avVersionEditorDlg()388 avVersionEditorDlg::~avVersionEditorDlg()
389 {
390 //(*Destroy(avVersionEditorDlg)
391 //*)
392 }
393 //}
394
395
396 //{Version Values
SetMajor(long value)397 void avVersionEditorDlg::SetMajor(long value)
398 {
399 m_major = value;
400 wxString strValue;
401 strValue.Printf(_T("%ld"),value);
402 txtMajorVersion->SetValue(strValue);
403 }
404
SetMinor(long value)405 void avVersionEditorDlg::SetMinor(long value)
406 {
407 m_minor = value;
408 wxString strValue;
409 strValue.Printf(_T("%ld"),value);
410 txtMinorVersion->SetValue(strValue);
411 }
412
SetBuild(long value)413 void avVersionEditorDlg::SetBuild(long value)
414 {
415 m_build = value;
416 wxString strValue;
417 strValue.Printf(_T("%ld"),value);
418 txtBuildNumber->SetValue(strValue);
419 }
420
SetRevision(long value)421 void avVersionEditorDlg::SetRevision(long value)
422 {
423 m_revision = value;
424 wxString strValue;
425 strValue.Printf(_T("%ld"),value);
426 txtRevisionNumber->SetValue(strValue);
427 }
428
SetCount(long value)429 void avVersionEditorDlg::SetCount(long value)
430 {
431 m_count = value;
432 wxString strValue;
433 strValue.Printf(_T("%ld"),value);
434 txtBuildCount->SetValue(strValue);
435 }
436 //}
437
438 //{Settings
SetAuto(bool value)439 void avVersionEditorDlg::SetAuto(bool value)
440 {
441 m_autoMajorMinor = value;
442 chkAutoIncrement->SetValue(value);
443 }
444
SetDates(bool value)445 void avVersionEditorDlg::SetDates(bool value)
446 {
447 m_dates = value;
448 chkDates->SetValue(value);
449 }
450
SetDefine(bool value)451 void avVersionEditorDlg::SetDefine(bool value)
452 {
453 m_useDefine = value;
454 chkDefine->SetValue(value);
455 }
456
457 // GJH 03/03/10 Added manifest updating.
SetManifest(bool value)458 void avVersionEditorDlg::SetManifest(bool value)
459 {
460 m_updateManifest = value;
461 chkUpdateManifest->SetValue(value);
462 }
463
SetSvn(bool value)464 void avVersionEditorDlg::SetSvn(bool value)
465 {
466 m_svn = value;
467 chkSvn->SetValue(value);
468 if(!value)
469 {
470 txtSvnDir->Disable();
471 btnSvnDir->Disable();
472 }
473 else
474 {
475 txtSvnDir->Enable();
476 btnSvnDir->Enable();
477 }
478 }
479
SetSvnDirectory(const wxString & value)480 void avVersionEditorDlg::SetSvnDirectory(const wxString& value)
481 {
482 if (!value.IsEmpty())
483 {
484 m_svnDirectory = value;
485 txtSvnDir->SetValue(m_svnDirectory);
486 }
487 }
488
SetCommit(bool value)489 void avVersionEditorDlg::SetCommit(bool value)
490 {
491 m_commit = value;
492 chkCommit->SetValue(value);
493 if(!value)
494 {
495 chkAskCommit->Disable();
496 }
497 else
498 {
499 chkAskCommit->Enable();
500 }
501 }
502
SetCommitAsk(bool value)503 void avVersionEditorDlg::SetCommitAsk(bool value)
504 {
505 m_askCommit = value;
506 chkAskCommit->SetValue(value);
507 }
508
SetLanguage(const wxString & value)509 void avVersionEditorDlg::SetLanguage(const wxString& value)
510 {
511 if (!value.IsEmpty())
512 {
513 m_language = value;
514 rbHeaderLanguage->SetStringSelection(value);
515 }
516 }
517
SetHeaderPath(const wxString & value)518 void avVersionEditorDlg::SetHeaderPath(const wxString& value)
519 {
520 m_headerPath = value;
521 txtHeaderPath->SetValue(value);
522 }
523 //}
524
525 //{Software Status
SetStatus(const wxString & value)526 void avVersionEditorDlg::SetStatus(const wxString& value)
527 {
528 if (!value.IsEmpty())
529 {
530 m_status = value;
531 cmbStatus->SetValue(value);
532 }
533 }
534
SetStatusAbbreviation(const wxString & value)535 void avVersionEditorDlg::SetStatusAbbreviation(const wxString& value)
536 {
537 if (!value.IsEmpty())
538 {
539 m_statusAbbreviation = value;
540 cmbAbbreviation->SetValue(value);
541 }
542 }
543 //}
544
545 //{Scheme
SetMinorMaximum(long value)546 void avVersionEditorDlg::SetMinorMaximum(long value)
547 {
548 m_minorMaximun = value;
549 wxString strValue;
550 strValue.Printf(_T("%ld"),value);
551 txtMinorMaximun->SetValue(strValue);
552 }
553
SetBuildMaximum(long value)554 void avVersionEditorDlg::SetBuildMaximum(long value)
555 {
556 m_buildMaximun = value;
557 wxString strValue;
558 strValue.Printf(_T("%ld"),value);
559 txtBuildNumberMaximun->SetValue(strValue);
560 }
561
SetRevisionMaximum(long value)562 void avVersionEditorDlg::SetRevisionMaximum(long value)
563 {
564 m_revisionMaximun = value;
565 wxString strValue;
566 strValue.Printf(_T("%ld"),value);
567 txtRevisionMax->SetValue(strValue);
568 }
569
SetRevisionRandomMaximum(long value)570 void avVersionEditorDlg::SetRevisionRandomMaximum(long value)
571 {
572 m_revisionRandomMaximun = value;
573 wxString strValue;
574 strValue.Printf(_T("%ld"),value);
575 txtRevisionRandom->SetValue(strValue);
576 }
577
SetBuildTimesToMinorIncrement(long value)578 void avVersionEditorDlg::SetBuildTimesToMinorIncrement(long value)
579 {
580 m_buildTimesToMinorIncrement = value;
581 wxString strValue;
582 strValue.Printf(_T("%ld"),value);
583 txtBuildTimes->SetValue(strValue);
584 }
585 //}
586
587 //{Changes Log
SetChanges(bool value)588 void avVersionEditorDlg::SetChanges(bool value)
589 {
590 m_changes = value;
591 chkChanges->SetValue(value);
592 }
593
SetChangesLogPath(const wxString & value)594 void avVersionEditorDlg::SetChangesLogPath(const wxString& value)
595 {
596 m_changesLogPath = value;
597 txtChangesLogPath->SetValue(value);
598 }
599
SetChangesTitle(const wxString & value)600 void avVersionEditorDlg::SetChangesTitle(const wxString& value)
601 {
602 if (!value.IsEmpty())
603 {
604 m_changesTitle = value;
605 txtChangesTitle->SetValue(value);
606 }
607 }
608 //}
609
610 //{Code
SetHeaderGuard(const wxString & value)611 void avVersionEditorDlg::SetHeaderGuard(const wxString& value)
612 {
613 m_headerGuard = value;
614 txtHeaderGuard->SetValue(value);
615 }
616
SetNamespace(const wxString & value)617 void avVersionEditorDlg::SetNamespace(const wxString& value)
618 {
619 m_namespace = value;
620 txtNameSpace->SetValue(value);
621 }
622
SetPrefix(const wxString & value)623 void avVersionEditorDlg::SetPrefix(const wxString& value)
624 {
625 m_prefix = value;
626 txtPrefix->SetValue(value);
627 }
628 //}
629
SetCurrentProject(const wxString & projectName)630 void avVersionEditorDlg::SetCurrentProject(const wxString& projectName)
631 {
632 lblCurrentProject->SetLabel(lblCurrentProject->GetLabel() + projectName);
633 }
634
635 //{Events
OnAcceptClick(wxCommandEvent &)636 void avVersionEditorDlg::OnAcceptClick(wxCommandEvent&)
637 {
638 tmrValidateInput.Stop();
639 ValidateInput();
640
641 txtMajorVersion->GetValue().ToLong(&m_major);
642 txtMinorVersion->GetValue().ToLong(&m_minor);
643 txtBuildNumber->GetValue().ToLong(&m_build);
644 txtRevisionNumber->GetValue().ToLong(&m_revision);
645 txtBuildCount->GetValue().ToLong(&m_count);
646
647 m_autoMajorMinor = chkAutoIncrement->IsChecked();
648 m_dates = chkDates->IsChecked();
649 m_useDefine = chkDefine->IsChecked();
650 // GJH 03/03/10 Added manifest updating.
651 m_updateManifest = chkUpdateManifest->IsChecked();
652 m_svn = chkSvn->IsChecked();
653 m_svnDirectory = txtSvnDir->GetValue();
654 m_commit = chkCommit->IsChecked();
655 m_askCommit = chkAskCommit->IsChecked();
656 m_language = rbHeaderLanguage->GetStringSelection();
657 m_headerPath = txtHeaderPath->GetValue();
658
659 m_status = cmbStatus->GetValue();
660 m_statusAbbreviation = cmbAbbreviation->GetValue();
661
662 txtMinorMaximun->GetValue().ToLong(&m_minorMaximun);
663 txtBuildNumberMaximun->GetValue().ToLong(&m_buildMaximun);
664 txtRevisionMax->GetValue().ToLong(&m_revisionMaximun);
665 txtRevisionRandom->GetValue().ToLong(&m_revisionRandomMaximun);
666 txtBuildTimes->GetValue().ToLong(&m_buildTimesToMinorIncrement);
667
668 m_changes = chkChanges->IsChecked();
669 m_changesTitle = txtChangesTitle->GetValue();
670 m_changesLogPath = txtChangesLogPath->GetValue();
671
672 m_headerGuard = txtHeaderGuard->GetValue();
673 m_namespace = txtNameSpace->GetValue();
674 m_prefix = txtPrefix->GetValue();
675
676 EndModal(0);
677 }
678
OnCancelClick(wxCommandEvent &)679 void avVersionEditorDlg::OnCancelClick(wxCommandEvent&)
680 {
681 tmrValidateInput.Stop();
682 EndModal(0);
683 }
684
OnSvnCheck(wxCommandEvent &)685 void avVersionEditorDlg::OnSvnCheck(wxCommandEvent&)
686 {
687 if (chkSvn->IsChecked())
688 {
689 txtSvnDir->Enable();
690 txtSvnDir->SetValue(m_svnDirectory);
691 btnSvnDir->Enable();
692 }
693 else
694 {
695 txtSvnDir->Disable();
696 btnSvnDir->Disable();
697 }
698 }
699
OnSvnDirectoryClick(wxCommandEvent &)700 void avVersionEditorDlg::OnSvnDirectoryClick(wxCommandEvent&)
701 {
702 wxString dir = wxDirSelector(wxDirSelectorPromptStr, m_svnDirectory, 0, wxDefaultPosition, this);
703 if (!dir.IsEmpty())
704 {
705 txtSvnDir->SetValue(dir);
706 m_svnDirectory = txtSvnDir->GetValue();
707 }
708 }
709
OnChkCommitClick(wxCommandEvent &)710 void avVersionEditorDlg::OnChkCommitClick(wxCommandEvent&)
711 {
712 if (chkCommit->IsChecked())
713 {
714 chkAskCommit->Enable();
715 }
716 else
717 {
718 chkAskCommit->Disable();
719 }
720 }
721
OnCmbStatusSelect(wxCommandEvent &)722 void avVersionEditorDlg::OnCmbStatusSelect(wxCommandEvent&)
723 {
724 int status = cmbStatus->GetCurrentSelection();
725 if (status != 4)
726 {
727 cmbAbbreviation->SetSelection(status);
728 }
729 else
730 {
731 cmbAbbreviation->SetValue(_T(""));
732 cmbStatus->SetValue(_T(""));
733 }
734 }
735
ValidateInput()736 void avVersionEditorDlg::ValidateInput()
737 {
738 wxString type = _T("");
739
740 if(this->FindFocus())
741 {
742 type = cbC2U(typeid(*(this->FindFocus())).name());
743 }
744
745 if (type.Find(_T("wxTextCtrl")) != wxNOT_FOUND)
746 {
747 ForceValidation:; //To force validation when the user clicks the Accept buttom or other control not of type wxTexCtrl
748
749 if (l_FocusedControl != this->FindFocus() && l_FocusedControl != 0)
750 {
751 wxString ifBlank;
752 wxString ifZero;
753
754 if (l_FocusedControl->GetName() == _T("ID_MINORMAXIMUM_TEXT"))
755 {
756 ifBlank = _T("10");
757 ifZero = _T("1");
758 }
759 else if(l_FocusedControl->GetName() == _T("ID_BUILDNUMBERMAX_TEXT"))
760 {
761 ifBlank = _T("0");
762 ifZero = _T("0");
763 }
764 else if(l_FocusedControl->GetName() == _T("ID_REVISIONMAX_TEXT"))
765 {
766 ifBlank = _T("0");
767 ifZero = _T("0");
768 }
769 else if(l_FocusedControl->GetName() == _T("ID_BUILDTIMES_TEXT"))
770 {
771 ifBlank = _T("100");
772 ifZero = _T("1");
773 }
774 else if(l_FocusedControl->GetName() == _T("ID_REVISIONRANDOM_TEXT"))
775 {
776 ifBlank = _T("10");
777 ifZero = _T("1");
778 }
779
780 if(l_FocusedControl->GetValue() == _T("0"))
781 {
782 l_FocusedControl->SetValue(ifZero);
783 }
784 else if(l_FocusedControl->GetValue().Trim() == _T(""))
785 {
786 l_FocusedControl->SetValue(ifBlank);
787 }
788
789 l_FocusedControl = 0;
790 }
791
792 if (this->FindFocus() == txtRevisionRandom)
793 {
794 l_FocusedControl = txtRevisionRandom;
795 }
796 else if (this->FindFocus() == txtMinorMaximun)
797 {
798 l_FocusedControl = txtMinorMaximun;
799 }
800 else if (this->FindFocus() == txtBuildNumberMaximun)
801 {
802 l_FocusedControl = txtBuildNumberMaximun;
803 }
804 else if (this->FindFocus() == txtRevisionMax)
805 {
806 l_FocusedControl = txtRevisionMax;
807 }
808 else if (this->FindFocus() == txtBuildTimes)
809 {
810 l_FocusedControl = txtBuildTimes;
811 }
812
813 }
814 else
815 {
816 goto ForceValidation; // KILLERBOT : can we do without ugly goto : normal C++ rule : sure we can --> investigate and solve
817 // weird / the goto target is the first part of the if clause of the else part, so that means that in both situations (if/else)
818 // the smae thing should happen ==> either this is an error , or we can do without the if test and as such without the goto
819 // bye bye goto :-) :-) :-)
820 }
821 }
822
OnTmrValidateInputTrigger(wxTimerEvent &)823 void avVersionEditorDlg::OnTmrValidateInputTrigger(wxTimerEvent& /*event*/)
824 {
825 ValidateInput();
826 }
827
OnMouseEnter(wxMouseEvent &)828 void avVersionEditorDlg::OnMouseEnter(wxMouseEvent& /*event*/)
829 {
830 tmrValidateInput.Start(250, false);
831 }
832
OnHeaderPathClick(wxCommandEvent &)833 void avVersionEditorDlg::OnHeaderPathClick(wxCommandEvent& /*event*/)
834 {
835 wxString path, filename, extension;
836 wxFileName::SplitPath(m_headerPath, &path, &filename, &extension);
837
838 wxString fullpath;
839 fullpath = wxFileSelector(_("Select the header path and filename:"), path, filename, extension, _T("C/C++ Header (*.h)|*.h|All Files (*.*)|*.*"));
840
841 if(!fullpath.IsEmpty())
842 {
843 wxFileName relativeFile(fullpath);
844 relativeFile.MakeRelativeTo();
845
846 txtHeaderPath->SetValue(relativeFile.GetFullPath());
847 }
848 }
849
OnChangesLogPathClick(wxCommandEvent &)850 void avVersionEditorDlg::OnChangesLogPathClick(wxCommandEvent& /*event*/)
851 {
852 wxString path, filename, extension;
853 wxFileName::SplitPath(m_changesLogPath, &path, &filename, &extension);
854
855 wxString fullpath;
856 fullpath = wxFileSelector(_("Select the changeslog path and filename:"), path, filename, extension, _T("Text File (*.txt)|*.txt"));
857
858 if(!fullpath.IsEmpty()){
859 wxFileName relativeFile(fullpath);
860 relativeFile.MakeRelativeTo();
861
862 txtChangesLogPath->SetValue(relativeFile.GetFullPath());
863 }
864 }
865 //}
866