1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: MadOptionsDialog.cpp
3 // Description:
4 // Author: madedit@gmail.com
5 // Licence: GPL
6 ///////////////////////////////////////////////////////////////////////////////
7
8 #include "MadOptionsDialog.h"
9 #include <wx/fileconf.h>
10 #include <wx/config.h>
11 #include "MadEdit/MadEncoding.h"
12 #include "MadEdit/MadEditCommand.h"
13 #include "MadEdit/MadEdit.h"
14 #include "MadEditFrame.h"
15 #include "MadUtils.h"
16 #include "wx/aui/auibook.h"
17
18 //Do not add custom headers.
19 //wx-dvcpp designer will remove them
20 ////Header Include Start
21 ////Header Include End
22
23 MadOptionsDialog *g_OptionsDialog=NULL;
24
25 extern wxChar *g_LanguageString[];
26 extern const size_t g_LanguageCount;
27
28 TreeItemData *g_SelectedCommandItem=NULL;
29 int g_SelectedKeyId=-1;
30 TreeItemData *g_CommandItemOfNewKey=NULL;
31
32
33 class KeyTextCtrl : public wxTextCtrl
34 {
35 DECLARE_EVENT_TABLE()
36 public:
KeyTextCtrl(wxWindow * parent,wxWindowID id,const wxString & value=wxEmptyString,const wxPoint & pos=wxDefaultPosition,const wxSize & size=wxDefaultSize,long style=0,const wxValidator & validator=wxDefaultValidator,const wxString & name=wxTextCtrlNameStr)37 KeyTextCtrl(wxWindow *parent, wxWindowID id,
38 const wxString& value = wxEmptyString,
39 const wxPoint& pos = wxDefaultPosition,
40 const wxSize& size = wxDefaultSize,
41 long style = 0,
42 const wxValidator& validator = wxDefaultValidator,
43 const wxString& name = wxTextCtrlNameStr)
44 :wxTextCtrl(parent, id, value, pos, size, style, validator, name)
45 {
46 }
47
OnKeyDown(wxKeyEvent & evt)48 void OnKeyDown(wxKeyEvent& evt)
49 {
50 int flags=wxACCEL_NORMAL;
51 int key=evt.GetKeyCode();
52
53 if(evt.ControlDown()) flags|=wxACCEL_CTRL;
54 if(evt.AltDown()) flags|=wxACCEL_ALT;
55 if(evt.ShiftDown()) flags|=wxACCEL_SHIFT;
56
57 MadEditShortCut sc=ShortCut(flags, key);
58 static MadEditShortCut prevsc=0;
59
60 if(sc==prevsc) return;
61 prevsc=sc;
62
63 wxString scstr=ShortCutToString(sc);
64 SetValue(scstr);
65
66 g_OptionsDialog->UpdateKeyHint();
67 //evt.Skip();
68 }
OnSetFocus(wxFocusEvent & evt)69 void OnSetFocus(wxFocusEvent &evt)
70 { // for getting Ctrl-Tab
71 g_OptionsDialog->SetWindowStyleFlag(g_OptionsDialog->GetWindowStyleFlag() & ~wxTAB_TRAVERSAL);
72 g_OptionsDialog->WxNotebook1->wxControl::SetWindowStyleFlag(g_OptionsDialog->WxNotebook1->wxControl::GetWindowStyleFlag() & ~wxTAB_TRAVERSAL);
73 g_OptionsDialog->WxNoteBookPage4->SetWindowStyleFlag(g_OptionsDialog->WxNoteBookPage4->GetWindowStyleFlag() & ~wxTAB_TRAVERSAL);
74 g_OptionsDialog->WxButtonCancel->SetId(MadOptionsDialog::ID_WXBUTTONCANCEL);
75 evt.Skip();
76 }
OnKillFocus(wxFocusEvent & evt)77 void OnKillFocus(wxFocusEvent &evt)
78 { // restore wxTAB_TRAVERSAL
79 g_OptionsDialog->SetWindowStyleFlag(g_OptionsDialog->GetWindowStyleFlag() | wxTAB_TRAVERSAL);
80 g_OptionsDialog->WxNotebook1->wxControl::SetWindowStyleFlag(g_OptionsDialog->WxNotebook1->wxControl::GetWindowStyleFlag() | wxTAB_TRAVERSAL);
81 g_OptionsDialog->WxNoteBookPage4->SetWindowStyleFlag(g_OptionsDialog->WxNoteBookPage4->GetWindowStyleFlag() | wxTAB_TRAVERSAL);
82 g_OptionsDialog->WxButtonCancel->SetId(wxID_CANCEL);
83 evt.Skip();
84 }
85 };
86
BEGIN_EVENT_TABLE(KeyTextCtrl,wxTextCtrl)87 BEGIN_EVENT_TABLE(KeyTextCtrl,wxTextCtrl)
88 EVT_KEY_DOWN(KeyTextCtrl::OnKeyDown)
89 EVT_SET_FOCUS(KeyTextCtrl::OnSetFocus)
90 EVT_KILL_FOCUS (KeyTextCtrl::OnKillFocus)
91 END_EVENT_TABLE()
92
93
94 //----------------------------------------------------------------------------
95 // MadOptionsDialog
96 //----------------------------------------------------------------------------
97 //Add Custom Events only in the appropriate Block.
98 // Code added in other places will be removed by wx-dvcpp
99 ////Event Table Start
100 BEGIN_EVENT_TABLE(MadOptionsDialog,wxDialog)
101 ////Manual Code Start
102 EVT_BUTTON(ID_WXBUTTON1,MadOptionsDialog::PrintMarkButtonClick)
103 EVT_BUTTON(ID_WXBUTTON2,MadOptionsDialog::PrintMarkButtonClick)
104 EVT_BUTTON(ID_WXBUTTON3,MadOptionsDialog::PrintMarkButtonClick)
105 EVT_BUTTON(ID_WXBUTTON4,MadOptionsDialog::PrintMarkButtonClick)
106 EVT_BUTTON(ID_WXBUTTON5,MadOptionsDialog::PrintMarkButtonClick)
107 EVT_BUTTON(ID_WXBUTTON6,MadOptionsDialog::PrintMarkButtonClick)
108 EVT_BUTTON(wxID_CANCEL,MadOptionsDialog::WxButtonCancelClick)
109 ////Manual Code End
110
111 EVT_CLOSE(MadOptionsDialog::MadOptionsDialogClose)
112 EVT_ACTIVATE(MadOptionsDialog::MadOptionsDialogActivate)
113 EVT_MENU(ID_MNU___Y__M__D_I__M__S_P_2007_02_2408_30_55AM_1191 , MadOptionsDialog::DateTimeMarkClick)
114 EVT_MENU(ID_MNU___D__M__Y_24_02_2007_1192 , MadOptionsDialog::DateTimeMarkClick)
115 EVT_MENU(ID_MNU___A__D_B_Y_H__M__S_Z_RFC822TIMESTAMP_1195 , MadOptionsDialog::DateTimeMarkClick)
116 EVT_MENU(ID_MNU_MENUITEM1_1170 , MadOptionsDialog::DateTimeMarkClick)
117 EVT_MENU(ID_MNU___A_FULLWEEKDAYNAME_1171 , MadOptionsDialog::DateTimeMarkClick)
118 EVT_MENU(ID_MNU___B_ABBREVIATEDMONTHNAME_1172 , MadOptionsDialog::DateTimeMarkClick)
119 EVT_MENU(ID_MNU___B_FULLMONTHNAME_1173 , MadOptionsDialog::DateTimeMarkClick)
120 EVT_MENU(ID_MNU___C_DATEANDTIMEREPRESENTATIONAPPROPRIATEFORLOCALE_1174 , MadOptionsDialog::DateTimeMarkClick)
121 EVT_MENU(ID_MNU___D_DAYOFMONTHASDECIMALNUMBER_01_31__1175 , MadOptionsDialog::DateTimeMarkClick)
122 EVT_MENU(ID_MNU___H_HOURIN24_HOURFORMAT_00_23__1176 , MadOptionsDialog::DateTimeMarkClick)
123 EVT_MENU(ID_MNU___I_HOURIN12_HOURFORMAT_01_12__1177 , MadOptionsDialog::DateTimeMarkClick)
124 EVT_MENU(ID_MNU___J_DAYOFYEARASDECIMALNUMBER_001_366__1178 , MadOptionsDialog::DateTimeMarkClick)
125 EVT_MENU(ID_MNU___M_MONTHASDECIMALNUMBER_01_12__1179 , MadOptionsDialog::DateTimeMarkClick)
126 EVT_MENU(ID_MNU___M_MINUTEASDECIMALNUMBER_00_59__1180 , MadOptionsDialog::DateTimeMarkClick)
127 EVT_MENU(ID_MNU___P_CURRENTLOCALESA_M__P_M_INDICATORFOR12_HOURCLOCK_1181 , MadOptionsDialog::DateTimeMarkClick)
128 EVT_MENU(ID_MNU___S_SECONDASDECIMALNUMBER_00_59__1182 , MadOptionsDialog::DateTimeMarkClick)
129 EVT_MENU(ID_MNU___U_WEEKOFYEARASDECIMALNUMBER_WITHSUNDAYASFIRSTDAYOFWEEK_00_53__1183 , MadOptionsDialog::DateTimeMarkClick)
130 EVT_MENU(ID_MNU___W_WEEKDAYASDECIMALNUMBER_0_6_SUNDAYIS0__1184 , MadOptionsDialog::DateTimeMarkClick)
131 EVT_MENU(ID_MNU___W_WEEKOFYEARASDECIMALNUMBER_WITHMONDAYASFIRSTDAYOFWEEK_00_53__1185 , MadOptionsDialog::DateTimeMarkClick)
132 EVT_MENU(ID_MNU___X_DATEREPRESENTATIONFORCURRENTLOCALE_1186 , MadOptionsDialog::DateTimeMarkClick)
133 EVT_MENU(ID_MNU___X_TIMEREPRESENTATIONFORCURRENTLOCALE_1187 , MadOptionsDialog::DateTimeMarkClick)
134 EVT_MENU(ID_MNU___Y_YEARWITHOUTCENTURY_ASDECIMALNUMBER_00_99__1188 , MadOptionsDialog::DateTimeMarkClick)
135 EVT_MENU(ID_MNU___Y_YEARWITHCENTURY_ASDECIMALNUMBER_1189 , MadOptionsDialog::DateTimeMarkClick)
136 EVT_MENU(ID_MNU___Z_TIME_ZONENAME_1193 , MadOptionsDialog::DateTimeMarkClick)
137 EVT_MENU(ID_MNU___Z_TIME_ZONEABBREVIATION_1194 , MadOptionsDialog::DateTimeMarkClick)
138 EVT_MENU(ID_MNU_MENUITEM1_1110 , MadOptionsDialog::PrintMarkClick)
139 EVT_MENU(ID_MNU___P__PATHNAME_1111 , MadOptionsDialog::PrintMarkClick)
140 EVT_MENU(ID_MNU___N_PAGE_NUMBER_1113 , MadOptionsDialog::PrintMarkClick)
141 EVT_MENU(ID_MNU___S__TOTALPAGES_1114 , MadOptionsDialog::PrintMarkClick)
142 EVT_MENU(ID_MNU___D__DATE_1116 , MadOptionsDialog::PrintMarkClick)
143 EVT_MENU(ID_MNU___T__TIME_1117 , MadOptionsDialog::PrintMarkClick)
144 EVT_BUTTON(ID_WXBUTTONCANCEL,MadOptionsDialog::WxButtonCancelClick)
145 EVT_BUTTON(ID_WXBUTTONOK,MadOptionsDialog::WxButtonOKClick)
146 EVT_BUTTON(ID_WXBUTTONSHOWINMENU,MadOptionsDialog::WxButtonShowInMenuClick)
147 EVT_BUTTON(ID_WXBUTTONDELETEKEY,MadOptionsDialog::WxButtonDeleteKeyClick)
148 EVT_BUTTON(ID_WXBUTTONADDKEY,MadOptionsDialog::WxButtonAddKeyClick)
149 EVT_LISTBOX(ID_WXLISTBOXKEYS,MadOptionsDialog::WxListBoxKeysSelected)
150
151 EVT_TREE_SEL_CHANGED(ID_WXTREECTRL1,MadOptionsDialog::WxTreeCtrl1SelChanged)
152 EVT_BUTTON(ID_WXBUTTONDATETIME,MadOptionsDialog::WxButtonDateTimeClick)
153 END_EVENT_TABLE()
154 ////Event Table End
155
156
157
158 MadOptionsDialog::MadOptionsDialog( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style )
159 : wxDialog( parent, id, title, position, size, style)
160 {
161 ButtonID=0;
162 CreateGUIControls();
163 }
164
~MadOptionsDialog()165 MadOptionsDialog::~MadOptionsDialog()
166 {
167 delete WxPopupMenuPrintMark;
168 }
169
ResizeItem(wxSizer * sizer,wxWindow * item,int ax,int ay)170 static void ResizeItem(wxSizer* sizer, wxWindow *item, int ax, int ay)
171 {
172 int x, y;
173 if(ax!=0)
174 {
175 wxString str=item->GetLabel();
176 item->GetTextExtent(str, &x, &y);
177 }
178 else
179 {
180 item->GetSize(&x, &y);
181 }
182 item->SetSize(x+=ax, y+=ay);
183 sizer->SetItemMinSize(item, x, y);
184 }
185
UpdateSize(wxSize & s1,const wxSize & s2)186 inline void UpdateSize(wxSize &s1, const wxSize &s2)
187 {
188 if(s2.x > s1.x) s1.x=s2.x;
189 if(s2.y > s1.y) s1.y=s2.y;
190 }
191
192 // filter '&' and '.'
FilterChar(const wxChar * ws)193 wxString FilterChar(const wxChar *ws)
194 {
195 wxString str;
196 wxChar wc;
197
198 while((wc=*ws) != wxT('\0'))
199 {
200 if(wc!=wxT('&') && wc!=wxT('.'))
201 {
202 str << wc;
203 }
204 ++ws;
205 }
206
207 return str;
208 }
209
CreateGUIControls(void)210 void MadOptionsDialog::CreateGUIControls(void)
211 {
212 //do not set FontName, it is not exist on all platforms
213 #define wxFont(p0,p1,p2,p3,p4,p5) wxFont(wxDEFAULT,wxDEFAULT,p2,p3,p4)
214
215 //Do not add custom Code here
216 //wx-devcpp designer will remove them.
217 //Add the custom code before or after the Blocks
218 ////GUI Items Creation Start
219
220 WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
221 this->SetSizer(WxBoxSizer1);
222 this->SetAutoLayout(true);
223
224 WxNotebook1 = new wxAuiNotebook(this, ID_WXNOTEBOOK1, wxPoint(0, 0), wxSize(681, 342), wxNB_DEFAULT);
225 WxNotebook1->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
226 WxBoxSizer1->Add(WxNotebook1,1,wxEXPAND | wxALL,0);
227
228 WxNoteBookPage1 = new wxPanel(WxNotebook1, ID_WXNOTEBOOKPAGE1, wxPoint(4, 24), wxSize(673, 314));
229 WxNoteBookPage1->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
230 WxNotebook1->AddPage(WxNoteBookPage1, _("General"));
231
232 WxBoxSizer3 = new wxBoxSizer(wxVERTICAL);
233 WxNoteBookPage1->SetSizer(WxBoxSizer3);
234 WxNoteBookPage1->SetAutoLayout(true);
235
236 WxBoxSizer27 = new wxBoxSizer(wxHORIZONTAL);
237 WxBoxSizer3->Add(WxBoxSizer27, 0, wxALIGN_LEFT | wxALL, 2);
238
239 wxArrayString arrayStringFor_WxComboBoxLanguage;
240 WxComboBoxLanguage = new wxComboBox(WxNoteBookPage1, ID_WXCOMBOBOXLANGUAGE, _(""), wxPoint(0, 3), wxSize(140, 21), arrayStringFor_WxComboBoxLanguage, wxCB_DROPDOWN | wxCB_READONLY, wxDefaultValidator, _("WxComboBoxLanguage"));
241 WxComboBoxLanguage->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
242 WxBoxSizer27->Add(WxComboBoxLanguage,0,wxALIGN_LEFT | wxALL,0);
243
244 WxStaticText16 = new wxStaticText(WxNoteBookPage1, ID_WXSTATICTEXT16, _("Language of User Interface (must restart MadEdit)"), wxPoint(145, 5), wxDefaultSize, 0, _("WxStaticText16"));
245 WxStaticText16->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
246 WxBoxSizer27->Add(WxStaticText16,0,wxALIGN_LEFT | wxALL,5);
247
248 WxBoxSizer4 = new wxBoxSizer(wxVERTICAL);
249 WxBoxSizer3->Add(WxBoxSizer4, 0, wxALIGN_LEFT | wxALL, 5);
250
251 WxCheckBoxSingleInstance = new wxCheckBox(WxNoteBookPage1, ID_WXCHECKBOXSINGLEINSTANCE, _("Single Instance (must restart MadEdit)"), wxPoint(2, 2), wxSize(300, 20), 0, wxDefaultValidator, _("WxCheckBoxSingleInstance"));
252 WxCheckBoxSingleInstance->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
253 WxBoxSizer4->Add(WxCheckBoxSingleInstance,0,wxALIGN_LEFT | wxALL,2);
254
255 WxCheckBoxRecordCaretMovements = new wxCheckBox(WxNoteBookPage1, ID_WXCHECKBOXRECORDCARETMOVEMENTS, _("Record caret movements in undo list"), wxPoint(2, 26), wxSize(300, 20), 0, wxDefaultValidator, _("WxCheckBoxRecordCaretMovements"));
256 WxCheckBoxRecordCaretMovements->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
257 WxBoxSizer4->Add(WxCheckBoxRecordCaretMovements,0,wxALIGN_LEFT | wxALL,2);
258
259 WxBoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
260 WxBoxSizer3->Add(WxBoxSizer5, 0, wxALIGN_LEFT | wxALL, 2);
261
262 WxEditMaxSizeToLoad = new wxTextCtrl(WxNoteBookPage1, ID_WXEDITMAXSIZETOLOAD, _("0"), wxPoint(0, 3), wxSize(80, 21), 0, wxTextValidator(wxFILTER_NUMERIC), _("WxEditMaxSizeToLoad"));
263 WxEditMaxSizeToLoad->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
264 WxBoxSizer5->Add(WxEditMaxSizeToLoad,0,wxALIGN_LEFT | wxALL,0);
265
266 WxStaticText1 = new wxStaticText(WxNoteBookPage1, ID_WXSTATICTEXT1, _("Max file size to load whole file into memory"), wxPoint(85, 5), wxSize(300, 17), wxST_NO_AUTORESIZE, _("WxStaticText1"));
267 WxStaticText1->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
268 WxBoxSizer5->Add(WxStaticText1,0,wxALIGN_LEFT | wxALL,5);
269
270 WxBoxSizer6 = new wxBoxSizer(wxHORIZONTAL);
271 WxBoxSizer3->Add(WxBoxSizer6, 0, wxALIGN_LEFT | wxALL, 2);
272
273 WxEditMaxTextFileSize = new wxTextCtrl(WxNoteBookPage1, ID_WXEDITMAXTEXTFILESIZE, _("0"), wxPoint(0, 3), wxSize(80, 21), 0, wxTextValidator(wxFILTER_NUMERIC), _("WxEditMaxTextFileSize"));
274 WxEditMaxTextFileSize->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
275 WxBoxSizer6->Add(WxEditMaxTextFileSize,0,wxALIGN_LEFT | wxALL,0);
276
277 WxStaticText2 = new wxStaticText(WxNoteBookPage1, ID_WXSTATICTEXT2, _("Max file size to load as a text file"), wxPoint(85, 5), wxSize(300, 17), wxST_NO_AUTORESIZE, _("WxStaticText2"));
278 WxStaticText2->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
279 WxBoxSizer6->Add(WxStaticText2,0,wxALIGN_LEFT | wxALL,5);
280
281 WxBoxSizer17 = new wxBoxSizer(wxHORIZONTAL);
282 WxBoxSizer3->Add(WxBoxSizer17, 0, wxALIGN_LEFT | wxALL, 2);
283
284 wxArrayString arrayStringFor_WxComboBoxEncoding;
285 WxComboBoxEncoding = new wxComboBox(WxNoteBookPage1, ID_WXCOMBOBOXENCODING, _(""), wxPoint(0, 3), wxSize(140, 21), arrayStringFor_WxComboBoxEncoding, wxCB_DROPDOWN | wxCB_READONLY, wxDefaultValidator, _("WxComboBoxEncoding"));
286 WxComboBoxEncoding->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
287 WxBoxSizer17->Add(WxComboBoxEncoding,0,wxALIGN_LEFT | wxALL,0);
288
289 WxStaticText13 = new wxStaticText(WxNoteBookPage1, ID_WXSTATICTEXT13, _("Use this encoding to create new file or when MadEdit cannot determine the encoding of old file"), wxPoint(145, 5), wxDefaultSize, 0, _("WxStaticText13"));
290 WxStaticText13->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
291 WxBoxSizer17->Add(WxStaticText13,0,wxALIGN_LEFT | wxALL,5);
292
293 WxBoxSizer7 = new wxBoxSizer(wxVERTICAL);
294 WxBoxSizer3->Add(WxBoxSizer7, 0, wxALIGN_LEFT | wxALL, 5);
295
296 WxCheckBoxReloadFiles = new wxCheckBox(WxNoteBookPage1, ID_WXCHECKBOXRELOADFILES, _("Reload files previously open on startup"), wxPoint(2, 2), wxSize(400, 20), 0, wxDefaultValidator, _("WxCheckBoxReloadFiles"));
297 WxCheckBoxReloadFiles->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
298 WxBoxSizer7->Add(WxCheckBoxReloadFiles,0,wxALIGN_LEFT | wxALL,2);
299
300 WxCheckBoxRestoreCaretPos = new wxCheckBox(WxNoteBookPage1, ID_WXCHECKBOXRESTORECARETPOS, _("Restore previous caret position when files are opened"), wxPoint(2, 26), wxSize(400, 20), 0, wxDefaultValidator, _("WxCheckBoxRestoreCaretPos"));
301 WxCheckBoxRestoreCaretPos->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
302 WxBoxSizer7->Add(WxCheckBoxRestoreCaretPos,0,wxALIGN_LEFT | wxALL,2);
303
304 WxCheckBoxDoNotSaveSettings = new wxCheckBox(WxNoteBookPage1, ID_WXCHECKBOXDONOTSAVESETTINGS, _("Do not save settings to MadEdit.cfg when MadEdit closed (this session only)"), wxPoint(2, 50), wxSize(400, 20), 0, wxDefaultValidator, _("WxCheckBoxDoNotSaveSettings"));
305 WxCheckBoxDoNotSaveSettings->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
306 WxBoxSizer7->Add(WxCheckBoxDoNotSaveSettings,0,wxALIGN_LEFT | wxALL,2);
307
308 WxNoteBookPage2 = new wxPanel(WxNotebook1, ID_WXNOTEBOOKPAGE2, wxPoint(4, 24), wxSize(673, 314));
309 WxNoteBookPage2->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
310 WxNotebook1->AddPage(WxNoteBookPage2, _("Edit"));
311
312 WxBoxSizer8 = new wxBoxSizer(wxVERTICAL);
313 WxNoteBookPage2->SetSizer(WxBoxSizer8);
314 WxNoteBookPage2->SetAutoLayout(true);
315
316 WxBoxSizer9 = new wxBoxSizer(wxHORIZONTAL);
317 WxBoxSizer8->Add(WxBoxSizer9, 0, wxALIGN_LEFT | wxALL, 2);
318
319 WxEditMaxLineLength = new wxTextCtrl(WxNoteBookPage2, ID_WXEDITMAXLINELENGTH, _("0"), wxPoint(0, 3), wxSize(60, 21), 0, wxTextValidator(wxFILTER_NUMERIC), _("WxEditMaxLineLength"));
320 WxEditMaxLineLength->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
321 WxBoxSizer9->Add(WxEditMaxLineLength,0,wxALIGN_LEFT | wxALL,0);
322
323 WxStaticText3 = new wxStaticText(WxNoteBookPage2, ID_WXSTATICTEXT3, _("Max line length before Line-Wrap (must restart MadEdit)"), wxPoint(65, 5), wxSize(300, 17), wxST_NO_AUTORESIZE, _("WxStaticText3"));
324 WxStaticText3->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
325 WxBoxSizer9->Add(WxStaticText3,0,wxALIGN_LEFT | wxALL,5);
326
327 WxBoxSizer10 = new wxBoxSizer(wxHORIZONTAL);
328 WxBoxSizer8->Add(WxBoxSizer10, 0, wxALIGN_LEFT | wxALL, 2);
329
330 WxEditMaxColumns = new wxTextCtrl(WxNoteBookPage2, ID_WXEDITMAXCOLUMNS, _("0"), wxPoint(0, 3), wxSize(60, 21), 0, wxTextValidator(wxFILTER_NUMERIC), _("WxEditMaxColumns"));
331 WxEditMaxColumns->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
332 WxBoxSizer10->Add(WxEditMaxColumns,0,wxALIGN_LEFT | wxALL,0);
333
334 WxStaticText4 = new wxStaticText(WxNoteBookPage2, ID_WXSTATICTEXT4, _("Columns of Wrap-By-Column"), wxPoint(65, 5), wxSize(300, 17), wxST_NO_AUTORESIZE, _("WxStaticText4"));
335 WxStaticText4->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
336 WxBoxSizer10->Add(WxStaticText4,0,wxALIGN_LEFT | wxALL,5);
337
338 WxBoxSizer11 = new wxBoxSizer(wxHORIZONTAL);
339 WxBoxSizer8->Add(WxBoxSizer11, 0, wxALIGN_LEFT | wxALL, 2);
340
341 WxEditTabColumns = new wxTextCtrl(WxNoteBookPage2, ID_WXEDITTABCOLUMNS, _("0"), wxPoint(0, 3), wxSize(60, 21), 0, wxTextValidator(wxFILTER_NUMERIC), _("WxEditTabColumns"));
342 WxEditTabColumns->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
343 WxBoxSizer11->Add(WxEditTabColumns,0,wxALIGN_LEFT | wxALL,0);
344
345 WxStaticText5 = new wxStaticText(WxNoteBookPage2, ID_WXSTATICTEXT5, _("Columns of Tab"), wxPoint(65, 5), wxSize(300, 17), wxST_NO_AUTORESIZE, _("WxStaticText5"));
346 WxStaticText5->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
347 WxBoxSizer11->Add(WxStaticText5,0,wxALIGN_LEFT | wxALL,5);
348
349 WxBoxSizer13 = new wxBoxSizer(wxHORIZONTAL);
350 WxBoxSizer8->Add(WxBoxSizer13, 0, wxALIGN_LEFT | wxALL, 2);
351
352 WxEditIndentColumns = new wxTextCtrl(WxNoteBookPage2, ID_WXEDITTABCOLUMNS, _("0"), wxPoint(0, 3), wxSize(60, 21), 0, wxTextValidator(wxFILTER_NUMERIC), _("WxEditIndentColumns"));
353 WxEditIndentColumns->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
354 WxBoxSizer13->Add(WxEditIndentColumns,0,wxALIGN_LEFT | wxALL,0);
355
356 WxStaticText6 = new wxStaticText(WxNoteBookPage2, ID_WXSTATICTEXT5, _("Columns of Indent"), wxPoint(65, 5), wxSize(300, 17), wxST_NO_AUTORESIZE, _("WxStaticText6"));
357 WxStaticText6->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
358 WxBoxSizer13->Add(WxStaticText6,0,wxALIGN_LEFT | wxALL,5);
359
360 WxBoxSizer23 = new wxBoxSizer(wxHORIZONTAL);
361 WxBoxSizer8->Add(WxBoxSizer23, 0, wxALIGN_LEFT | wxALL, 2);
362
363 WxEditDateTime = new wxTextCtrl(WxNoteBookPage2, ID_WXEDITDATETIME, _(""), wxPoint(0, 3), wxSize(160, 21), 0, wxDefaultValidator, _("WxEditDateTime"));
364 WxEditDateTime->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
365 WxBoxSizer23->Add(WxEditDateTime,0,wxALIGN_LEFT | wxALL,0);
366
367 WxStaticTextDateTime = new wxStaticText(WxNoteBookPage2, ID_WXSTATICTEXTDATETIME, _("Format of Date/Time"), wxPoint(165, 5), wxDefaultSize, 0, _("WxStaticTextDateTime"));
368 WxStaticTextDateTime->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
369 WxBoxSizer23->Add(WxStaticTextDateTime,0,wxALIGN_CENTER | wxALL,5);
370
371 WxButtonDateTime = new wxButton(WxNoteBookPage2, ID_WXBUTTONDATETIME, _(">>"), wxPoint(273, 1), wxSize(25, 25), 0, wxDefaultValidator, _("WxButtonDateTime"));
372 WxButtonDateTime->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
373 WxBoxSizer23->Add(WxButtonDateTime,0,wxALIGN_LEFT | wxALL,1);
374
375 WxCheckBoxDateTimeInEnglish = new wxCheckBox(WxNoteBookPage2, ID_WXCHECKBOXDATETIMEINENGLISH, _("Use English instead of current locale"), wxPoint(301, 3), wxSize(200, 20), 0, wxDefaultValidator, _("WxCheckBoxDateTimeInEnglish"));
376 WxCheckBoxDateTimeInEnglish->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
377 WxBoxSizer23->Add(WxCheckBoxDateTimeInEnglish,0,wxALIGN_LEFT | wxALL,2);
378
379 WxBoxSizer12 = new wxBoxSizer(wxVERTICAL);
380 WxBoxSizer8->Add(WxBoxSizer12, 0, wxALIGN_LEFT | wxALL, 5);
381
382 WxCheckBoxTabOrSpaces = new wxCheckBox(WxNoteBookPage2, ID_WXCHECKBOXTABORSPACES, _("Insert Space char instead of Tab char"), wxPoint(24, 2), wxSize(480, 20), 0, wxDefaultValidator, _("WxCheckBoxTabOrSpaces"));
383 WxCheckBoxTabOrSpaces->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
384 WxBoxSizer12->Add(WxCheckBoxTabOrSpaces,0,wxALIGN_LEFT | wxALL,2);
385
386 WxCheckBoxAutoIndent = new wxCheckBox(WxNoteBookPage2, ID_WXCHECKBOXAUTOINDENT, _("Auto Indent"), wxPoint(24, 26), wxSize(480, 20), 0, wxDefaultValidator, _("WxCheckBoxAutoIndent"));
387 WxCheckBoxAutoIndent->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
388 WxBoxSizer12->Add(WxCheckBoxAutoIndent,0,wxALIGN_LEFT | wxALL,2);
389
390 WxCheckBoxAutoCompletePair = new wxCheckBox(WxNoteBookPage2, ID_WXCHECKBOXAUTOCOMPLETEPAIR, _("Auto complete character pair"), wxPoint(24, 50), wxSize(480, 20), 0, wxDefaultValidator, _("WxCheckBoxAutoCompletePair"));
391 WxCheckBoxAutoCompletePair->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
392 WxBoxSizer12->Add(WxCheckBoxAutoCompletePair,0,wxALIGN_LEFT | wxALL,2);
393
394 WxBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
395 WxBoxSizer12->Add(WxBoxSizer28, 0, wxALIGN_LEFT | wxALL, 0);
396
397 WxCheckBoxMouseSelectToCopy = new wxCheckBox(WxNoteBookPage2, ID_WXCHECKBOXMOUSESELECTTOCOPY, _("Auto copy the mouse-selected text to clipboard ("), wxPoint(2, 2), wxSize(260, 20), 0, wxDefaultValidator, _("WxCheckBoxMouseSelectToCopy"));
398 WxCheckBoxMouseSelectToCopy->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
399 WxBoxSizer28->Add(WxCheckBoxMouseSelectToCopy,0,wxALIGN_LEFT | wxALL,2);
400
401 WxRadioButtonEnable = new wxRadioButton(WxNoteBookPage2, ID_WXRADIOBUTTONENABLE, _("Enable"), wxPoint(266, 2), wxSize(70, 20), 0, wxDefaultValidator, _("WxRadioButtonEnable"));
402 WxRadioButtonEnable->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
403 WxBoxSizer28->Add(WxRadioButtonEnable,0,wxALIGN_LEFT | wxALL,2);
404
405 WxRadioButtonDisable = new wxRadioButton(WxNoteBookPage2, ID_WXRADIOBUTTONDISABLE, _("Disable"), wxPoint(340, 2), wxSize(70, 20), 0, wxDefaultValidator, _("WxRadioButtonDisable"));
406 WxRadioButtonDisable->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
407 WxBoxSizer28->Add(WxRadioButtonDisable,0,wxALIGN_LEFT | wxALL,2);
408
409 WxStaticText17 = new wxStaticText(WxNoteBookPage2, ID_WXSTATICTEXT17, _("when pressing Ctrl key)"), wxPoint(414, 3), wxDefaultSize, 0, _("WxStaticText17"));
410 WxStaticText17->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
411 WxBoxSizer28->Add(WxStaticText17,0,wxALIGN_LEFT | wxALL,2);
412
413 WxCheckBoxMiddleMouseToPaste = new wxCheckBox(WxNoteBookPage2, ID_WXCHECKBOXMIDDLEMOUSETOPASTE, _("Paste text from clipboard when pressing middle mouse button"), wxPoint(24, 98), wxSize(480, 20), 0, wxDefaultValidator, _("WxCheckBoxMiddleMouseToPaste"));
414 WxCheckBoxMiddleMouseToPaste->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
415 WxBoxSizer12->Add(WxCheckBoxMiddleMouseToPaste,0,wxALIGN_LEFT | wxALL,2);
416
417 WxNoteBookPage3 = new wxPanel(WxNotebook1, ID_WXNOTEBOOKPAGE3, wxPoint(4, 24), wxSize(673, 314));
418 WxNoteBookPage3->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
419 WxNotebook1->AddPage(WxNoteBookPage3, _("Print"));
420
421 WxBoxSizer14 = new wxBoxSizer(wxHORIZONTAL);
422 WxNoteBookPage3->SetSizer(WxBoxSizer14);
423 WxNoteBookPage3->SetAutoLayout(true);
424
425 WxBoxSizer15 = new wxBoxSizer(wxVERTICAL);
426 WxBoxSizer14->Add(WxBoxSizer15, 0, wxALIGN_LEFT | wxALL, 2);
427
428 wxStaticBox* WxStaticBoxSizer1_StaticBoxObj = new wxStaticBox(WxNoteBookPage3, wxID_ANY, _("Text Mode"));
429 WxStaticBoxSizer1 = new wxStaticBoxSizer(WxStaticBoxSizer1_StaticBoxObj, wxVERTICAL);
430 WxBoxSizer15->Add(WxStaticBoxSizer1, 0, wxALIGN_LEFT | wxALL, 4);
431
432 WxCheckBoxPrintSyntax = new wxCheckBox(WxNoteBookPage3, ID_WXCHECKBOXPRINTSYNTAX, _("Print Syntax Highlighter"), wxPoint(6, 16), wxSize(150, 17), 0, wxDefaultValidator, _("WxCheckBoxPrintSyntax"));
433 WxCheckBoxPrintSyntax->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
434 WxStaticBoxSizer1->Add(WxCheckBoxPrintSyntax,0,wxALIGN_LEFT | wxALL,1);
435
436 WxCheckBoxPrintLineNumber = new wxCheckBox(WxNoteBookPage3, ID_WXCHECKBOXPRINTLINENUMBER, _("Print Line Number"), wxPoint(6, 35), wxSize(150, 17), 0, wxDefaultValidator, _("WxCheckBoxPrintLineNumber"));
437 WxCheckBoxPrintLineNumber->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
438 WxStaticBoxSizer1->Add(WxCheckBoxPrintLineNumber,0,wxALIGN_LEFT | wxALL,1);
439
440 WxCheckBoxPrintEndOfLine = new wxCheckBox(WxNoteBookPage3, ID_WXCHECKBOXPRINTENDOFLINE, _("Print End of Line"), wxPoint(6, 54), wxSize(150, 17), 0, wxDefaultValidator, _("WxCheckBoxPrintEndOfLine"));
441 WxCheckBoxPrintEndOfLine->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
442 WxStaticBoxSizer1->Add(WxCheckBoxPrintEndOfLine,0,wxALIGN_LEFT | wxALL,1);
443
444 WxCheckBoxPrintTabChar = new wxCheckBox(WxNoteBookPage3, ID_WXCHECKBOXPRINTTABCHAR, _("Print Tab Char"), wxPoint(6, 73), wxSize(150, 17), 0, wxDefaultValidator, _("WxCheckBoxPrintTabChar"));
445 WxCheckBoxPrintTabChar->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
446 WxStaticBoxSizer1->Add(WxCheckBoxPrintTabChar,0,wxALIGN_LEFT | wxALL,1);
447
448 WxCheckBoxPrintSpaceChar = new wxCheckBox(WxNoteBookPage3, ID_WXCHECKBOXPRINTSPACECHAR, _("Print Space Char"), wxPoint(6, 92), wxSize(150, 17), 0, wxDefaultValidator, _("WxCheckBoxPrintSpaceChar"));
449 WxCheckBoxPrintSpaceChar->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
450 WxStaticBoxSizer1->Add(WxCheckBoxPrintSpaceChar,0,wxALIGN_LEFT | wxALL,1);
451
452 wxStaticBox* WxStaticBoxSizer2_StaticBoxObj = new wxStaticBox(WxNoteBookPage3, wxID_ANY, _("Hex Mode"));
453 WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBoxSizer2_StaticBoxObj, wxHORIZONTAL);
454 WxBoxSizer15->Add(WxStaticBoxSizer2, 0, wxALIGN_LEFT | wxALL, 4);
455
456 wxArrayString arrayStringFor_WxRadioBoxPrintOffset;
457 arrayStringFor_WxRadioBoxPrintOffset.Add(_("None"));
458 arrayStringFor_WxRadioBoxPrintOffset.Add(_("First Page Only"));
459 arrayStringFor_WxRadioBoxPrintOffset.Add(_("Every Page"));
460 WxRadioBoxPrintOffset = new wxRadioBox(WxNoteBookPage3, ID_WXRADIOBOXPRINTOFFSET, _("Print Offset Header"), wxPoint(6, 16), wxSize(150, 130), arrayStringFor_WxRadioBoxPrintOffset, 1, wxRA_SPECIFY_COLS, wxDefaultValidator, _("WxRadioBoxPrintOffset"));
461 WxRadioBoxPrintOffset->SetSelection(0);
462 WxRadioBoxPrintOffset->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
463 WxStaticBoxSizer2->Add(WxRadioBoxPrintOffset,1,wxALIGN_LEFT | wxALL,1);
464
465 WxBoxSizer16 = new wxBoxSizer(wxVERTICAL);
466 WxBoxSizer14->Add(WxBoxSizer16, 1, wxEXPAND | wxALL, 2);
467
468 wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(WxNoteBookPage3, wxID_ANY, _("Page Header"));
469 WxStaticBoxSizer3 = new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj, wxVERTICAL);
470 WxBoxSizer16->Add(WxStaticBoxSizer3, 1, wxEXPAND | wxALL, 4);
471
472 WxCheckBoxPrintPageHeader = new wxCheckBox(WxNoteBookPage3, ID_WXCHECKBOXPRINTPAGEHEADER, _("Print Page Header"), wxPoint(86, 16), wxSize(150, 17), 0, wxDefaultValidator, _("WxCheckBoxPrintPageHeader"));
473 WxCheckBoxPrintPageHeader->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
474 WxStaticBoxSizer3->Add(WxCheckBoxPrintPageHeader,0,wxALIGN_LEFT | wxALL,1);
475
476 WxFlexGridSizer1 = new wxFlexGridSizer(0, 3, 0, 0);
477 WxStaticBoxSizer3->Add(WxFlexGridSizer1, 1, wxEXPAND | wxALL, 2);
478
479 WxStaticText7 = new wxStaticText(WxNoteBookPage3, ID_WXSTATICTEXT7, _("Left:"), wxPoint(8, 5), wxDefaultSize, 0, _("WxStaticText7"));
480 WxStaticText7->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
481 WxFlexGridSizer1->Add(WxStaticText7,0,wxALIGN_RIGHT | wxALL,2);
482
483 WxEditHeaderLeft = new wxTextCtrl(WxNoteBookPage3, ID_WXEDITHEADERLEFT, _(""), wxPoint(44, 3), wxSize(240, 21), 0, wxDefaultValidator, _("WxEditHeaderLeft"));
484 WxEditHeaderLeft->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
485 WxFlexGridSizer1->Add(WxEditHeaderLeft,0,0 | wxALL,2);
486
487 WxButton1 = new wxButton(WxNoteBookPage3, ID_WXBUTTON1, _(">>"), wxPoint(287, 1), wxSize(25, 25), 0, wxDefaultValidator, _("WxButton1"));
488 WxButton1->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
489 WxFlexGridSizer1->Add(WxButton1,0,wxALIGN_LEFT | wxALL,1);
490
491 WxStaticText8 = new wxStaticText(WxNoteBookPage3, ID_WXSTATICTEXT8, _("Center:"), wxPoint(2, 32), wxDefaultSize, 0, _("WxStaticText8"));
492 WxStaticText8->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
493 WxFlexGridSizer1->Add(WxStaticText8,0,wxALIGN_RIGHT | wxALL,2);
494
495 WxEditHeaderCenter = new wxTextCtrl(WxNoteBookPage3, ID_WXEDITHEADERCENTER, _(""), wxPoint(44, 30), wxSize(240, 21), 0, wxDefaultValidator, _("WxEditHeaderCenter"));
496 WxEditHeaderCenter->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
497 WxFlexGridSizer1->Add(WxEditHeaderCenter,0,0 | wxALL,2);
498
499 WxButton2 = new wxButton(WxNoteBookPage3, ID_WXBUTTON2, _(">>"), wxPoint(287, 28), wxSize(25, 25), 0, wxDefaultValidator, _("WxButton2"));
500 WxButton2->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
501 WxFlexGridSizer1->Add(WxButton2,0,wxALIGN_LEFT | wxALL,1);
502
503 WxStaticText9 = new wxStaticText(WxNoteBookPage3, ID_WXSTATICTEXT9, _("Right:"), wxPoint(5, 59), wxDefaultSize, 0, _("WxStaticText9"));
504 WxStaticText9->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
505 WxFlexGridSizer1->Add(WxStaticText9,0,wxALIGN_RIGHT | wxALL,2);
506
507 WxEditHeaderRight = new wxTextCtrl(WxNoteBookPage3, ID_WXEDITHEADERRIGHT, _(""), wxPoint(44, 57), wxSize(240, 21), 0, wxDefaultValidator, _("WxEditHeaderRight"));
508 WxEditHeaderRight->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
509 WxFlexGridSizer1->Add(WxEditHeaderRight,0,0 | wxALL,2);
510
511 WxButton3 = new wxButton(WxNoteBookPage3, ID_WXBUTTON3, _(">>"), wxPoint(287, 55), wxSize(25, 25), 0, wxDefaultValidator, _("WxButton3"));
512 WxButton3->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
513 WxFlexGridSizer1->Add(WxButton3,0,wxALIGN_LEFT | wxALL,1);
514
515 wxStaticBox* WxStaticBoxSizer4_StaticBoxObj = new wxStaticBox(WxNoteBookPage3, wxID_ANY, _("Page Footer"));
516 WxStaticBoxSizer4 = new wxStaticBoxSizer(WxStaticBoxSizer4_StaticBoxObj, wxVERTICAL);
517 WxBoxSizer16->Add(WxStaticBoxSizer4, 1, wxEXPAND | wxALL, 4);
518
519 WxCheckBoxPrintPageFooter = new wxCheckBox(WxNoteBookPage3, ID_WXCHECKBOXPRINTPAGEFOOTER, _("Print Page Footer"), wxPoint(86, 16), wxSize(150, 17), 0, wxDefaultValidator, _("WxCheckBoxPrintPageFooter"));
520 WxCheckBoxPrintPageFooter->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
521 WxStaticBoxSizer4->Add(WxCheckBoxPrintPageFooter,0,wxALIGN_LEFT | wxALL,1);
522
523 WxFlexGridSizer2 = new wxFlexGridSizer(0, 3, 0, 0);
524 WxStaticBoxSizer4->Add(WxFlexGridSizer2, 1, wxEXPAND | wxALL, 2);
525
526 WxStaticText10 = new wxStaticText(WxNoteBookPage3, ID_WXSTATICTEXT7, _("Left:"), wxPoint(8, 5), wxDefaultSize, 0, _("WxStaticText10"));
527 WxStaticText10->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
528 WxFlexGridSizer2->Add(WxStaticText10,0,wxALIGN_RIGHT | wxALL,2);
529
530 WxEditFooterLeft = new wxTextCtrl(WxNoteBookPage3, ID_WXEDITHEADERLEFT, _(""), wxPoint(44, 3), wxSize(240, 21), 0, wxDefaultValidator, _("WxEditFooterLeft"));
531 WxEditFooterLeft->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
532 WxFlexGridSizer2->Add(WxEditFooterLeft,0,0 | wxALL,2);
533
534 WxButton4 = new wxButton(WxNoteBookPage3, ID_WXBUTTON4, _(">>"), wxPoint(287, 1), wxSize(25, 25), 0, wxDefaultValidator, _("WxButton4"));
535 WxButton4->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
536 WxFlexGridSizer2->Add(WxButton4,0,wxALIGN_LEFT | wxALL,1);
537
538 WxStaticText11 = new wxStaticText(WxNoteBookPage3, ID_WXSTATICTEXT8, _("Center:"), wxPoint(2, 32), wxDefaultSize, 0, _("WxStaticText11"));
539 WxStaticText11->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
540 WxFlexGridSizer2->Add(WxStaticText11,0,wxALIGN_RIGHT | wxALL,2);
541
542 WxEditFooterCenter = new wxTextCtrl(WxNoteBookPage3, ID_WXEDITHEADERCENTER, _(""), wxPoint(44, 30), wxSize(240, 21), 0, wxDefaultValidator, _("WxEditFooterCenter"));
543 WxEditFooterCenter->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
544 WxFlexGridSizer2->Add(WxEditFooterCenter,0,0 | wxALL,2);
545
546 WxButton5 = new wxButton(WxNoteBookPage3, ID_WXBUTTON5, _(">>"), wxPoint(287, 28), wxSize(25, 25), 0, wxDefaultValidator, _("WxButton5"));
547 WxButton5->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
548 WxFlexGridSizer2->Add(WxButton5,0,wxALIGN_LEFT | wxALL,1);
549
550 WxStaticText12 = new wxStaticText(WxNoteBookPage3, ID_WXSTATICTEXT9, _("Right:"), wxPoint(5, 59), wxDefaultSize, 0, _("WxStaticText12"));
551 WxStaticText12->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
552 WxFlexGridSizer2->Add(WxStaticText12,0,wxALIGN_RIGHT | wxALL,2);
553
554 WxEditFooterRight = new wxTextCtrl(WxNoteBookPage3, ID_WXEDITHEADERRIGHT, _(""), wxPoint(44, 57), wxSize(240, 21), 0, wxDefaultValidator, _("WxEditFooterRight"));
555 WxEditFooterRight->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
556 WxFlexGridSizer2->Add(WxEditFooterRight,0,0 | wxALL,2);
557
558 WxButton6 = new wxButton(WxNoteBookPage3, ID_WXBUTTON6, _(">>"), wxPoint(287, 55), wxSize(25, 25), 0, wxDefaultValidator, _("WxButton6"));
559 WxButton6->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
560 WxFlexGridSizer2->Add(WxButton6,0,wxALIGN_LEFT | wxALL,1);
561
562 WxNoteBookPage4 = new wxPanel(WxNotebook1, ID_WXNOTEBOOKPAGE4, wxPoint(4, 24), wxSize(673, 314));
563 WxNoteBookPage4->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
564 WxNotebook1->AddPage(WxNoteBookPage4, _("Keys"));
565
566 WxBoxSizer18 = new wxBoxSizer(wxHORIZONTAL);
567 WxNoteBookPage4->SetSizer(WxBoxSizer18);
568 WxNoteBookPage4->SetAutoLayout(true);
569
570 WxBoxSizer19 = new wxBoxSizer(wxHORIZONTAL);
571 WxBoxSizer18->Add(WxBoxSizer19, 2, wxEXPAND | wxALL, 4);
572
573 WxTreeCtrl1 = new wxTreeCtrl(WxNoteBookPage4, ID_WXTREECTRL1, wxPoint(3, 3), wxSize(250, 240), wxTR_HAS_BUTTONS | wxTR_DEFAULT_STYLE, wxDefaultValidator, _("WxTreeCtrl1"));
574 WxTreeCtrl1->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
575 WxBoxSizer19->Add(WxTreeCtrl1,1,wxEXPAND | wxALL,3);
576
577 WxBoxSizer20 = new wxBoxSizer(wxVERTICAL);
578 WxBoxSizer18->Add(WxBoxSizer20, 3, wxEXPAND | wxALL, 2);
579
580 WxBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
581 WxBoxSizer20->Add(WxBoxSizer24, 0, wxEXPAND | wxALL, 2);
582
583 WxStaticTextCommandHint = new wxStaticText(WxNoteBookPage4, ID_WXSTATICTEXTCOMMANDHINT, _("Hint:"), wxPoint(5, 7), wxDefaultSize, 0, _("WxStaticTextCommandHint"));
584 WxStaticTextCommandHint->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
585 WxBoxSizer24->Add(WxStaticTextCommandHint,0,wxALIGN_LEFT | wxALL,5);
586
587 WxEditCommandHint = new wxTextCtrl(WxNoteBookPage4, ID_WXEDITHINT, _(""), wxPoint(41, 5), wxSize(300, 21), wxTE_READONLY, wxDefaultValidator, _("WxEditCommandHint"));
588 WxEditCommandHint->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
589 WxEditCommandHint->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
590 WxBoxSizer24->Add(WxEditCommandHint,1,wxEXPAND | wxALL,5);
591
592 WxBoxSizer21 = new wxBoxSizer(wxHORIZONTAL);
593 WxBoxSizer20->Add(WxBoxSizer21, 1, wxEXPAND | wxALL, 2);
594
595 WxBoxSizer22 = new wxBoxSizer(wxVERTICAL);
596 WxBoxSizer21->Add(WxBoxSizer22, 0, wxEXPAND | wxALL, 2);
597
598 WxStaticText14 = new wxStaticText(WxNoteBookPage4, ID_WXSTATICTEXT14, _("Assigned Keys:"), wxPoint(34, 5), wxDefaultSize, 0, _("WxStaticText14"));
599 WxStaticText14->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
600 WxBoxSizer22->Add(WxStaticText14,0,wxALIGN_LEFT | wxALL,5);
601
602 wxArrayString arrayStringFor_WxListBoxKeys;
603 WxListBoxKeys = new wxListBox(WxNoteBookPage4, ID_WXLISTBOXKEYS, wxPoint(2, 29), wxSize(140, 200), arrayStringFor_WxListBoxKeys, wxLB_SINGLE);
604 WxListBoxKeys->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
605 WxBoxSizer22->Add(WxListBoxKeys,1,wxEXPAND | wxALL,2);
606
607 WxBoxSizer25 = new wxBoxSizer(wxVERTICAL);
608 WxBoxSizer21->Add(WxBoxSizer25, 5, wxEXPAND | wxALL, 1);
609
610 WxStaticText15 = new wxStaticText(WxNoteBookPage4, ID_WXSTATICTEXT15, _("New Key:"), wxPoint(70, 5), wxDefaultSize, 0, _("WxStaticText15"));
611 WxStaticText15->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
612 WxBoxSizer25->Add(WxStaticText15,0,wxALIGN_LEFT | wxALL,5);
613
614 WxEditKey = new KeyTextCtrl(WxNoteBookPage4, ID_WXEDITKEY, _(""), wxPoint(5, 32), wxSize(180, 21), wxWANTS_CHARS | wxTE_PROCESS_TAB, wxDefaultValidator, _("WxEditKey"));
615 WxEditKey->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
616 WxBoxSizer25->Add(WxEditKey,0,wxEXPAND | wxALL,5);
617
618 WxEditKeyHint = new wxTextCtrl(WxNoteBookPage4, ID_WXEDITKEYHINT, _(""), wxPoint(5, 63), wxSize(180, 21), wxTE_READONLY, wxDefaultValidator, _("WxEditKeyHint"));
619 WxEditKeyHint->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
620 WxEditKeyHint->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
621 WxBoxSizer25->Add(WxEditKeyHint,1,wxEXPAND | wxALL,5);
622
623 WxButtonAddKey = new wxButton(WxNoteBookPage4, ID_WXBUTTONADDKEY, _("<== Add Key"), wxPoint(15, 94), wxSize(160, 28), 0, wxDefaultValidator, _("WxButtonAddKey"));
624 WxButtonAddKey->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
625 WxBoxSizer25->Add(WxButtonAddKey,0,wxALIGN_LEFT | wxALL,5);
626
627 WxButtonDeleteKey = new wxButton(WxNoteBookPage4, ID_WXBUTTONDELETEKEY, _("==> Delete Key"), wxPoint(15, 132), wxSize(160, 28), 0, wxDefaultValidator, _("WxButtonDeleteKey"));
628 WxButtonDeleteKey->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
629 WxBoxSizer25->Add(WxButtonDeleteKey,0,wxALIGN_LEFT | wxALL,5);
630
631 WxButtonShowInMenu = new wxButton(WxNoteBookPage4, ID_WXBUTTONSHOWINMENU, _("Show the Key in Menu"), wxPoint(15, 170), wxSize(160, 28), 0, wxDefaultValidator, _("WxButtonShowInMenu"));
632 WxButtonShowInMenu->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
633 WxBoxSizer25->Add(WxButtonShowInMenu,0,wxALIGN_LEFT | wxALL,5);
634
635 WxBoxSizer26 = new wxBoxSizer(wxHORIZONTAL);
636 WxBoxSizer20->Add(WxBoxSizer26, 0, wxALIGN_LEFT | wxALL, 2);
637
638 WxCheckBoxResetAllKeys = new wxCheckBox(WxNoteBookPage4, ID_WXCHECKBOXRESETALLKEYS, _("Reset all keys to default (must restart MadEdit)"), wxPoint(5, 5), wxSize(250, 17), 0, wxDefaultValidator, _("WxCheckBoxResetAllKeys"));
639 WxCheckBoxResetAllKeys->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
640 WxBoxSizer26->Add(WxCheckBoxResetAllKeys,0,wxALIGN_LEFT | wxALL,5);
641
642 WxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
643 WxBoxSizer1->Add(WxBoxSizer2, 0, wxALIGN_CENTER | wxALL, 5);
644
645 WxButtonOK = new wxButton(this, ID_WXBUTTONOK, _("&OK"), wxPoint(6, 6), wxSize(85, 30), 0, wxDefaultValidator, _("WxButtonOK"));
646 WxButtonOK->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
647 WxBoxSizer2->Add(WxButtonOK,0,wxALIGN_CENTER | wxALL,5);
648
649 WxButtonCancel = new wxButton(this, ID_WXBUTTONCANCEL, _("&Cancel"), wxPoint(100, 5), wxSize(90, 30), 0, wxDefaultValidator, _("WxButtonCancel"));
650 WxButtonCancel->SetFont(wxFont(8, wxSWISS, wxNORMAL, wxNORMAL, false, _("MS Sans Serif")));
651 WxBoxSizer2->Add(WxButtonCancel,0,wxALIGN_CENTER | wxALL,5);
652
653 WxPopupMenuPrintMark = new wxMenu(_(""));WxPopupMenuPrintMark->Append(ID_MNU_MENUITEM1_1110, _("[%f] &File Name"), _(""), wxITEM_NORMAL);
654 WxPopupMenuPrintMark->Append(ID_MNU___P__PATHNAME_1111, _("[%p] &Path Name"), _(""), wxITEM_NORMAL);
655 WxPopupMenuPrintMark->AppendSeparator();
656 WxPopupMenuPrintMark->Append(ID_MNU___N_PAGE_NUMBER_1113, _("[%n] Page &Number"), _(""), wxITEM_NORMAL);
657 WxPopupMenuPrintMark->Append(ID_MNU___S__TOTALPAGES_1114, _("[%s] Total Page&s"), _(""), wxITEM_NORMAL);
658 WxPopupMenuPrintMark->AppendSeparator();
659 WxPopupMenuPrintMark->Append(ID_MNU___D__DATE_1116, _("[%d] &Date"), _(""), wxITEM_NORMAL);
660 WxPopupMenuPrintMark->Append(ID_MNU___T__TIME_1117, _("[%t] &Time"), _(""), wxITEM_NORMAL);
661
662 WxPopupMenuDateTimeMark = new wxMenu(_(""));WxPopupMenuDateTimeMark->Append(ID_MNU___Y__M__D_I__M__S_P_2007_02_2408_30_55AM_1191, _("[%Y/%m/%d %I:%M:%S %p] 2007/02/24 08:30:55 AM"), _(""), wxITEM_NORMAL);
663 WxPopupMenuDateTimeMark->Append(ID_MNU___D__M__Y_24_02_2007_1192, _("[%d/%m/%Y] 24/02/2007"), _(""), wxITEM_NORMAL);
664 WxPopupMenuDateTimeMark->Append(ID_MNU___A__D_B_Y_H__M__S_Z_RFC822TIMESTAMP_1195, _("[%a, %d %b %Y %H:%M:%S %z] RFC822 timestamp"), _(""), wxITEM_NORMAL);
665 WxPopupMenuDateTimeMark->AppendSeparator();
666 WxPopupMenuDateTimeMark->Append(ID_MNU_MENUITEM1_1170, _("[%a] Abbreviated weekday name"), _(""), wxITEM_NORMAL);
667 WxPopupMenuDateTimeMark->Append(ID_MNU___A_FULLWEEKDAYNAME_1171, _("[%A] Full weekday name"), _(""), wxITEM_NORMAL);
668 WxPopupMenuDateTimeMark->Append(ID_MNU___B_ABBREVIATEDMONTHNAME_1172, _("[%b] Abbreviated month name"), _(""), wxITEM_NORMAL);
669 WxPopupMenuDateTimeMark->Append(ID_MNU___B_FULLMONTHNAME_1173, _("[%B] Full month name"), _(""), wxITEM_NORMAL);
670 WxPopupMenuDateTimeMark->Append(ID_MNU___C_DATEANDTIMEREPRESENTATIONAPPROPRIATEFORLOCALE_1174, _("[%c] Date and time representation appropriate for locale"), _(""), wxITEM_NORMAL);
671 WxPopupMenuDateTimeMark->Append(ID_MNU___D_DAYOFMONTHASDECIMALNUMBER_01_31__1175, _("[%d] Day of month as decimal number (01 - 31)"), _(""), wxITEM_NORMAL);
672 WxPopupMenuDateTimeMark->Append(ID_MNU___H_HOURIN24_HOURFORMAT_00_23__1176, _("[%H] Hour in 24-hour format (00 - 23)"), _(""), wxITEM_NORMAL);
673 WxPopupMenuDateTimeMark->Append(ID_MNU___I_HOURIN12_HOURFORMAT_01_12__1177, _("[%I] Hour in 12-hour format (01 - 12)"), _(""), wxITEM_NORMAL);
674 WxPopupMenuDateTimeMark->Append(ID_MNU___J_DAYOFYEARASDECIMALNUMBER_001_366__1178, _("[%j] Day of year as decimal number (001 - 366)"), _(""), wxITEM_NORMAL);
675 WxPopupMenuDateTimeMark->Append(ID_MNU___M_MONTHASDECIMALNUMBER_01_12__1179, _("[%m] Month as decimal number (01 - 12)"), _(""), wxITEM_NORMAL);
676 WxPopupMenuDateTimeMark->Append(ID_MNU___M_MINUTEASDECIMALNUMBER_00_59__1180, _("[%M] Minute as decimal number (00 - 59)"), _(""), wxITEM_NORMAL);
677 WxPopupMenuDateTimeMark->Append(ID_MNU___P_CURRENTLOCALESA_M__P_M_INDICATORFOR12_HOURCLOCK_1181, _("[%p] Current locale's A.M./P.M. indicator for 12-hour clock"), _(""), wxITEM_NORMAL);
678 WxPopupMenuDateTimeMark->Append(ID_MNU___S_SECONDASDECIMALNUMBER_00_59__1182, _("[%S] Second as decimal number (00 - 59)"), _(""), wxITEM_NORMAL);
679 WxPopupMenuDateTimeMark->Append(ID_MNU___U_WEEKOFYEARASDECIMALNUMBER_WITHSUNDAYASFIRSTDAYOFWEEK_00_53__1183, _("[%U] Week of year as decimal number, with Sunday as first day of week (00 - 53)"), _(""), wxITEM_NORMAL);
680 WxPopupMenuDateTimeMark->Append(ID_MNU___W_WEEKDAYASDECIMALNUMBER_0_6_SUNDAYIS0__1184, _("[%w] Weekday as decimal number (0 - 6; Sunday is 0)"), _(""), wxITEM_NORMAL);
681 WxPopupMenuDateTimeMark->Append(ID_MNU___W_WEEKOFYEARASDECIMALNUMBER_WITHMONDAYASFIRSTDAYOFWEEK_00_53__1185, _("[%W] Week of year as decimal number, with Monday as first day of week (00 - 53)"), _(""), wxITEM_NORMAL);
682 WxPopupMenuDateTimeMark->Append(ID_MNU___X_DATEREPRESENTATIONFORCURRENTLOCALE_1186, _("[%x] Date representation for current locale"), _(""), wxITEM_NORMAL);
683 WxPopupMenuDateTimeMark->Append(ID_MNU___X_TIMEREPRESENTATIONFORCURRENTLOCALE_1187, _("[%X] Time representation for current locale"), _(""), wxITEM_NORMAL);
684 WxPopupMenuDateTimeMark->Append(ID_MNU___Y_YEARWITHOUTCENTURY_ASDECIMALNUMBER_00_99__1188, _("[%y] Year without century, as decimal number (00 - 99)"), _(""), wxITEM_NORMAL);
685 WxPopupMenuDateTimeMark->Append(ID_MNU___Y_YEARWITHCENTURY_ASDECIMALNUMBER_1189, _("[%Y] Year with century, as decimal number"), _(""), wxITEM_NORMAL);
686 WxPopupMenuDateTimeMark->Append(ID_MNU___Z_TIME_ZONENAME_1193, _("[%z] Time-zone name"), _(""), wxITEM_NORMAL);
687 WxPopupMenuDateTimeMark->Append(ID_MNU___Z_TIME_ZONEABBREVIATION_1194, _("[%Z] Time-zone abbreviation"), _(""), wxITEM_NORMAL);
688
689 SetTitle(_("Options"));
690 SetIcon(wxNullIcon);
691
692 GetSizer()->Layout();
693 GetSizer()->Fit(this);
694
695 ////GUI Items Creation End
696
697 //restore wxFont
698 #undef wxFont
699
700 wxString systemenc(_("System Default"));
701 WxComboBoxEncoding->Append(systemenc);
702 size_t cnt=MadEncoding::GetEncodingsCount();
703 size_t i;
704 for(i=0; i<cnt; i++)
705 {
706 WxComboBoxEncoding->Append(MadEncoding::GetEncodingName(i));//enc+des);
707 }
708 WxComboBoxEncoding->SetValue(systemenc);
709
710 for(i=0; i<g_LanguageCount; i++)
711 {
712 WxComboBoxLanguage->Append(wxString(g_LanguageString[i]));
713 }
714 WxComboBoxLanguage->SetValue(wxString(g_LanguageString[0]));
715
716 ResizeItem(WxBoxSizer27, WxStaticText16, 2, 2);
717 ResizeItem(WxBoxSizer4, WxCheckBoxSingleInstance, 25, 4);
718 ResizeItem(WxBoxSizer4, WxCheckBoxRecordCaretMovements, 25, 4);
719 ResizeItem(WxBoxSizer5, WxStaticText1, 2, 2);
720 ResizeItem(WxBoxSizer6, WxStaticText2, 2, 2);
721 ResizeItem(WxBoxSizer7, WxCheckBoxDoNotSaveSettings, 25, 4);
722 ResizeItem(WxBoxSizer7, WxCheckBoxReloadFiles, 25, 4);
723 ResizeItem(WxBoxSizer7, WxCheckBoxRestoreCaretPos, 25, 4);
724 ResizeItem(WxBoxSizer17, WxStaticText13, 2, 2);
725
726 ResizeItem(WxBoxSizer9, WxStaticText3, 2, 2);
727 ResizeItem(WxBoxSizer10, WxStaticText4, 2, 2);
728 ResizeItem(WxBoxSizer11, WxStaticText5, 2, 2);
729 ResizeItem(WxBoxSizer13, WxStaticText6, 2, 2);
730 ResizeItem(WxBoxSizer12, WxCheckBoxTabOrSpaces, 25, 4);
731 ResizeItem(WxBoxSizer12, WxCheckBoxAutoIndent, 25, 4);
732 ResizeItem(WxBoxSizer12, WxCheckBoxAutoCompletePair, 25, 4);
733 ResizeItem(WxBoxSizer28, WxCheckBoxMouseSelectToCopy, 25, 4);
734 ResizeItem(WxBoxSizer28, WxRadioButtonEnable, 25, 4);
735 ResizeItem(WxBoxSizer28, WxRadioButtonDisable, 25, 4);
736 ResizeItem(WxBoxSizer28, WxStaticText17, 2, 2);
737 ResizeItem(WxBoxSizer12, WxCheckBoxMiddleMouseToPaste, 25, 4);
738 ResizeItem(WxBoxSizer23, WxStaticTextDateTime, 2, 2);
739 ResizeItem(WxBoxSizer23, WxCheckBoxDateTimeInEnglish, 25, 4);
740
741 ResizeItem(WxStaticBoxSizer1, WxCheckBoxPrintSyntax, 25, 4);
742 ResizeItem(WxStaticBoxSizer1, WxCheckBoxPrintLineNumber, 25, 4);
743 ResizeItem(WxStaticBoxSizer1, WxCheckBoxPrintEndOfLine, 25, 4);
744 ResizeItem(WxStaticBoxSizer1, WxCheckBoxPrintTabChar, 25, 4);
745 ResizeItem(WxStaticBoxSizer1, WxCheckBoxPrintSpaceChar, 25, 4);
746
747 int strx=0, stry=0;
748 wxString str=WxRadioBoxPrintOffset->GetLabel();
749 WxRadioBoxPrintOffset->GetTextExtent(str, &strx, &stry);
750 for(i=0;i<WxRadioBoxPrintOffset->GetCount();i++)
751 {
752 int x;
753 str=WxRadioBoxPrintOffset->GetString((unsigned int)i);
754 WxRadioBoxPrintOffset->GetTextExtent(str, &x, &stry);
755 if(x>strx) strx=x;
756 }
757 stry = (stry *((int)WxRadioBoxPrintOffset->GetCount()+2))*4/3;
758 WxRadioBoxPrintOffset->SetSize(strx+=25, stry);
759 WxStaticBoxSizer2->SetItemMinSize(WxRadioBoxPrintOffset, strx, stry);
760
761 ResizeItem(WxStaticBoxSizer3, WxCheckBoxPrintPageHeader, 25, 4);
762 ResizeItem(WxStaticBoxSizer3, WxStaticText7, 2, 2);
763 ResizeItem(WxStaticBoxSizer3, WxStaticText8, 2, 2);
764 ResizeItem(WxStaticBoxSizer3, WxStaticText9, 2, 2);
765 ResizeItem(WxStaticBoxSizer3, WxEditHeaderLeft, 0, 2);
766 ResizeItem(WxStaticBoxSizer3, WxEditHeaderCenter, 0, 2);
767 ResizeItem(WxStaticBoxSizer3, WxEditHeaderRight, 0, 2);
768
769 ResizeItem(WxStaticBoxSizer4, WxCheckBoxPrintPageFooter, 25, 4);
770 ResizeItem(WxStaticBoxSizer4, WxStaticText10, 2, 2);
771 ResizeItem(WxStaticBoxSizer4, WxStaticText11, 2, 2);
772 ResizeItem(WxStaticBoxSizer4, WxStaticText12, 2, 2);
773 ResizeItem(WxStaticBoxSizer4, WxEditFooterLeft, 0, 2);
774 ResizeItem(WxStaticBoxSizer4, WxEditFooterCenter, 0, 2);
775 ResizeItem(WxStaticBoxSizer4, WxEditFooterRight, 0, 2);
776
777 ResizeItem(WxBoxSizer22, WxStaticText14, 2, 2);
778 ResizeItem(WxBoxSizer25, WxStaticText15, 2, 2);
779 ResizeItem(WxBoxSizer24, WxStaticTextCommandHint, 2, 2);
780
781 ResizeItem(WxBoxSizer26, WxCheckBoxResetAllKeys, 25, 4);
782
783
784 #ifdef __WXMSW__
785 WxCheckBoxRightClickMenu = new wxCheckBox(WxNoteBookPage1, -1, _("Add MadEdit to the RightClickMenu of Explorer(Deselect to Remove the Entry from Windows Registry)"), wxPoint(5,5), wxSize(400,20), 0, wxDefaultValidator, _T("WxCheckBoxRightClickMenu"));
786 WxBoxSizer7->Add(WxCheckBoxRightClickMenu,0,wxALIGN_LEFT | wxALL,2);
787 ResizeItem(WxBoxSizer7, WxCheckBoxRightClickMenu, 25, 4);
788 #endif
789
790 wxSize size=WxBoxSizer1->GetMinSize();
791 wxSize size1=WxBoxSizer3->GetMinSize();
792 wxSize size2=WxBoxSizer8->GetMinSize();
793 wxSize size3=WxBoxSizer14->GetMinSize();
794 wxSize size4=WxBoxSizer18->GetMinSize();
795
796 UpdateSize(size, size1);
797 UpdateSize(size, size2);
798 UpdateSize(size, size3);
799 UpdateSize(size, size4);
800
801 wxSize size5=WxBoxSizer2->GetMinSize();
802 size.y += (size5.y + 30);
803
804 this->SetClientSize(size);
805 Center();
806
807 // build Command Tree
808 WxTreeCtrl1->SetImageList(g_MainFrame->m_ImageList);
809 wxTreeItemId root=WxTreeCtrl1->AddRoot(_("Commands"));
810
811 wxTreeItemId menuRoot=WxTreeCtrl1->AppendItem(root, _("Menu"));
812 wxTreeItemId editorRoot=WxTreeCtrl1->AppendItem(root, _("Editor"));
813
814 list<wxTreeItemId> tree_stack;
815 CommandData *cd = &CommandTable[0];
816 wxTreeItemId tid;
817
818 // Menu command
819 do
820 {
821 if(cd->menu_level==0)
822 {
823 tid=WxTreeCtrl1->AppendItem(menuRoot, FilterChar(wxGetTranslation(cd->text)));
824 tree_stack.clear();
825 tree_stack.push_back(tid);
826 ++cd;
827 continue;
828 }
829 else if(cd->menu_level < int(tree_stack.size()))
830 {
831 do
832 {
833 tree_stack.pop_back();
834 }
835 while(cd->menu_level < int(tree_stack.size()));
836 }
837
838 if(cd->menu_ptr != 0)
839 {
840 tid=WxTreeCtrl1->AppendItem(tree_stack.back(), FilterChar(wxGetTranslation(cd->text)));
841 tree_stack.push_back(tid);
842 }
843 else if(cd->kind != wxITEM_SEPARATOR)
844 {
845 TreeItemData *data=new TreeItemData;
846 data->cmddata=cd;
847 TreeItemDataList.push_back(data);
848
849 tid=WxTreeCtrl1->AppendItem(tree_stack.back(), FilterChar(wxGetTranslation(cd->text)), cd->image_idx, cd->image_idx, data);
850 WxTreeCtrl1->SetItemBold(tid, true);
851 }
852
853 ++cd;
854 }
855 while(cd->menu_level>=0);
856
857 // Editor command
858 do
859 {
860 TreeItemData *data=new TreeItemData;
861 data->cmddata=cd;
862 TreeItemDataList.push_back(data);
863
864 tid=WxTreeCtrl1->AppendItem(editorRoot, MadKeyBindings::CommandToText(cd->command), cd->image_idx, cd->image_idx, data);
865 WxTreeCtrl1->SetItemBold(tid, true);
866 cd++;
867 }
868 while(cd->command > 0);
869
870 WxNotebook1->SetWindowStyleFlag(wxAUI_NB_TOP|wxAUI_NB_TAB_MOVE|wxAUI_NB_SCROLL_BUTTONS);
871
872 WxButtonCancel->SetId(wxID_CANCEL);
873 }
874
MadOptionsDialogClose(wxCloseEvent & event)875 void MadOptionsDialog::MadOptionsDialogClose(wxCloseEvent& event)
876 {
877 // --> Don't use Close with a wxDialog,
878 // use Destroy instead.
879
880 if(event.CanVeto())
881 {
882 event.Veto();
883 Show(false);
884 return;
885 }
886
887 g_OptionsDialog=NULL;
888 Destroy();
889 }
890
891
892 /*
893 * MadOptionsDialogActivate
894 */
MadOptionsDialogActivate(wxActivateEvent & event)895 void MadOptionsDialog::MadOptionsDialogActivate(wxActivateEvent& event)
896 {
897 if(event.GetActive())
898 {
899 if(FindFocus()==NULL)
900 {
901 SetReturnCode(wxID_CANCEL);
902 WxButtonCancel->SetFocus();
903 }
904 }
905
906 event.Skip();
907 }
908
LoadOptions(void)909 void MadOptionsDialog::LoadOptions(void)
910 {
911 wxConfigBase *cfg=wxConfigBase::Get(false);
912 wxString oldpath=cfg->GetPath();
913 cfg->SetPath(wxT("/MadEdit"));
914
915 long ll;
916 bool bb;
917 wxString ss;
918
919 // General page
920 ss=g_LanguageString[0];
921 cfg->Read(wxT("Language"), &ss);
922 WxComboBoxLanguage->SetValue(ss);
923
924 cfg->Read(wxT("SingleInstance"), &bb);
925 WxCheckBoxSingleInstance->SetValue(bb);
926
927 cfg->Read(wxT("RecordCaretMovements"), &bb);
928 WxCheckBoxRecordCaretMovements->SetValue(bb);
929
930 cfg->Read(wxT("MaxSizeToLoad"), &ll);
931 WxEditMaxSizeToLoad->SetValue(wxString()<<ll);
932
933 cfg->Read(wxT("MaxTextFileSize"), &ll);
934 WxEditMaxTextFileSize->SetValue(wxString()<<ll);
935
936 ss=_("System Default");
937 cfg->Read(wxT("DefaultEncoding"), &ss);
938 WxComboBoxEncoding->SetValue(ss);
939
940 #ifdef __WXMSW__
941 wxRegKey *pRegKey = new wxRegKey(wxT("HKEY_CLASSES_ROOT\\*\\shell\\MadEdit\\command"));
942 if(pRegKey->Exists())
943 {
944 wxString str;
945 if(pRegKey->QueryValue(wxEmptyString, str))
946 {
947 wxString exepath=GetExecutablePath();
948 WxCheckBoxRightClickMenu->SetValue( str.Upper().Find(exepath.Upper())>=0 );
949 }
950 }
951 delete pRegKey;
952 #endif
953
954 // Edit page
955 cfg->Read(wxT("MaxLineLength"), &ll);
956 WxEditMaxLineLength->SetValue(wxString()<<ll);
957
958 cfg->Read(wxT("MaxColumns"), &ll);
959 WxEditMaxColumns->SetValue(wxString()<<ll);
960
961 cfg->Read(wxT("TabColumns"), &ll);
962 WxEditTabColumns->SetValue(wxString()<<ll);
963
964 cfg->Read(wxT("IndentColumns"), &ll);
965 WxEditIndentColumns->SetValue(wxString()<<ll);
966
967 cfg->Read(wxT("DateTimeFormat"), &ss, wxT("%c"));
968 WxEditDateTime->SetValue(ss);
969
970 cfg->Read(wxT("DateTimeInEnglish"), &bb, false);
971 WxCheckBoxDateTimeInEnglish->SetValue(bb);
972
973 cfg->Read(wxT("InsertSpacesInsteadOfTab"), &bb);
974 WxCheckBoxTabOrSpaces->SetValue(bb);
975
976 cfg->Read(wxT("AutoIndent"), &bb);
977 WxCheckBoxAutoIndent->SetValue(bb);
978
979 cfg->Read(wxT("AutoCompletePair"), &bb);
980 WxCheckBoxAutoCompletePair->SetValue(bb);
981
982 cfg->Read(wxT("MouseSelectToCopy"), &bb);
983 WxCheckBoxMouseSelectToCopy->SetValue(bb);
984
985 cfg->Read(wxT("MouseSelectToCopyWithCtrlKey"), &bb);
986 WxRadioButtonEnable->SetValue(bb);
987 WxRadioButtonDisable->SetValue(!bb);
988
989 cfg->Read(wxT("MiddleMouseToPaste"), &bb);
990 WxCheckBoxMiddleMouseToPaste->SetValue(bb);
991
992 extern bool g_DoNotSaveSettings;
993 WxCheckBoxDoNotSaveSettings->SetValue(g_DoNotSaveSettings);
994
995 cfg->Read(wxT("ReloadFiles"), &bb, true);
996 WxCheckBoxReloadFiles->SetValue(bb);
997
998 cfg->Read(wxT("RestoreCaretPos"), &bb, true);
999 WxCheckBoxRestoreCaretPos->SetValue(bb);
1000
1001 // Print page
1002 cfg->Read(wxT("PrintSyntax"), &bb);
1003 WxCheckBoxPrintSyntax->SetValue(bb);
1004
1005 cfg->Read(wxT("PrintLineNumber"), &bb);
1006 WxCheckBoxPrintLineNumber->SetValue(bb);
1007
1008 cfg->Read(wxT("PrintEndOfLine"), &bb);
1009 WxCheckBoxPrintEndOfLine->SetValue(bb);
1010
1011 cfg->Read(wxT("PrintTabChar"), &bb);
1012 WxCheckBoxPrintTabChar->SetValue(bb);
1013
1014 cfg->Read(wxT("PrintSpaceChar"), &bb);
1015 WxCheckBoxPrintSpaceChar->SetValue(bb);
1016
1017 cfg->Read(wxT("PrintOffsetHeader"), &ll);
1018 WxRadioBoxPrintOffset->SetSelection(ll);
1019
1020 cfg->Read(wxT("PrintPageHeader"), &bb);
1021 WxCheckBoxPrintPageHeader->SetValue(bb);
1022
1023 cfg->Read(wxT("PageHeaderLeft"), &ss);
1024 WxEditHeaderLeft->SetValue(ss);
1025 cfg->Read(wxT("PageHeaderCenter"), &ss);
1026 WxEditHeaderCenter->SetValue(ss);
1027 cfg->Read(wxT("PageHeaderRight"), &ss);
1028 WxEditHeaderRight->SetValue(ss);
1029
1030 cfg->Read(wxT("PrintPageFooter"), &bb);
1031 WxCheckBoxPrintPageFooter->SetValue(bb);
1032
1033 cfg->Read(wxT("PageFooterLeft"), &ss);
1034 WxEditFooterLeft->SetValue(ss);
1035 cfg->Read(wxT("PageFooterCenter"), &ss);
1036 WxEditFooterCenter->SetValue(ss);
1037 cfg->Read(wxT("PageFooterRight"), &ss);
1038 WxEditFooterRight->SetValue(ss);
1039
1040
1041 extern bool g_ResetAllKeys;
1042 WxCheckBoxResetAllKeys->SetValue(g_ResetAllKeys);
1043
1044 ChangedTreeItemDataList.clear();
1045
1046 // get all keys of each command and srore them in TreeItemDataList
1047 list<TreeItemData*>::iterator tidit=TreeItemDataList.begin();
1048 list<TreeItemData*>::iterator tiditend=TreeItemDataList.end();
1049 do
1050 {
1051 CommandData *cd=(*tidit)->cmddata;
1052 (*tidit)->keys.Clear();
1053 MadEdit::ms_KeyBindings.GetKeys(cd->menu_id, cd->command, (*tidit)->keys);
1054 }
1055 while(++tidit != tiditend);
1056
1057 g_SelectedCommandItem=NULL;
1058 g_SelectedKeyId=-1;
1059 WxEditCommandHint->Clear();
1060 WxListBoxKeys->Clear();
1061 UpdateKeyHint();
1062
1063 wxTreeItemId selid=WxTreeCtrl1->GetSelection();
1064 if(selid.IsOk())
1065 {
1066 WxTreeCtrl1->Unselect();
1067 WxTreeCtrl1->SelectItem(selid, true);
1068 }
1069
1070 cfg->SetPath(oldpath);
1071
1072 }
1073
1074 /*
1075 * WxButtonOKClick
1076 */
WxButtonOKClick(wxCommandEvent & event)1077 void MadOptionsDialog::WxButtonOKClick(wxCommandEvent& event)
1078 {
1079 long lo;
1080 bool error=false;
1081 wxString errtext(_("Invalid value of \"%s\""));
1082
1083 if(!WxEditMaxSizeToLoad->GetValue().ToLong(&lo) || lo<0)
1084 {
1085 wxLogError(errtext, WxStaticText1->GetLabel().c_str());
1086 error=true;
1087 }
1088
1089 if(!WxEditMaxTextFileSize->GetValue().ToLong(&lo) || lo<0)
1090 {
1091 wxLogError(errtext, WxStaticText2->GetLabel().c_str());
1092 error=true;
1093 }
1094
1095 if(!WxEditMaxLineLength->GetValue().ToLong(&lo) || lo<80)
1096 {
1097 wxLogError(errtext, WxStaticText3->GetLabel().c_str());
1098 error=true;
1099 }
1100
1101 if(!WxEditMaxColumns->GetValue().ToLong(&lo) || lo<=0)
1102 {
1103 wxLogError(errtext, WxStaticText4->GetLabel().c_str());
1104 error=true;
1105 }
1106
1107 if(!WxEditTabColumns->GetValue().ToLong(&lo) || lo<=0)
1108 {
1109 wxLogError(errtext, WxStaticText5->GetLabel().c_str());
1110 error=true;
1111 }
1112
1113 if(!WxEditIndentColumns->GetValue().ToLong(&lo) || lo<=0)
1114 {
1115 wxLogError(errtext, WxStaticText6->GetLabel().c_str());
1116 error=true;
1117 }
1118
1119 if(!error) EndModal(wxID_OK);
1120 }
1121
1122 /*
1123 * WxButtonCancelClick
1124 */
WxButtonCancelClick(wxCommandEvent & event)1125 void MadOptionsDialog::WxButtonCancelClick(wxCommandEvent& event)
1126 {
1127 EndModal(wxID_CANCEL);
1128 }
1129
PrintMarkButtonClick(wxCommandEvent & event)1130 void MadOptionsDialog::PrintMarkButtonClick(wxCommandEvent& event)
1131 {
1132 ButtonID=event.GetId();
1133 PopupMenu(WxPopupMenuPrintMark);
1134 }
1135
PrintMarkClick(wxCommandEvent & event)1136 void MadOptionsDialog::PrintMarkClick(wxCommandEvent& event)
1137 {
1138 wxString str=WxPopupMenuPrintMark->GetLabel(event.GetId());
1139 wxTextCtrl *edit=NULL;
1140 switch(ButtonID)
1141 {
1142 case ID_WXBUTTON1: edit=WxEditHeaderLeft; break;
1143 case ID_WXBUTTON2: edit=WxEditHeaderCenter; break;
1144 case ID_WXBUTTON3: edit=WxEditHeaderRight; break;
1145 case ID_WXBUTTON4: edit=WxEditFooterLeft; break;
1146 case ID_WXBUTTON5: edit=WxEditFooterCenter; break;
1147 case ID_WXBUTTON6: edit=WxEditFooterRight; break;
1148 }
1149
1150 if(edit!=NULL && str[0]==wxT('[') && str[3]==wxT(']'))
1151 {
1152 wxString text=edit->GetValue();
1153 edit->SetValue(text+ str.Mid(1, 2));
1154 }
1155 ButtonID=0;
1156 }
1157
1158
1159 /*
1160 * WxTreeCtrl1SelChanged
1161 */
WxTreeCtrl1SelChanged(wxTreeEvent & event)1162 void MadOptionsDialog::WxTreeCtrl1SelChanged(wxTreeEvent& event)
1163 {
1164 wxTreeItemId id=event.GetItem();
1165 if(!id.IsOk()) return;
1166
1167 g_SelectedCommandItem=(TreeItemData*)WxTreeCtrl1->GetItemData(id);
1168 g_SelectedKeyId=-1;
1169
1170 if(g_SelectedCommandItem==NULL)
1171 {
1172 WxListBoxKeys->Clear();
1173 WxEditCommandHint->SetValue(_("Cannot assign key to this item"));
1174 }
1175 else
1176 {
1177 WxListBoxKeys->Set(g_SelectedCommandItem->keys);
1178 wxString hint=wxT('[');
1179 if(g_SelectedCommandItem->cmddata->menuid_name)
1180 {
1181 hint+= wxString(g_SelectedCommandItem->cmddata->menuid_name);
1182 }
1183 if(g_SelectedCommandItem->cmddata->command > 0)
1184 {
1185 wxString text=MadKeyBindings::CommandToText(g_SelectedCommandItem->cmddata->command);
1186 if(!text.IsEmpty())
1187 {
1188 if(hint.Length()>1)
1189 {
1190 hint+= wxT(',');
1191 }
1192 hint+= text;
1193 }
1194 }
1195 hint+= wxT("] ");
1196 hint+= wxString(wxGetTranslation(g_SelectedCommandItem->cmddata->hint));
1197
1198 WxEditCommandHint->SetValue(hint);
1199 }
1200 }
1201
1202 /*
1203 * WxListBoxKeysSelected
1204 */
WxListBoxKeysSelected(wxCommandEvent & event)1205 void MadOptionsDialog::WxListBoxKeysSelected(wxCommandEvent& event)
1206 {
1207 g_SelectedKeyId=event.GetSelection();
1208 }
1209
1210 // find key in TreeItemDataList
FindKeyInList(const wxString & key)1211 TreeItemData* MadOptionsDialog::FindKeyInList(const wxString &key)
1212 {
1213 list<TreeItemData*>::iterator tidit=TreeItemDataList.begin();
1214 list<TreeItemData*>::iterator tiditend=TreeItemDataList.end();
1215
1216 wxString lkey=key.Lower();
1217
1218 while(tidit!=tiditend)
1219 {
1220 TreeItemData *tid = (*tidit);
1221 if(!tid->keys.IsEmpty())
1222 {
1223 size_t count=tid->keys.GetCount();
1224 size_t idx=0;
1225 for(;idx<count;idx++)
1226 {
1227 if(tid->keys[idx].Lower() == lkey)
1228 {
1229 return tid;
1230 }
1231 }
1232 }
1233
1234 ++tidit;
1235 }
1236 return NULL;
1237 }
1238
FindItemInList(TreeItemData * tid,const list<TreeItemData * > & tlist)1239 bool MadOptionsDialog::FindItemInList(TreeItemData* tid, const list<TreeItemData*> &tlist)
1240 {
1241 list<TreeItemData*>::const_iterator tidit=tlist.begin();
1242 list<TreeItemData*>::const_iterator tiditend=tlist.end();
1243
1244 while(tidit!=tiditend)
1245 {
1246 if((*tidit) == tid)
1247 {
1248 return true;
1249 }
1250 ++tidit;
1251 }
1252 return false;
1253 }
1254
UpdateKeyHint()1255 void MadOptionsDialog::UpdateKeyHint()
1256 {
1257 wxString scstr=WxEditKey->GetValue();
1258 g_CommandItemOfNewKey=NULL;
1259
1260 if(scstr.IsEmpty())
1261 {
1262 g_OptionsDialog->WxEditKeyHint->Clear();
1263 }
1264 else
1265 {
1266 // find the key is assigned to which command
1267 TreeItemData *tid = g_OptionsDialog->FindKeyInList(scstr);
1268 if(tid==NULL)
1269 {
1270 g_OptionsDialog->WxEditKeyHint->SetValue(_("This key is not assigned"));
1271 }
1272 else
1273 {
1274 g_CommandItemOfNewKey=tid;
1275 wxString cmd;
1276
1277 if(tid->cmddata->menuid_name)
1278 {
1279 cmd+= wxString(tid->cmddata->menuid_name);
1280 }
1281 if(tid->cmddata->command > 0)
1282 {
1283 wxString text=MadKeyBindings::CommandToText(tid->cmddata->command);
1284 if(!text.IsEmpty())
1285 {
1286 if(cmd.Length()>1)
1287 {
1288 cmd+= wxT(',');
1289 }
1290 cmd+= text;
1291 }
1292 }
1293
1294 wxString str=wxString::Format(_("This key is assigned to [%s]"), cmd.c_str());
1295 g_OptionsDialog->WxEditKeyHint->SetValue(str);
1296 }
1297 }
1298 }
1299
1300 /*
1301 * WxButtonAddKeyClick
1302 */
WxButtonAddKeyClick(wxCommandEvent & event)1303 void MadOptionsDialog::WxButtonAddKeyClick(wxCommandEvent& event)
1304 {
1305 if(g_SelectedCommandItem!=NULL && g_SelectedCommandItem!=g_CommandItemOfNewKey)
1306 {
1307 wxString key=WxEditKey->GetValue();
1308 if(g_CommandItemOfNewKey!=NULL) // new key is assigned to another command
1309 {
1310 /*
1311 wxMessageDialog dlg(this, key +wxT(": ") +WxEditKeyHint->GetValue() +wxT("\n\n") + wxString(_("Do you want to reassign this key?")),
1312 wxT("MadEdit"), wxYES_NO|wxICON_QUESTION );
1313 if(dlg.ShowModal()!=wxID_YES)
1314 {
1315 return;
1316 }
1317 */
1318
1319 //delete the key from g_CommandItemOfNewKey
1320 int idx=g_CommandItemOfNewKey->keys.Index(key.c_str(), false);
1321 wxASSERT(idx>=0);
1322 g_CommandItemOfNewKey->keys.RemoveAt(idx);
1323 if(FindItemInList(g_CommandItemOfNewKey, ChangedTreeItemDataList)==false)
1324 {
1325 ChangedTreeItemDataList.push_back(g_CommandItemOfNewKey);
1326 }
1327 }
1328
1329 // add the key to g_SelectedCommandItem
1330 g_SelectedCommandItem->keys.Add(key);
1331
1332 WxListBoxKeys->Set(g_SelectedCommandItem->keys);
1333 if(FindItemInList(g_SelectedCommandItem, ChangedTreeItemDataList)==false)
1334 {
1335 ChangedTreeItemDataList.push_back(g_SelectedCommandItem);
1336 }
1337
1338 g_SelectedKeyId=-1;
1339 UpdateKeyHint();
1340 }
1341 }
1342
1343 /*
1344 * WxButtonDeleteKeyClick
1345 */
WxButtonDeleteKeyClick(wxCommandEvent & event)1346 void MadOptionsDialog::WxButtonDeleteKeyClick(wxCommandEvent& event)
1347 {
1348 if(g_SelectedCommandItem!=NULL && g_SelectedKeyId >= 0)
1349 {
1350 g_SelectedCommandItem->keys.RemoveAt(g_SelectedKeyId);
1351
1352 WxListBoxKeys->Set(g_SelectedCommandItem->keys);
1353 if(FindItemInList(g_SelectedCommandItem, ChangedTreeItemDataList)==false)
1354 {
1355 ChangedTreeItemDataList.push_back(g_SelectedCommandItem);
1356 }
1357
1358 g_SelectedKeyId=-1;
1359 UpdateKeyHint();
1360 }
1361 }
1362
1363 /*
1364 * WxButtonShowInMenuClick
1365 */
WxButtonShowInMenuClick(wxCommandEvent & event)1366 void MadOptionsDialog::WxButtonShowInMenuClick(wxCommandEvent& event)
1367 {
1368 // move the selected key to first element of WxListBoxKeys
1369 if(g_SelectedCommandItem!=NULL && g_SelectedCommandItem->cmddata->menu_id>0 && g_SelectedKeyId > 0)
1370 {
1371 wxString key=g_SelectedCommandItem->keys[g_SelectedKeyId];
1372
1373 g_SelectedCommandItem->keys.RemoveAt(g_SelectedKeyId);
1374 g_SelectedCommandItem->keys.Insert(key, 0);
1375
1376 WxListBoxKeys->Set(g_SelectedCommandItem->keys);
1377 if(FindItemInList(g_SelectedCommandItem, ChangedTreeItemDataList)==false)
1378 {
1379 ChangedTreeItemDataList.push_back(g_SelectedCommandItem);
1380 }
1381
1382 g_SelectedKeyId=-1;
1383 }
1384 }
1385
1386
1387 /*
1388 * WxButtonDateTimeClick
1389 */
WxButtonDateTimeClick(wxCommandEvent & event)1390 void MadOptionsDialog::WxButtonDateTimeClick(wxCommandEvent& event)
1391 {
1392 PopupMenu(WxPopupMenuDateTimeMark);
1393 }
1394
DateTimeMarkClick(wxCommandEvent & event)1395 void MadOptionsDialog::DateTimeMarkClick(wxCommandEvent& event)
1396 {
1397 wxString str=WxPopupMenuDateTimeMark->GetLabel(event.GetId());
1398 int pos=str.Find(wxT(']'));
1399 if(pos != wxNOT_FOUND && str[0]==wxT('['))
1400 {
1401 str = str.Mid(1, pos-1);
1402 }
1403
1404 wxString text=WxEditDateTime->GetValue();
1405 WxEditDateTime->SetValue(text+str);
1406 }
1407