NumeRe v1.1.4
NumeRe: Framework für Numerische Rechnungen
OptionsDialog.cpp
Go to the documentation of this file.
1
2// Name: OptionsDialog.cpp
3// Purpose:
4// Author: Mark Erikson
5// Modified by:
6// Created: 11/23/03 16:02:26
7// RCS-ID:
8// Copyright:
9// Licence:
11
12#ifdef __GNUG__
13#pragma implementation "OptionsDialog.cpp"
14#endif
15
16// For compilers that support precompilation, includes "wx/wx.h".
17#include "wx/wxprec.h"
18
19#ifdef __BORLANDC__
20#pragma hdrstop
21#endif
22
23#define ELEMENT_BORDER 5
24
25#include "../../common/CommonHeaders.h"
26#include "../../common/Options.h"
27#include "../../kernel/core/ui/language.hpp"
28
29#include <wx/checklst.h>
30#include <wx/valtext.h>
31#include <wx/dirdlg.h>
32#include <wx/dir.h>
33
34#include "OptionsDialog.h"
35#include "../NumeReWindow.h"
36
37#include "../compositions/grouppanel.hpp"
38
39extern Language _guilang;
44IMPLEMENT_CLASS( OptionsDialog, wxDialog )
45
46
50BEGIN_EVENT_TABLE( OptionsDialog, wxDialog )
68
69std::string replacePathSeparator(const std::string&);
70
71
72
86OptionsDialog::OptionsDialog(wxWindow* parent, Options* options, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style)
87{
88 m_parentFrame = static_cast<NumeReWindow*>(parent);
89 m_options = options;
90 Create(parent, id, caption, pos, size, style);
91}
92
93
107bool OptionsDialog::Create(wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style)
108{
109 SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
110 wxDialog::Create(parent, id, caption, pos, size, style);
111
113
114 if (GetSizer())
115 GetSizer()->SetSizeHints(this);
116
117 Centre();
118 return true;
119}
120
121
131{
132 // Create the main vertical sizer
133 wxBoxSizer* optionVSizer = new wxBoxSizer(wxVERTICAL);
134 this->SetSizer(optionVSizer);
135
136 // Create the notebook
137 m_optionsNotebook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxSize(450*g_pixelScale, 520*g_pixelScale), wxNB_DEFAULT | wxNB_TOP | wxNB_MULTILINE);
138
139 // Create the single pages in the following
140 // private member functions. This approach
141 // reduces the amount of local variables
142 //
143 // To change the order of the settings pages
144 // simply change the order of the following
145 // functions
146 //
147 // Configuration panel
149
150 // Path settings panel
152
153 // Editor settings panel
155
156 // Style panel
158
159 // Static analyzer panel
161
162 // Static debugger panel
164
165 // Misc panel
167
168 // Add the notebook to the vertical page sizer
169 optionVSizer->Add(m_optionsNotebook, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, ELEMENT_BORDER);
170
171 // Add the buttons
172 wxBoxSizer* optionButtonSizer = new wxBoxSizer(wxHORIZONTAL);
173 optionVSizer->Add(optionButtonSizer, 0, wxALIGN_RIGHT | wxALL, 0);
174
175 wxButton* okButton = new wxButton(this, ID_BUTTON_OK, _guilang.get("GUI_OPTIONS_OK"), wxDefaultPosition, wxDefaultSize, 0);
176 optionButtonSizer->Add(okButton, 0, wxALIGN_CENTER_VERTICAL | wxALL, ELEMENT_BORDER);
177
178 wxButton* cancelButton = new wxButton(this, ID_BUTTON_CANCEL, _guilang.get("GUI_OPTIONS_CANCEL"), wxDefaultPosition, wxDefaultSize, 0);
179 optionButtonSizer->Add(cancelButton, 0, wxALIGN_CENTER_VERTICAL | wxALL, ELEMENT_BORDER);
180
181 // end content construction
182}
183
184
193{
194 // Create a grouped page
195 GroupPanel* panel = new GroupPanel(m_optionsNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
196
197 // Create a group
198 wxStaticBoxSizer* group = panel->createGroup(_guilang.get("GUI_OPTIONS_USERINTERFACE"));
199
200 m_compactTables = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_COMPACTTABLES"));
201 m_ExtendedInfo = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_EXTENDEDINFO"));
202 m_CustomLanguage = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_CUSTOMLANG"));
203 m_ESCinScripts = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ESCINSCRIPTS"));
204 //m_UseExternalViewer = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_EXTERNALVIEWER"));
205 m_showToolbarText = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SHOW_TOOLBARTEXT"));
206
207 // Create a group
208 group = panel->createGroup(_guilang.get("GUI_OPTIONS_INTERNALS"));
209
210 m_AutoLoadDefines = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_DEFCTRL"));
211 m_LoadCompactTables = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_EMPTYCOLS"));
212 m_useMaskAsDefault = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_USEMASKASDEFAULT"));
213 m_UseLogfile = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_LOGFILE"));
214 m_useExecuteCommand = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_EXECUTECOMMAND"));
215 m_alwaysReferenceTables = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ALWAYSREFERENCETABLES"));
216 m_autosaveinterval = panel->CreateSpinControl(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_AUTOSAVE"), 10, 600, 30);
217
218 // Enable scrolling for this page, because it might be very large
219 panel->SetScrollbars(0, 20, 0, 200);
220
221 // Add the grouped page to the notebook
222 m_optionsNotebook->AddPage(panel, _guilang.get("GUI_OPTIONS_CONFIG"));
223}
224
225
234{
235 // Create a grouped page
236 GroupPanel* panel = new GroupPanel(m_optionsNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
237
238 // Create a group
239 wxStaticBoxSizer* group = panel->createGroup(_guilang.get("GUI_OPTIONS_DEFAULTPATHS"));
240
241 m_LoadPath = panel->CreatePathInput(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_LOADPATH"), ID_BTN_LOADPATH);
242 m_SavePath = panel->CreatePathInput(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SAVEPATH"), ID_BTN_SAVEPATH);
243 m_ScriptPath = panel->CreatePathInput(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SCRIPTPATH"), ID_BTN_SCRIPTPATH);
244 m_ProcPath = panel->CreatePathInput(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_PROCPATH"), ID_BTN_PROCPATH);
245 m_PlotPath = panel->CreatePathInput(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_PLOTPATH"), ID_BTN_PLOTPATH);
246
247 // Create a group
248 group = panel->createGroup(_guilang.get("GUI_OPTIONS_MISCPATHS"));
249
250 m_LaTeXRoot = panel->CreatePathInput(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_LATEXPATH"), ID_BTN_LATEXPATH);
251
252 // Add the grouped page to the notebook
253 m_optionsNotebook->AddPage(panel, _guilang.get("GUI_OPTIONS_PATHS"));
254}
255
256
265{
266 // Create a grouped page
267 GroupPanel* panel = new GroupPanel(m_optionsNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
268
269 // Create a group
270 wxStaticBoxSizer* group = panel->createGroup(_guilang.get("GUI_OPTIONS_USERINTERFACE"));
271
272 m_foldDuringLoading = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_FOLD_DURING_LOADING"));
273 m_FilePathsInTabs = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SHOW_FILEPATHS"));
274 m_IconsOnTabs = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SHOW_ICONS_ON_TABS"));
275 m_useTabs = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_USE_TABS"));
276 m_lineLengthIndicator = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SHOW_LINE_LENGTH_INDICATOR"));
277 m_caretBlinkTime = panel->CreateSpinControl(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_CARET_BLINK_TIME"), 100, 2000, 500);
278
279 group = panel->createGroup(_guilang.get("GUI_OPTIONS_AUTOCOMPLETION"));
280 m_braceAutoComp = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_BRACE_AUTOCOMP"));
281 m_quoteAutoComp = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_QUOTE_AUTOCOMP"));
282 m_blockAutoComp = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_BLOCK_AUTOCOMP"));
283 m_smartSense = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SMARTSENSE_AUTOCOMP"));
284 m_homeEndCancels = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_HOME_END_CANCELS"));
285
286 // Enable scrolling for this page, because it might be very large
287 panel->SetScrollbars(0, 20, 0, 200);
288
289 // Add the grouped page to the notebook
290 m_optionsNotebook->AddPage(panel, "Editor");
291}
292
293
302{
303 // Create a grouped page
304 GroupPanel* panel = new GroupPanel(m_optionsNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
305
306 // Create a group
307 wxStaticBoxSizer* group = panel->createGroup(_guilang.get("GUI_OPTIONS_SYNTAXHIGHLIGHTING"));
308
309 wxFlexGridSizer* colorGroupSizer = new wxFlexGridSizer(2, 0, 5);
310 wxBoxSizer* colorGroupHSizer = new wxBoxSizer(wxHORIZONTAL);
311 wxArrayString styles = m_options->GetStyleIdentifier();
312
313 m_colorType = new wxComboBox( group->GetStaticBox(), ID_CLRSPIN, styles[0], wxDefaultPosition, wxDefaultSize, styles, wxCB_READONLY );
314 m_colorType->SetStringSelection(styles[0]);
315
316 m_foreColor = new wxColourPickerCtrl(group->GetStaticBox(), ID_CLRPICKR_FORE, m_options->GetSyntaxStyle(0).foreground);
317 m_backColor = new wxColourPickerCtrl(group->GetStaticBox(), ID_CLRPICKR_BACK, m_options->GetSyntaxStyle(0).background);
318
319 m_resetButton = new wxButton(group->GetStaticBox(), ID_RESETCOLOR, _guilang.get("GUI_OPTIONS_RESETHIGHLIGHT"), wxDefaultPosition, wxDefaultSize, 0);
320 m_defaultBackground = new wxCheckBox(group->GetStaticBox(), ID_DEFAULTBACKGROUND, _guilang.get("GUI_OPTIONS_DEFAULTBACKGROUND"));
321
322 m_boldCheck = new wxCheckBox(group->GetStaticBox(), ID_BOLD, _guilang.get("GUI_OPTIONS_BOLD"));
323 m_italicsCheck = new wxCheckBox(group->GetStaticBox(), ID_ITALICS, _guilang.get("GUI_OPTIONS_ITALICS"));
324 m_underlineCheck = new wxCheckBox(group->GetStaticBox(), ID_UNDERLINE, _guilang.get("GUI_OPTIONS_UNDERLINE"));
325
326 colorGroupHSizer->Add(m_colorType, 0, wxALIGN_CENTER | wxRIGHT, ELEMENT_BORDER);
327 colorGroupHSizer->Add(m_resetButton, 0, wxALIGN_LEFT | wxLEFT, ELEMENT_BORDER);
328
329 colorGroupSizer->Add(m_foreColor, 1, wxALIGN_CENTER_VERTICAL | wxALL, ELEMENT_BORDER);
330 colorGroupSizer->Add(colorGroupHSizer, 1, wxALIGN_CENTER_VERTICAL | wxALL, ELEMENT_BORDER);
331 colorGroupSizer->Add(m_backColor, 1, wxALIGN_CENTER_VERTICAL | wxALL, ELEMENT_BORDER);
332 colorGroupSizer->Add(m_defaultBackground, 1, wxALIGN_CENTER_VERTICAL | wxALL, ELEMENT_BORDER);
333
334 group->Add(colorGroupSizer, 0, wxALIGN_LEFT, ELEMENT_BORDER);
335
336 wxBoxSizer* fontStyleSize = new wxBoxSizer(wxHORIZONTAL);
337
338 fontStyleSize->Add(m_boldCheck, 1, wxALIGN_LEFT | wxALL, 0);
339 fontStyleSize->Add(m_italicsCheck, 1, wxALIGN_LEFT | wxALL, 0);
340 fontStyleSize->Add(m_underlineCheck, 1, wxALIGN_LEFT | wxALL, 0);
341
342 group->Add(fontStyleSize, 0, wxALIGN_LEFT | wxALL, ELEMENT_BORDER);
343 m_highlightLocalVariables = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_HIGHLIGHTLOCALVARIABLES"));
344
345 // Create a group
346 group = panel->createGroup(_guilang.get("GUI_OPTIONS_FONTS"), wxHORIZONTAL);
347
348 wxBoxSizer* fontSizer = new wxBoxSizer(wxVERTICAL);
349 wxBoxSizer* plotFontSizer = new wxBoxSizer(wxVERTICAL);
350
351 wxStaticText* editorFontStaticText = new wxStaticText(group->GetStaticBox(), wxID_STATIC, _guilang.get("GUI_OPTIONS_EDITORFONT"), wxDefaultPosition, wxDefaultSize, 0);
352 fontSizer->Add(editorFontStaticText, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 0);
353 wxFont font;
354 font.SetNativeFontInfoUserDesc("Consolas 10");
355 m_fontPicker = new wxFontPickerCtrl(group->GetStaticBox(), wxID_ANY, font, wxDefaultPosition, wxSize(200,-1), wxFNTP_DEFAULT_STYLE);
356 fontSizer->Add(m_fontPicker, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT| wxBOTTOM, 0);
357
358 wxStaticText* terminalFontStaticText = new wxStaticText(group->GetStaticBox(), wxID_STATIC, _guilang.get("GUI_OPTIONS_TERMINALFONT"), wxDefaultPosition, wxDefaultSize, 0);
359 fontSizer->Add(terminalFontStaticText, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 0);
360 font.SetNativeFontInfoUserDesc("Consolas 8");
361 m_fontPickerTerminal = new wxFontPickerCtrl(group->GetStaticBox(), wxID_ANY, font, wxDefaultPosition, wxSize(200,-1), wxFNTP_DEFAULT_STYLE);
362 fontSizer->Add(m_fontPickerTerminal, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT| wxBOTTOM, 0);
363
364 wxStaticText* historyFontStaticText = new wxStaticText(group->GetStaticBox(), wxID_STATIC, _guilang.get("GUI_OPTIONS_HISTORYFONT"), wxDefaultPosition, wxDefaultSize, 0);
365 fontSizer->Add(historyFontStaticText, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 0);
366 m_fontPickerHistory = new wxFontPickerCtrl(group->GetStaticBox(), wxID_ANY, font, wxDefaultPosition, wxSize(200,-1), wxFNTP_DEFAULT_STYLE);
367 fontSizer->Add(m_fontPickerHistory, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT| wxBOTTOM, 0);
368
369
370 wxStaticText* defaultFontStaticText = new wxStaticText(group->GetStaticBox(), wxID_STATIC, _(_guilang.get("GUI_OPTIONS_DEFAULTFONT")), wxDefaultPosition, wxDefaultSize, 0);
371 plotFontSizer->Add(defaultFontStaticText, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 0);
372
373 wxArrayString defaultFont;
374 defaultFont.Add("pagella");
375 defaultFont.Add("adventor");
376 defaultFont.Add("bonum");
377 defaultFont.Add("chorus");
378 defaultFont.Add("heros");
379 defaultFont.Add("heroscn");
380 defaultFont.Add("schola");
381 defaultFont.Add("termes");
382
383 m_defaultFont = new wxComboBox(group->GetStaticBox(), ID_PRINTSTYLE, "pagella", wxDefaultPosition, wxSize(200,-1), defaultFont, wxCB_READONLY );
384 m_defaultFont->SetStringSelection("pagella");
385 plotFontSizer->Add(m_defaultFont, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, 0);
386
387 group->Add(fontSizer, 0, wxALIGN_LEFT | wxALL, ELEMENT_BORDER);
388 group->Add(plotFontSizer, 0, wxALIGN_LEFT | wxALL, ELEMENT_BORDER);
389
390 // Add the grouped page to the notebook
391 m_optionsNotebook->AddPage(panel, "Style");
392}
393
394
403{
404 // Create a grouped page
405 GroupPanel* panel = new GroupPanel(m_optionsNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
406
407 // Create a group
408 wxStaticBoxSizer* group = panel->createGroup(_guilang.get("GUI_OPTIONS_PRINTING"));
409
410 wxStaticText* printingStaticText = new wxStaticText( group->GetStaticBox(), wxID_STATIC, _guilang.get("GUI_OPTIONS_PRINT"), wxDefaultPosition, wxDefaultSize, 0 );
411 group->Add(printingStaticText, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, ELEMENT_BORDER);
412
413 wxArrayString m_printStyleStrings;
414 m_printStyleStrings.Add(_guilang.get("GUI_OPTIONS_PRINT_BW"));
415 m_printStyleStrings.Add(_guilang.get("GUI_OPTIONS_PRINT_COLOR"));
416
417 m_printStyle = new wxComboBox( group->GetStaticBox(), ID_PRINTSTYLE, _guilang.get("GUI_OPTIONS_PRINT_BW"), wxDefaultPosition, wxDefaultSize, m_printStyleStrings, wxCB_READONLY );
418 m_printStyle->SetStringSelection(_guilang.get("GUI_OPTIONS_PRINT_BW"));
419 group->Add(m_printStyle, 0, wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, ELEMENT_BORDER);
420
421 m_cbPrintLineNumbers = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_PRINT_LINENUMBERS"));
422
423 // Create a group
424 group = panel->createGroup(_guilang.get("GUI_OPTIONS_SAVING"));
425
426 m_formatBeforeSaving = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_FORMAT_BEFORE_SAVING"));
427 m_keepBackupFiles = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_KEEP_BACKUP_FILES"));
428 m_saveBeforeExecuting = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_AUTOSAVE_BEFORE_EXEC"));
429
430 // Create a group
431 group = panel->createGroup(_guilang.get("GUI_OPTIONS_STARTING"));
432
433 m_saveSession = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SAVE_SESSION"));
434 m_saveBookmarksInSession = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SAVE_BOOKMARKS_IN_SESSION"));
435 m_saveSashPositions = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SAVE_SASH_POSITIONS"));
436 m_saveWindowPosition = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_SAVE_WINDOW_POSITION"));
437 m_showGreeting = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_GREETING"));
438 m_ShowHints = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_HINTS"));
439
440 // Those are not part of any group
441 m_termHistory = panel->CreateSpinControl(panel, panel->getVerticalSizer(), _guilang.get("GUI_OPTIONS_HISTORY_LINES"), 100, 1000, 100);
442 m_precision = panel->CreateSpinControl(panel, panel->getVerticalSizer(), _guilang.get("GUI_OPTIONS_PRECISION"), 1, 14, 7);
443
444 // Enable scrolling for this page
445 panel->SetScrollbars(0, 20, 0, 200);
446
447 // Add the grouped page to the notebook
448 m_optionsNotebook->AddPage(panel, _guilang.get("GUI_OPTIONS_MISC"));
449}
450
451
460{
461 // Create a grouped page
462 GroupPanel* panel = new GroupPanel(m_optionsNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
463
464 // Create a group
465 wxStaticBoxSizer* group = panel->createGroup(_guilang.get("GUI_OPTIONS_ANALYZER_MAIN"));
466
467 m_analyzer[Options::USE_NOTES] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_USE_NOTES"));
468 m_analyzer[Options::USE_WARNINGS] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_USE_WARNINGS"));
469 m_analyzer[Options::USE_ERRORS] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_USE_ERRORS"));
470
471 // Create a group
472 group = panel->createGroup(_guilang.get("GUI_OPTIONS_ANALYZER_METRICS"));
473 m_analyzer[Options::COMMENT_DENSITY] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_COMMENT_DENSITY"));
474 m_analyzer[Options::LINES_OF_CODE] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_LINES_OF_CODE"));
475 m_analyzer[Options::COMPLEXITY] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_COMPLEXITY"));
476 m_analyzer[Options::MAGIC_NUMBERS] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_MAGIC_NUMBERS"));
477 m_analyzer[Options::ALWAYS_SHOW_METRICS] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_ALWAYS_SHOW_METRICS"));
478
479 // Create a group
480 group = panel->createGroup(_guilang.get("GUI_OPTIONS_ANALYZER_OPTIMIZATION"));
481 m_analyzer[Options::INLINE_IF] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_INLINE_IF"));
482 m_analyzer[Options::CONSTANT_EXPRESSION] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_CONSTANT_EXPRESSION"));
483 m_analyzer[Options::PROGRESS_RUNTIME] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_PROGRESS_RUNTIME"));
484 m_analyzer[Options::PROCEDURE_LENGTH] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_PROCEDURE_LENGTH"));
485
486 // Create a group
487 group = panel->createGroup(_guilang.get("GUI_OPTIONS_ANALYZER_UNINTENDED_BEHAVIOR"));
488 m_analyzer[Options::RESULT_SUPPRESSION] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_RESULT_SUPPRESSION"));
489 m_analyzer[Options::RESULT_ASSIGNMENT] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_RESULT_ASSIGNMENT"));
490 m_analyzer[Options::UNUSED_VARIABLES] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_UNUSED_VARIABLES"));
491 m_analyzer[Options::THISFILE_NAMESPACE] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_THISFILE_NAMESPACE"));
492 m_analyzer[Options::SWITCH_FALLTHROUGH] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_SWITCH_FALLTHROUGH"));
493 m_analyzer[Options::GLOBAL_VARIABLES] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_GLOBAL_VARIABLES"));
494 m_analyzer[Options::MISLEADING_TYPE] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_MISLEADING_TYPE"));
495
496 // Create a group
497 group = panel->createGroup(_guilang.get("GUI_OPTIONS_ANALYZER_STYLE"));
498 m_analyzer[Options::TYPE_ORIENTATION] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_TYPE_ORIENTATION"));
499 m_analyzer[Options::ARGUMENT_UNDERSCORE] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_ARGUMENT_UNDERSCORE"));
500 m_analyzer[Options::VARIABLE_LENGTH] = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_ANALYZER_VARIABLE_LENGTH"));
501
502 // Enable scrolling for this page, because it might be very large
503 panel->SetScrollbars(0, 20, 0, 200);
504
505 // Add the grouped page to the notebook
506 m_optionsNotebook->AddPage(panel, _guilang.get("GUI_OPTIONS_ANALYZER"));
507
508}
509
510
519{
520 // Create a grouped page
521 GroupPanel* panel = new GroupPanel(m_optionsNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
522
523 // Create a group
524 wxStaticBoxSizer* group = panel->createGroup(_guilang.get("GUI_OPTIONS_STACKTRACE"));
525
526 m_debuggerShowLineNumbers = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_DEBUGGER_SHOW_LINENUMBERS"));
527 m_debuggerShowModules = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_DEBUGGER_SHOW_MODULES"));
528
529 // Create a group
530 group = panel->createGroup(_guilang.get("GUI_OPTIONS_VARVIEWER"));
531
532 m_debuggerShowProcedureArguments = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_DEBUGGER_SHOW_ARGUMENTS"));
533 m_debuggerDecodeArguments = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_DEBUGGER_DECODE_ARGUMENTS"));
534 m_debuggerShowGlobals = panel->CreateCheckBox(group->GetStaticBox(), group, _guilang.get("GUI_OPTIONS_DEBUGGER_SHOW_GLOBALS"));
535
536 // Those are not part of any group
537 m_debuggerFlashTaskbar = panel->CreateCheckBox(panel, panel->getVerticalSizer(), _guilang.get("GUI_OPTIONS_DEBUGGER_FLASH_TASKBAR"));
538 m_debuggerFocusLine = panel->CreateSpinControl(panel, panel->getVerticalSizer(), _guilang.get("GUI_OPTIONS_DEBUGGER_FOCUS_LINE"), 1, 30, 10);
539
540 // Add the grouped page to the notebook
541 m_optionsNotebook->AddPage(panel, _guilang.get("GUI_OPTIONS_DEBUGGER"));
542}
543
549{
550 return TRUE;
551}
552
553
562void OptionsDialog::OnButtonOkClick( wxCommandEvent& event )
563{
564 event.Skip();
565
566 ExitDialog();
567}
568
569
578void OptionsDialog::OnButtonCancelClick(wxCommandEvent& event)
579{
580 event.Skip();
581 EndModal(wxID_CANCEL);
582 m_optionsNotebook->SetSelection(0);
583}
584
585
594{
595 for (size_t i = 0; i < m_colorOptions.GetStyleIdentifier().size(); i++)
596 {
598 }
599}
600
601
609void OptionsDialog::OnColorPickerChange(wxColourPickerEvent& event)
610{
611 size_t id = m_colorOptions.GetIdByIdentifier(m_colorType->GetValue());
613
614 if (event.GetId() == ID_CLRPICKR_FORE)
615 style.foreground = m_foreColor->GetColour();
616 else
617 style.background = m_backColor->GetColour();
618
620}
621
622
631void OptionsDialog::OnColorTypeChange(wxCommandEvent& event)
632{
634
635 m_foreColor->SetColour(style.foreground);
636 m_backColor->SetColour(style.background);
637 m_defaultBackground->SetValue(style.defaultbackground);
638 m_backColor->Enable(!m_defaultBackground->GetValue());
639 m_boldCheck->SetValue(style.bold);
640 m_italicsCheck->SetValue(style.italics);
641 m_underlineCheck->SetValue(style.underline);
642}
643
644
653void OptionsDialog::OnButtonClick(wxCommandEvent& event)
654{
655 wxString defaultpath;
656
657 switch (event.GetId())
658 {
659 case ID_BTN_LOADPATH:
660 defaultpath = m_LoadPath->GetValue();
661 break;
662 case ID_BTN_SAVEPATH:
663 defaultpath = m_SavePath->GetValue();
664 break;
666 defaultpath = m_ScriptPath->GetValue();
667 break;
668 case ID_BTN_PROCPATH:
669 defaultpath = m_ProcPath->GetValue();
670 break;
671 case ID_BTN_PLOTPATH:
672 defaultpath = m_PlotPath->GetValue();
673 break;
674 case ID_BTN_LATEXPATH:
675 defaultpath = m_LaTeXRoot->GetValue();
676 break;
677 case ID_RESETCOLOR:
678 {
679 size_t id = m_colorOptions.GetIdByIdentifier(m_colorType->GetValue());
681 m_foreColor->SetColour(style.foreground);
682 m_backColor->SetColour(style.background);
683 m_defaultBackground->SetValue(style.defaultbackground);
684 m_boldCheck->SetValue(style.bold);
685 m_italicsCheck->SetValue(style.italics);
686 m_underlineCheck->SetValue(style.underline);
688 m_backColor->Enable(!m_defaultBackground->GetValue());
689 return;
690 }
692 {
693 size_t id = m_colorOptions.GetIdByIdentifier(m_colorType->GetValue());
695 style.defaultbackground = m_defaultBackground->GetValue();
697 m_backColor->Enable(!m_defaultBackground->GetValue());
698 return;
699 }
700 }
701
702 wxDirDialog dialog(this, _guilang.get("GUI_OPTIONS_CHOOSEPATH"), defaultpath);
703 int ret = dialog.ShowModal();
704
705 if (ret != wxID_OK)
706 return;
707
708 switch (event.GetId())
709 {
710 case ID_BTN_LOADPATH:
711 m_LoadPath->SetValue(replacePathSeparator(dialog.GetPath().ToStdString()));
712 break;
713 case ID_BTN_SAVEPATH:
714 m_SavePath->SetValue(replacePathSeparator(dialog.GetPath().ToStdString()));
715 break;
717 m_ScriptPath->SetValue(replacePathSeparator(dialog.GetPath().ToStdString()));
718 break;
719 case ID_BTN_PROCPATH:
720 m_ProcPath->SetValue(replacePathSeparator(dialog.GetPath().ToStdString()));
721 break;
722 case ID_BTN_PLOTPATH:
723 m_PlotPath->SetValue(replacePathSeparator(dialog.GetPath().ToStdString()));
724 break;
725 case ID_BTN_LATEXPATH:
726 m_LaTeXRoot->SetValue(replacePathSeparator(dialog.GetPath().ToStdString()));
727 break;
728 }
729}
730
731
740void OptionsDialog::OnFontCheckClick(wxCommandEvent& event)
741{
742 size_t id = m_colorOptions.GetIdByIdentifier(m_colorType->GetValue());
744
745 switch (event.GetId())
746 {
747 case ID_BOLD:
748 style.bold = m_boldCheck->GetValue();
749 break;
750 case ID_ITALICS:
751 style.italics = m_italicsCheck->GetValue();
752 break;
753 case ID_UNDERLINE:
754 style.underline = m_underlineCheck->GetValue();
755 break;
756 }
757
759}
760
761
771{
772 if (EvaluateOptions())
773 {
774 EndModal(wxID_OK);
775 m_optionsNotebook->SetSelection(0);
776 }
777
778}
779
780
790{
791 std::map<std::string, SettingsValue>& mSettings = m_options->getSettings();
792
793 mSettings[SETTING_B_COMPACT].active() = m_compactTables->IsChecked();
794 mSettings[SETTING_B_DEFCONTROL].active() = m_AutoLoadDefines->IsChecked();
795 mSettings[SETTING_B_GREETING].active() = m_showGreeting->IsChecked();
796 mSettings[SETTING_B_LOADEMPTYCOLS].active() = m_LoadCompactTables->IsChecked();
797 mSettings[SETTING_B_EXTENDEDFILEINFO].active() = m_ExtendedInfo->IsChecked();
798 mSettings[SETTING_B_SHOWHINTS].active() = m_ShowHints->IsChecked();
799 mSettings[SETTING_B_USECUSTOMLANG].active() = m_CustomLanguage->IsChecked();
800 mSettings[SETTING_B_USEESCINSCRIPTS].active() = m_ESCinScripts->IsChecked();
801 mSettings[SETTING_B_LOGFILE].active() = m_UseLogfile->IsChecked();
802 //mSettings[SETTING_B_EXTERNALDOCWINDOW].active() = m_UseExternalViewer->IsChecked();
803 mSettings[SETTING_B_ENABLEEXECUTE].active() = m_useExecuteCommand->IsChecked();
804 mSettings[SETTING_B_MASKDEFAULT].active() = m_useMaskAsDefault->IsChecked();
805 mSettings[SETTING_B_TABLEREFS].active() = m_alwaysReferenceTables->IsChecked();
806 mSettings[SETTING_B_DECODEARGUMENTS].active() = m_debuggerDecodeArguments->IsChecked();
807 mSettings[SETTING_S_LOADPATH].stringval() = m_LoadPath->GetValue().ToStdString();
808 mSettings[SETTING_S_SAVEPATH].stringval() = m_SavePath->GetValue().ToStdString();
809 mSettings[SETTING_S_SCRIPTPATH].stringval() = m_ScriptPath->GetValue().ToStdString();
810 mSettings[SETTING_S_PROCPATH].stringval() = m_ProcPath->GetValue().ToStdString();
811 mSettings[SETTING_S_PLOTPATH].stringval() = m_PlotPath->GetValue().ToStdString();
812 mSettings[SETTING_S_PLOTFONT].stringval() = m_defaultFont->GetValue().ToStdString();
813 mSettings[SETTING_V_PRECISION].value() = m_precision->GetValue();
814 mSettings[SETTING_V_BUFFERSIZE].value() = m_termHistory->GetValue();
815 mSettings[SETTING_V_AUTOSAVE].value() = m_autosaveinterval->GetValue();
816
817 mSettings[SETTING_V_CARETBLINKTIME].value() = m_caretBlinkTime->GetValue();
818 mSettings[SETTING_S_LATEXROOT].stringval() = m_LaTeXRoot->GetValue().ToStdString();
819 mSettings[SETTING_B_TOOLBARTEXT].active() = m_showToolbarText->IsChecked();
820 mSettings[SETTING_B_PATHSONTABS].active() = m_FilePathsInTabs->IsChecked();
821 mSettings[SETTING_B_ICONSONTABS].active() = m_IconsOnTabs->IsChecked();
822 mSettings[SETTING_B_PRINTLINENUMBERS].active() = m_cbPrintLineNumbers->IsChecked();
823 mSettings[SETTING_B_SAVESESSION].active() = m_saveSession->IsChecked();
824 mSettings[SETTING_B_SAVEBOOKMARKS].active() = m_saveBookmarksInSession->IsChecked();
825 mSettings[SETTING_B_FORMATBEFORESAVING].active() = m_formatBeforeSaving->IsChecked();
826 mSettings[SETTING_B_USEREVISIONS].active() = m_keepBackupFiles->IsChecked();
827 mSettings[SETTING_B_FOLDLOADEDFILE].active() = m_foldDuringLoading->IsChecked();
828 mSettings[SETTING_V_FOCUSEDLINE].value() = m_debuggerFocusLine->GetValue();
829 mSettings[SETTING_B_GLOBALVARS].active() = m_debuggerShowGlobals->IsChecked();
830 mSettings[SETTING_B_LINESINSTACK].active() = m_debuggerShowLineNumbers->IsChecked();
831 mSettings[SETTING_B_MODULESINSTACK].active() = m_debuggerShowModules->IsChecked();
832 mSettings[SETTING_B_PROCEDUREARGS].active() = m_debuggerShowProcedureArguments->IsChecked();
833 mSettings[SETTING_B_FLASHTASKBAR].active() = m_debuggerFlashTaskbar->IsChecked();
834 mSettings[SETTING_B_HIGHLIGHTLOCALS].active() = m_highlightLocalVariables->IsChecked();
835 mSettings[SETTING_B_USETABS].active() = m_useTabs->IsChecked();
836 mSettings[SETTING_B_HOMEENDCANCELS].active() = m_homeEndCancels->IsChecked();
837 mSettings[SETTING_B_BRACEAUTOCOMP].active() = m_braceAutoComp->IsChecked();
838 mSettings[SETTING_B_BLOCKAUTOCOMP].active() = m_blockAutoComp->IsChecked();
839 mSettings[SETTING_B_QUOTEAUTOCOMP].active() = m_quoteAutoComp->IsChecked();
840 mSettings[SETTING_B_SMARTSENSE].active() = m_smartSense->IsChecked();
841 mSettings[SETTING_B_AUTOSAVEEXECUTION].active() = m_saveBeforeExecuting->IsChecked();
842 mSettings[SETTING_B_LINELENGTH].active() = m_lineLengthIndicator->IsChecked();
843 mSettings[SETTING_B_SAVESASHS].active() = m_saveSashPositions->IsChecked();
844 mSettings[SETTING_B_SAVEWINDOWSIZE].active() = m_saveWindowPosition->IsChecked();
845
846 wxString selectedPrintStyleString = m_printStyle->GetValue();
847
848 if (selectedPrintStyleString == _guilang.get("GUI_OPTIONS_PRINT_COLOR"))
850 else
852
853 mSettings[SETTING_S_EDITORFONT].stringval() = Options::toString(m_fontPicker->GetSelectedFont());
854
855 if (m_fontPickerTerminal->GetSelectedFont().IsFixedWidth())
856 mSettings[SETTING_S_TERMINALFONT].stringval() = Options::toString(m_fontPickerTerminal->GetSelectedFont());
857
858 mSettings[SETTING_S_HISTORYFONT].stringval() = Options::toString(m_fontPickerHistory->GetSelectedFont());
859
860 for (int i = 0; i < Options::ANALYZER_OPTIONS_END; i++)
861 {
863 }
864
866
867 return true;
868}
869
870
880{
881 wxString printStyleString;
882
884 printStyleString = _guilang.get("GUI_OPTIONS_PRINT_COLOR");
885 else
886 printStyleString = _guilang.get("GUI_OPTIONS_PRINT_BW");
887
888 std::map<std::string, SettingsValue>& mSettings = m_options->getSettings();
889
890 m_printStyle->SetValue(printStyleString);
891 m_termHistory->SetValue(mSettings[SETTING_V_BUFFERSIZE].value());
892 m_caretBlinkTime->SetValue(mSettings[SETTING_V_CARETBLINKTIME].value());
893 m_showToolbarText->SetValue(mSettings[SETTING_B_TOOLBARTEXT].active());
894 m_FilePathsInTabs->SetValue(mSettings[SETTING_B_PATHSONTABS].active());
895 m_IconsOnTabs->SetValue(mSettings[SETTING_B_ICONSONTABS].active());
896 m_cbPrintLineNumbers->SetValue(mSettings[SETTING_B_PRINTLINENUMBERS].active());
897 m_saveSession->SetValue(mSettings[SETTING_B_SAVESESSION].active());
898 m_saveBookmarksInSession->SetValue(mSettings[SETTING_B_SAVEBOOKMARKS].active());
899 m_formatBeforeSaving->SetValue(mSettings[SETTING_B_FORMATBEFORESAVING].active());
900 m_compactTables->SetValue(mSettings[SETTING_B_COMPACT].active());
901 m_AutoLoadDefines->SetValue(mSettings[SETTING_B_DEFCONTROL].active());
902 m_showGreeting->SetValue(mSettings[SETTING_B_GREETING].active());
903 m_LoadCompactTables->SetValue(mSettings[SETTING_B_LOADEMPTYCOLS].active());
904 m_ExtendedInfo->SetValue(mSettings[SETTING_B_EXTENDEDFILEINFO].active());
905 m_ShowHints->SetValue(mSettings[SETTING_B_SHOWHINTS].active());
906 m_CustomLanguage->SetValue(mSettings[SETTING_B_USECUSTOMLANG].active());
907 m_ESCinScripts->SetValue(mSettings[SETTING_B_USEESCINSCRIPTS].active());
908 m_UseLogfile->SetValue(mSettings[SETTING_B_LOGFILE].active());
909 //m_UseExternalViewer->SetValue(mSettings[SETTING_B_EXTERNALDOCWINDOW].active());
910 m_useExecuteCommand->SetValue(mSettings[SETTING_B_ENABLEEXECUTE].active());
911 m_useMaskAsDefault->SetValue(mSettings[SETTING_B_MASKDEFAULT].active());
912 m_alwaysReferenceTables->SetValue(mSettings[SETTING_B_TABLEREFS].active());
913 m_LoadPath->SetValue(mSettings[SETTING_S_LOADPATH].stringval());
914 m_SavePath->SetValue(mSettings[SETTING_S_SAVEPATH].stringval());
915 m_ScriptPath->SetValue(mSettings[SETTING_S_SCRIPTPATH].stringval());
916 m_ProcPath->SetValue(mSettings[SETTING_S_PROCPATH].stringval());
917 m_PlotPath->SetValue(mSettings[SETTING_S_PLOTPATH].stringval());
918 m_defaultFont->SetValue(mSettings[SETTING_S_PLOTFONT].stringval());
919
920 m_precision->SetValue(mSettings[SETTING_V_PRECISION].value());
921 m_autosaveinterval->SetValue(mSettings[SETTING_V_AUTOSAVE].value());
922 m_LaTeXRoot->SetValue(mSettings[SETTING_S_LATEXROOT].stringval());
923
924 for (size_t i = 0; i < m_options->GetStyleIdentifier().size(); i++)
925 {
927 }
928
930
931 m_foreColor->SetColour(style.foreground);
932 m_backColor->SetColour(style.background);
933 m_boldCheck->SetValue(style.bold);
934 m_italicsCheck->SetValue(style.italics);
935 m_underlineCheck->SetValue(style.underline);
936 m_defaultBackground->SetValue(style.defaultbackground);
937 m_backColor->Enable(!m_defaultBackground->GetValue());
938
939 m_fontPicker->SetSelectedFont(Options::toFont(mSettings[SETTING_S_EDITORFONT].stringval()));
940 m_fontPickerTerminal->SetSelectedFont(Options::toFont(mSettings[SETTING_S_TERMINALFONT].stringval()));
941 m_fontPickerHistory->SetSelectedFont(Options::toFont(mSettings[SETTING_S_HISTORYFONT].stringval()));
942
943 m_keepBackupFiles->SetValue(mSettings[SETTING_B_USEREVISIONS].active());
944 m_foldDuringLoading->SetValue(mSettings[SETTING_B_FOLDLOADEDFILE].active());
945 m_highlightLocalVariables->SetValue(mSettings[SETTING_B_HIGHLIGHTLOCALS].active());
946 m_useTabs->SetValue(mSettings[SETTING_B_USETABS].active());
947 m_homeEndCancels->SetValue(mSettings[SETTING_B_HOMEENDCANCELS].active());
948 m_braceAutoComp->SetValue(mSettings[SETTING_B_BRACEAUTOCOMP].active());
949 m_blockAutoComp->SetValue(mSettings[SETTING_B_BLOCKAUTOCOMP].active());
950 m_quoteAutoComp->SetValue(mSettings[SETTING_B_QUOTEAUTOCOMP].active());
951 m_smartSense->SetValue(mSettings[SETTING_B_SMARTSENSE].active());
952 m_saveBeforeExecuting->SetValue(mSettings[SETTING_B_AUTOSAVEEXECUTION].active());
953 m_lineLengthIndicator->SetValue(mSettings[SETTING_B_LINELENGTH].active());
954 m_saveSashPositions->SetValue(mSettings[SETTING_B_SAVESASHS].active());
955 m_saveWindowPosition->SetValue(mSettings[SETTING_B_SAVEWINDOWSIZE].active());
956
957 m_debuggerFocusLine->SetValue(mSettings[SETTING_V_FOCUSEDLINE].value());
958 m_debuggerDecodeArguments->SetValue(mSettings[SETTING_B_DECODEARGUMENTS].active());
959 m_debuggerShowGlobals->SetValue(mSettings[SETTING_B_GLOBALVARS].active());
960 m_debuggerShowLineNumbers->SetValue(mSettings[SETTING_B_LINESINSTACK].active());
961 m_debuggerShowModules->SetValue(mSettings[SETTING_B_MODULESINSTACK].active());
962 m_debuggerShowProcedureArguments->SetValue(mSettings[SETTING_B_PROCEDUREARGS].active());
963 m_debuggerFlashTaskbar->SetValue(mSettings[SETTING_B_FLASHTASKBAR].active());
964
965 for (int i = 0; i < Options::ANALYZER_OPTIONS_END; i++)
966 {
968 }
969
970}
971
#define ID_NOTEBOOK
#define wxSTC_PRINT_BLACKONWHITE
Definition: Options.h:16
#define wxSTC_PRINT_COLOURONWHITE
Definition: Options.h:19
std::string replacePathSeparator(const std::string &)
This function replaces the Windows style path sparators to UNIX style.
Language _guilang
#define ELEMENT_BORDER
#define ID_CLRSPIN
Definition: OptionsDialog.h:80
#define ID_BTN_PROCPATH
Definition: OptionsDialog.h:65
#define ID_ITALICS
Definition: OptionsDialog.h:86
#define ID_BUTTON_OK
Definition: OptionsDialog.h:77
#define ID_BTN_SCRIPTPATH
Definition: OptionsDialog.h:64
#define ID_RESETCOLOR
Definition: OptionsDialog.h:83
#define ID_BOLD
Definition: OptionsDialog.h:85
#define ID_CLRPICKR_BACK
Definition: OptionsDialog.h:82
#define ID_BTN_SAVEPATH
Definition: OptionsDialog.h:63
#define ID_CLRPICKR_FORE
Definition: OptionsDialog.h:81
#define ID_BUTTON_CANCEL
Definition: OptionsDialog.h:78
#define ID_BTN_PLOTPATH
Definition: OptionsDialog.h:66
#define ID_DEFAULTBACKGROUND
Definition: OptionsDialog.h:84
#define ID_UNDERLINE
Definition: OptionsDialog.h:87
#define ID_PRINTSTYLE
Definition: OptionsDialog.h:72
#define ID_BTN_LATEXPATH
Definition: OptionsDialog.h:67
#define ID_BTN_LOADPATH
Definition: OptionsDialog.h:62
double g_pixelScale
This class simplifies the creation of simple windows and creates a common layout among all windows.
Definition: grouppanel.hpp:188
SpinBut * CreateSpinControl(wxWindow *parent, wxSizer *sizer, const wxString &description, int nMin, int nMax, int nInitial, int id=wxID_ANY, int alignment=wxALIGN_CENTER_VERTICAL)
This member function creates the layout for a spin control including the assigned text.
Definition: grouppanel.cpp:342
wxTextCtrl * CreatePathInput(wxWindow *parent, wxSizer *sizer, const wxString &description, int buttonID, int id=wxID_ANY)
This member function creates the layout for a path input dialog including the "choose" button.
Definition: grouppanel.cpp:245
wxCheckBox * CreateCheckBox(wxWindow *parent, wxSizer *sizer, const wxString &description, int id=wxID_ANY, int alignment=wxALIGN_CENTER_VERTICAL)
This member function creates the layout for a usual checkbox.
Definition: grouppanel.cpp:316
wxStaticBoxSizer * createGroup(const wxString &sGroupName, int orient=wxVERTICAL, wxWindow *parent=nullptr, wxSizer *sizer=nullptr, int expand=0)
Member function to create a group (a static box with a label) in the panel.
Definition: grouppanel.cpp:161
wxBoxSizer * getVerticalSizer()
Return the pointer to the vertical sizer.
Definition: grouppanel.cpp:78
This class handles the internal language system and returns the language strings of the selected lang...
Definition: language.hpp:38
std::string get(const std::string &sMessage, const std::vector< std::string > &vTokens) const
This member function returns the language string for the passed language identifier and replaces all ...
Definition: language.cpp:292
This class is the actual NumeRe main frame. The application's logic is implemented here.
Definition: NumeReWindow.h:177
This class represents the settings dialog in memory.
wxCheckBox * m_UseLogfile
wxCheckBox * m_debuggerShowGlobals
wxCheckBox * m_saveSession
wxCheckBox * m_debuggerShowModules
wxCheckBox * m_italicsCheck
wxCheckBox * m_homeEndCancels
wxComboBox * m_defaultFont
wxCheckBox * m_saveBeforeExecuting
void OnButtonClick(wxCommandEvent &event)
Button event handler for all other buttons.
wxCheckBox * m_alwaysReferenceTables
wxCheckBox * m_useMaskAsDefault
wxCheckBox * m_saveBookmarksInSession
void CreatePathPage()
This private member function creates the "paths" page.
wxCheckBox * m_smartSense
wxTextCtrl * m_LaTeXRoot
wxCheckBox * m_underlineCheck
void InitializeDialog()
void CreateAnalyzerPage()
This private member function creates the "Static analyzer" page.
void OnFontCheckClick(wxCommandEvent &event)
Event handler for the font style check boxes.
wxCheckBox * m_lineLengthIndicator
void CreateStylePage()
This private member function creates the "style" page.
wxComboBox * m_colorType
wxNotebook * m_optionsNotebook
wxSpinCtrl * m_debuggerFocusLine
wxFontPickerCtrl * m_fontPickerTerminal
wxCheckBox * m_formatBeforeSaving
void CreateControls()
Creates the controls and sizers.
wxCheckBox * m_keepBackupFiles
wxCheckBox * m_saveSashPositions
wxSpinCtrl * m_autosaveinterval
wxTextCtrl * m_PlotPath
void OnColorPickerChange(wxColourPickerEvent &event)
Event handler for changing the colours.
wxCheckBox * m_saveWindowPosition
void OnColorTypeChange(wxCommandEvent &event)
Event handler for switching the syntax elements for selecting the styling.
wxCheckBox * m_ShowHints
wxCheckBox * m_CustomLanguage
wxCheckBox * m_foldDuringLoading
wxCheckBox * m_blockAutoComp
wxColourPickerCtrl * m_foreColor
wxSpinCtrl * m_caretBlinkTime
wxFontPickerCtrl * m_fontPicker
wxSpinCtrl * m_precision
bool Create(wxWindow *parent, wxWindowID id=-1, const wxString &caption=_("Options"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU)
Creation.
wxCheckBox * m_analyzer[Options::ANALYZER_OPTIONS_END]
wxCheckBox * m_defaultBackground
wxCheckBox * m_showGreeting
wxCheckBox * m_highlightLocalVariables
static bool ShowToolTips()
Should we show tooltips?
wxSpinCtrl * m_termHistory
wxColourPickerCtrl * m_backColor
void synchronizeColors()
Copies the selected syntax styles to the Options class.
void CreateDebuggerPage()
This private member function creates the "debugger" page.
wxCheckBox * m_compactTables
wxComboBox * m_printStyle
wxCheckBox * m_showToolbarText
wxCheckBox * m_ESCinScripts
void CreateConfigPage()
This private member function creates the "configuration" page.
wxCheckBox * m_boldCheck
wxCheckBox * m_quoteAutoComp
void CreateMiscPage()
This private member function creates the "misc" page.
wxCheckBox * m_useExecuteCommand
Options m_colorOptions
wxCheckBox * m_LoadCompactTables
wxCheckBox * m_debuggerDecodeArguments
void CreateEditorPage()
This private member function creates the "editor" page.
bool EvaluateOptions()
wxCheckBox * m_debuggerFlashTaskbar
wxCheckBox * m_AutoLoadDefines
wxCheckBox * m_ExtendedInfo
wxCheckBox * m_braceAutoComp
wxTextCtrl * m_ProcPath
Options * m_options
wxFontPickerCtrl * m_fontPickerHistory
wxTextCtrl * m_ScriptPath
wxCheckBox * m_debuggerShowLineNumbers
wxCheckBox * m_useTabs
wxCheckBox * m_FilePathsInTabs
void OnButtonCancelClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_CANCEL
wxCheckBox * m_IconsOnTabs
wxButton * m_resetButton
wxTextCtrl * m_SavePath
wxCheckBox * m_debuggerShowProcedureArguments
wxCheckBox * m_cbPrintLineNumbers
void OnButtonOkClick(wxCommandEvent &event)
wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_OK
wxTextCtrl * m_LoadPath
This class implements an interface of the internal Settings object adapted to be usable from the GUI.
Definition: Options.h:178
static wxFont toFont(const std::string &sFontDescr)
Definition: Options.h:348
void SetSyntaxStyle(size_t i, const SyntaxStyles &styles)
Update a selected syntax style by converting the passed SyntaxStyles object into a style string and s...
Definition: options.cpp:133
size_t GetIdByIdentifier(const wxString &identifier) const
This member function returns the ID of a syntax style by passing the style identifier as a string.
Definition: options.cpp:315
int GetPrintStyle() const
Definition: Options.h:235
int GetAnalyzerOption(AnalyzerOptions opt) const
Return the value of the selected static code analyzer option.
Definition: options.cpp:256
AnalyzerOptions
An enumeration of all available static analyzer options.
Definition: Options.h:309
@ THISFILE_NAMESPACE
Definition: Options.h:328
@ PROGRESS_RUNTIME
Definition: Options.h:329
@ ARGUMENT_UNDERSCORE
Definition: Options.h:324
@ SWITCH_FALLTHROUGH
Definition: Options.h:330
@ COMMENT_DENSITY
Definition: Options.h:313
@ TYPE_ORIENTATION
Definition: Options.h:322
@ LINES_OF_CODE
Definition: Options.h:314
@ VARIABLE_LENGTH
Definition: Options.h:325
@ MAGIC_NUMBERS
Definition: Options.h:316
@ ANALYZER_OPTIONS_END
Definition: Options.h:332
@ UNUSED_VARIABLES
Definition: Options.h:326
@ INLINE_IF
Definition: Options.h:318
@ USE_WARNINGS
Definition: Options.h:311
@ CONSTANT_EXPRESSION
Definition: Options.h:319
@ USE_ERRORS
Definition: Options.h:312
@ USE_NOTES
Definition: Options.h:310
@ COMPLEXITY
Definition: Options.h:315
@ RESULT_ASSIGNMENT
Definition: Options.h:321
@ GLOBAL_VARIABLES
Definition: Options.h:331
@ MISLEADING_TYPE
Definition: Options.h:323
@ ALWAYS_SHOW_METRICS
Definition: Options.h:317
@ RESULT_SUPPRESSION
Definition: Options.h:320
@ PROCEDURE_LENGTH
Definition: Options.h:327
SyntaxStyles GetSyntaxStyle(size_t i) const
Return the selected syntax style by constructing it from the style string.
Definition: options.cpp:112
SyntaxStyles GetDefaultSyntaxStyle(size_t i) const
Return the default syntax style as defined by the programmers.
Definition: options.cpp:45
void SetPrintStyle(int style)
Definition: Options.h:192
wxArrayString GetStyleIdentifier() const
This member function returns an array of the style enumeration identifiers converted to a string.
Definition: options.cpp:275
void SetAnalyzerOption(AnalyzerOptions opt, int nVal)
Change a static code analyzer setting.
Definition: options.cpp:28
static std::string toString(wxFont font)
Definition: Options.h:355
std::map< std::string, SettingsValue > & getSettings()
Returns a reference to the internal map of setting values.
Definition: settings.hpp:748
#define TRUE
Definition: resampler.cpp:38
#define SETTING_B_SMARTSENSE
Definition: settings.hpp:100
#define SETTING_B_TOOLBARTEXT
Definition: settings.hpp:76
#define SETTING_B_SAVEBOOKMARKS
Definition: settings.hpp:86
#define SETTING_B_ICONSONTABS
Definition: settings.hpp:78
#define SETTING_B_USEREVISIONS
Definition: settings.hpp:88
#define SETTING_V_PRECISION
Definition: settings.hpp:51
#define SETTING_B_GREETING
Definition: settings.hpp:50
#define SETTING_B_QUOTEAUTOCOMP
Definition: settings.hpp:98
#define SETTING_B_BLOCKAUTOCOMP
Definition: settings.hpp:99
#define SETTING_B_MASKDEFAULT
Definition: settings.hpp:48
#define SETTING_S_PLOTFONT
Definition: settings.hpp:65
#define SETTING_B_FORMATBEFORESAVING
Definition: settings.hpp:87
#define SETTING_S_EDITORFONT
Definition: settings.hpp:101
#define SETTING_S_LATEXROOT
Definition: settings.hpp:68
#define SETTING_V_AUTOSAVE
Definition: settings.hpp:57
#define SETTING_B_TABLEREFS
Definition: settings.hpp:45
#define SETTING_V_FOCUSEDLINE
Definition: settings.hpp:70
#define SETTING_S_PROCPATH
Definition: settings.hpp:63
#define SETTING_B_COMPACT
Definition: settings.hpp:37
#define SETTING_B_LINELENGTH
Definition: settings.hpp:95
#define SETTING_B_SAVESASHS
Definition: settings.hpp:90
#define SETTING_B_LOADEMPTYCOLS
Definition: settings.hpp:38
#define SETTING_B_USECUSTOMLANG
Definition: settings.hpp:40
#define SETTING_S_LOADPATH
Definition: settings.hpp:60
#define SETTING_B_PROCEDUREARGS
Definition: settings.hpp:74
#define SETTING_B_PATHSONTABS
Definition: settings.hpp:77
#define SETTING_B_HIGHLIGHTLOCALS
Definition: settings.hpp:93
#define SETTING_B_USETABS
Definition: settings.hpp:94
#define SETTING_S_HISTORYFONT
Definition: settings.hpp:56
#define SETTING_B_EXTENDEDFILEINFO
Definition: settings.hpp:42
#define SETTING_B_SAVEWINDOWSIZE
Definition: settings.hpp:91
#define SETTING_B_USEESCINSCRIPTS
Definition: settings.hpp:46
#define SETTING_B_LINESINSTACK
Definition: settings.hpp:71
#define SETTING_B_AUTOSAVEEXECUTION
Definition: settings.hpp:89
#define SETTING_V_BUFFERSIZE
Definition: settings.hpp:54
#define SETTING_B_DECODEARGUMENTS
Definition: settings.hpp:49
#define SETTING_S_SAVEPATH
Definition: settings.hpp:59
#define SETTING_B_FLASHTASKBAR
Definition: settings.hpp:75
#define SETTING_S_TERMINALFONT
Definition: settings.hpp:55
#define SETTING_B_HOMEENDCANCELS
Definition: settings.hpp:96
#define SETTING_B_ENABLEEXECUTE
Definition: settings.hpp:47
#define SETTING_B_GLOBALVARS
Definition: settings.hpp:73
#define SETTING_B_DEFCONTROL
Definition: settings.hpp:44
#define SETTING_B_MODULESINSTACK
Definition: settings.hpp:72
#define SETTING_B_SAVESESSION
Definition: settings.hpp:85
#define SETTING_S_PLOTPATH
Definition: settings.hpp:61
#define SETTING_B_FOLDLOADEDFILE
Definition: settings.hpp:92
#define SETTING_B_SHOWHINTS
Definition: settings.hpp:39
#define SETTING_S_SCRIPTPATH
Definition: settings.hpp:62
#define SETTING_B_PRINTLINENUMBERS
Definition: settings.hpp:84
#define SETTING_V_CARETBLINKTIME
Definition: settings.hpp:69
#define SETTING_B_LOGFILE
Definition: settings.hpp:43
#define SETTING_B_BRACEAUTOCOMP
Definition: settings.hpp:97
This structure contains the necessary data to completely define a style for a distinctive syntax elem...
Definition: Options.h:27
bool bold
Definition: Options.h:30
wxColour background
Definition: Options.h:29
bool italics
Definition: Options.h:31
bool defaultbackground
Definition: Options.h:33
wxColour foreground
Definition: Options.h:28
bool underline
Definition: Options.h:32
END_EVENT_TABLE()