14PANEL_COMMON_SETTINGS_BASE::PANEL_COMMON_SETTINGS_BASE( wxWindow* parent, wxWindowID
id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString&
name ) :
RESETTABLE_PANEL( parent, id, pos, size, style,
name )
16 wxBoxSizer* bPanelSizer;
17 bPanelSizer =
new wxBoxSizer( wxHORIZONTAL );
21 m_staticText20 =
new wxStaticText(
this, wxID_ANY,
_(
"Rendering Engine"), wxDefaultPosition, wxDefaultSize, 0 );
25 m_staticline3 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
35 m_rbAccelerated =
new wxRadioButton(
this, wxID_ANY,
_(
"Accelerated Graphics"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
36 m_rbAccelerated->SetToolTip(
_(
"Hardware-accelerated graphics (recommended)") );
40 m_rbFallback =
new wxRadioButton(
this, wxID_ANY,
_(
"Fallback Graphics"), wxDefaultPosition, wxDefaultSize, 0 );
41 m_rbFallback->SetToolTip(
_(
"Software graphics (for computers which do not support KiCad's hardware acceleration requirements)") );
51 wxGridBagSizer* gbSizer11;
52 gbSizer11 =
new wxGridBagSizer( 0, 6 );
53 gbSizer11->SetFlexibleDirection( wxBOTH );
54 gbSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
55 gbSizer11->SetEmptyCellSize( wxSize( -1,2 ) );
57 wxStaticText* antialiasingLabel;
58 antialiasingLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Antialiasing:"), wxDefaultPosition, wxDefaultSize, 0 );
59 antialiasingLabel->Wrap( -1 );
60 gbSizer11->Add( antialiasingLabel, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
62 wxString m_antialiasingChoices[] = {
_(
"No Antialiasing"),
_(
"Fast Antialiasing"),
_(
"High Quality Antialiasing") };
63 int m_antialiasingNChoices =
sizeof( m_antialiasingChoices ) /
sizeof( wxString );
64 m_antialiasing =
new wxChoice(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_antialiasingNChoices, m_antialiasingChoices, 0 );
66 gbSizer11->Add(
m_antialiasing, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
69 gbSizer11->AddGrowableCol( 1 );
73 wxBoxSizer* bAntialiasingSizer;
74 bAntialiasingSizer =
new wxBoxSizer( wxVERTICAL );
77 bLeftSizer->Add( bAntialiasingSizer, 0, wxTOP|wxLEFT|wxEXPAND, 5 );
82 m_staticText21 =
new wxStaticText(
this, wxID_ANY,
_(
"Helper Applications"), wxDefaultPosition, wxDefaultSize, 0 );
86 m_staticline2 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
89 wxBoxSizer* bHelperAppsSizer;
90 bHelperAppsSizer =
new wxBoxSizer( wxVERTICAL );
93 bSizer61 =
new wxBoxSizer( wxHORIZONTAL );
95 wxStaticText* textEditorLabel;
96 textEditorLabel =
new wxStaticText(
this, wxID_ANY,
_(
"Text editor:"), wxDefaultPosition, wxDefaultSize, 0 );
97 textEditorLabel->Wrap( -1 );
98 bSizer61->Add( textEditorLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
100 m_textEditorPath =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
107 bHelperAppsSizer->Add( bSizer61, 0, wxTOP|wxRIGHT|wxEXPAND, 5 );
110 bHelperAppsSizer->Add( 0, 4, 0, wxEXPAND, 5 );
114 m_staticTextFileManager =
new wxStaticText(
this, wxID_ANY,
_(
"File manager:"), wxDefaultPosition, wxDefaultSize, 0 );
118 m_textCtrlFileManager =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
125 bHelperAppsSizer->Add( 0, 12, 1, wxEXPAND, 5 );
128 bSizer8 =
new wxBoxSizer( wxVERTICAL );
130 m_defaultPDFViewer =
new wxRadioButton(
this, wxID_ANY,
_(
"System default PDF viewer"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
134 bHelperAppsSizer->Add( bSizer8, 0, wxBOTTOM|wxEXPAND, 2 );
137 bSizer7 =
new wxBoxSizer( wxHORIZONTAL );
139 m_otherPDFViewer =
new wxRadioButton(
this, wxID_ANY,
_(
"Other:"), wxDefaultPosition, wxDefaultSize, 0 );
140 bSizer7->Add(
m_otherPDFViewer, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
142 m_PDFViewerPath =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
149 bHelperAppsSizer->Add( bSizer7, 0, wxBOTTOM|wxRIGHT|wxEXPAND, 5 );
152 bLeftSizer->Add( bHelperAppsSizer, 0, wxTOP|wxLEFT|wxEXPAND, 5 );
157 m_staticText22 =
new wxStaticText(
this, wxID_ANY,
_(
"User Interface"), wxDefaultPosition, wxDefaultSize, 0 );
161 m_staticline1 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
164 wxBoxSizer* bUserInterfaceSizer;
165 bUserInterfaceSizer =
new wxBoxSizer( wxVERTICAL );
167 wxBoxSizer* bSizer14;
168 bSizer14 =
new wxBoxSizer( wxVERTICAL );
170 m_checkBoxIconsInMenus =
new wxCheckBox(
this, wxID_ANY,
_(
"Show icons in menus"), wxDefaultPosition, wxDefaultSize, 0 );
173 m_showScrollbars =
new wxCheckBox(
this, wxID_ANY,
_(
"Show scrollbars in editors"), wxDefaultPosition, wxDefaultSize, 0 );
175 m_showScrollbars->SetToolTip(
_(
"This change takes effect when relaunching the editor.") );
179 m_focusFollowSchPcb =
new wxCheckBox(
this, wxID_ANY,
_(
"Focus follows mouse between schematic and PCB editors"), wxDefaultPosition, wxDefaultSize, 0 );
180 m_focusFollowSchPcb->SetToolTip(
_(
"If the mouse cursor is moved over the canvas of a schematic or PCB editor window, that window is raised.") );
184 m_hotkeyFeedback =
new wxCheckBox(
this, wxID_ANY,
_(
"Show popup indicator when toggling settings with hotkeys"), wxDefaultPosition, wxDefaultSize, 0 );
185 m_hotkeyFeedback->SetToolTip(
_(
"When enabled, certain hotkeys that cycle between settings will show a popup indicator briefly to indicate the change in settings.") );
189 m_gridStriping =
new wxCheckBox(
this, wxID_ANY,
_(
"Use alternating row colors in tables"), wxDefaultPosition, wxDefaultSize, 0 );
190 m_gridStriping->SetToolTip(
_(
"When enabled, use a different color for every other table row") );
195 bUserInterfaceSizer->Add( bSizer14, 0, wxEXPAND, 5 );
197 m_disableCustomCursors =
new wxCheckBox(
this, wxID_ANY,
_(
"Disable custom cursors"), wxDefaultPosition, wxDefaultSize, 0 );
198 m_disableCustomCursors->SetToolTip(
_(
"When enabled, KiCad will use default system cursors instead of custom ones") );
202 wxBoxSizer* bSizerIconsTheme;
203 bSizerIconsTheme =
new wxBoxSizer( wxHORIZONTAL );
205 m_stIconTheme =
new wxStaticText(
this, wxID_ANY,
_(
"Icon theme:"), wxDefaultPosition, wxDefaultSize, 0 );
209 m_rbIconThemeLight =
new wxRadioButton(
this, wxID_ANY,
_(
"Light"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
214 m_rbIconThemeDark =
new wxRadioButton(
this, wxID_ANY,
_(
"Dark"), wxDefaultPosition, wxDefaultSize, 0 );
219 m_rbIconThemeAuto =
new wxRadioButton(
this, wxID_ANY,
_(
"Automatic"), wxDefaultPosition, wxDefaultSize, 0 );
221 m_rbIconThemeAuto->SetToolTip(
_(
"Automatically choose light or dark icons based on the system color theme") );
226 bUserInterfaceSizer->Add( bSizerIconsTheme, 0, wxEXPAND|wxTOP, 5 );
228 wxBoxSizer* bSizerToolbarSize;
229 bSizerToolbarSize =
new wxBoxSizer( wxHORIZONTAL );
231 m_stToolbarIconSize =
new wxStaticText(
this, wxID_ANY,
_(
"Toolbar icon size:"), wxDefaultPosition, wxDefaultSize, 0 );
235 m_rbIconSizeSmall =
new wxRadioButton(
this, wxID_ANY,
_(
"Small"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
240 m_rbIconSizeNormal =
new wxRadioButton(
this, wxID_ANY,
_(
"Normal"), wxDefaultPosition, wxDefaultSize, 0 );
245 m_rbIconSizeLarge =
new wxRadioButton(
this, wxID_ANY,
_(
"Large"), wxDefaultPosition, wxDefaultSize, 0 );
251 bUserInterfaceSizer->Add( bSizerToolbarSize, 0, wxEXPAND, 5 );
253 m_scaleFonts =
new wxCheckBox(
this, wxID_ANY,
_(
"Apply icon scaling to fonts"), wxDefaultPosition, wxDefaultSize, 0 );
254 bUserInterfaceSizer->Add(
m_scaleFonts, 0, wxLEFT|wxRIGHT|wxTOP, 5 );
256 m_fontScalingHelp =
new wxStaticText(
this, wxID_ANY,
_(
"(This workaround will improve some GTK HiDPI font scaling issues.)"), wxDefaultPosition, wxDefaultSize, 0 );
264 m_staticTextCanvasScale =
new wxStaticText(
this, wxID_ANY,
_(
"Canvas scale:"), wxDefaultPosition, wxDefaultSize, 0 );
268 m_canvasScaleCtrl =
new wxSpinCtrlDouble(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 0, 1 );
272 m_canvasScaleAuto =
new wxCheckBox(
this, wxID_ANY,
_(
"Automatic"), wxDefaultPosition, wxDefaultSize, 0 );
276 bUserInterfaceSizer->Add(
m_gbUserInterface, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
278 wxBoxSizer* bSizerHighContrast;
279 bSizerHighContrast =
new wxBoxSizer( wxHORIZONTAL );
281 m_highContrastLabel =
new wxStaticText(
this, wxID_ANY,
_(
"High-contrast mode dimming factor:"), wxDefaultPosition, wxDefaultSize, 0 );
283 bSizerHighContrast->Add(
m_highContrastLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
285 m_highContrastCtrl =
new wxTextCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
288 m_highContrastUnits =
new wxStaticText(
this, wxID_ANY,
_(
"%"), wxDefaultPosition, wxDefaultSize, 0 );
290 bSizerHighContrast->Add(
m_highContrastUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
293 bUserInterfaceSizer->Add( bSizerHighContrast, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
296 bLeftSizer->Add( bUserInterfaceSizer, 0, wxTOP|wxLEFT|wxEXPAND, 5 );
301 m_staticText251 =
new wxStaticText(
this, wxID_ANY,
_(
"Scaling"), wxDefaultPosition, wxDefaultSize, 0 );
305 m_staticline7 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
309 bPanelSizer->Add(
bLeftSizer, 0, wxRIGHT, 35 );
311 wxBoxSizer* rightSizer;
312 rightSizer =
new wxBoxSizer( wxVERTICAL );
314 m_staticText23 =
new wxStaticText(
this, wxID_ANY,
_(
"Editing"), wxDefaultPosition, wxDefaultSize, 0 );
316 rightSizer->Add(
m_staticText23, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 13 );
318 m_staticline6 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
319 rightSizer->Add(
m_staticline6, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
321 wxBoxSizer* bEditingSizer;
322 bEditingSizer =
new wxBoxSizer( wxVERTICAL );
324 m_warpMouseOnMove =
new wxCheckBox(
this, wxID_ANY,
_(
"Warp mouse to anchor of moved object"), wxDefaultPosition, wxDefaultSize, 0 );
328 m_NonImmediateActions =
new wxCheckBox(
this, wxID_ANY,
_(
"First hotkey selects tool"), wxDefaultPosition, wxDefaultSize, 0 );
329 m_NonImmediateActions->SetToolTip(
_(
"If not checked, hotkeys will immediately perform an action even if the relevant tool was not previously selected.") );
334 rightSizer->Add( bEditingSizer, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
337 rightSizer->Add( 0, 15, 0, wxEXPAND, 5 );
339 m_staticText24 =
new wxStaticText(
this, wxID_ANY,
_(
"Session"), wxDefaultPosition, wxDefaultSize, 0 );
341 rightSizer->Add(
m_staticText24, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 13 );
343 m_staticline5 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
344 rightSizer->Add(
m_staticline5, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
346 wxBoxSizer* bSessionSizer;
347 bSessionSizer =
new wxBoxSizer( wxVERTICAL );
349 m_cbRememberOpenFiles =
new wxCheckBox(
this, wxID_ANY,
_(
"Remember open files for next project launch"), wxDefaultPosition, wxDefaultSize, 0 );
351 m_cbRememberOpenFiles->SetToolTip(
_(
"If checked, launching a project will also launch tools such as the schematic and board editors with previously open files") );
356 bSessionSizer->Add( 0, 5, 0, 0, 5 );
358 wxGridBagSizer* gbSizer1;
359 gbSizer1 =
new wxGridBagSizer( 5, 5 );
360 gbSizer1->SetFlexibleDirection( wxBOTH );
361 gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
362 gbSizer1->SetEmptyCellSize( wxSize( -1,2 ) );
368 m_fileHistorySize =
new wxSpinCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100, 0 );
369 gbSizer1->Add(
m_fileHistorySize, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
372 gbSizer1->AddGrowableCol( 1 );
374 bSessionSizer->Add( gbSizer1, 0, wxALL, 5 );
377 rightSizer->Add( bSessionSizer, 0, wxTOP|wxLEFT|wxEXPAND, 5 );
380 rightSizer->Add( 0, 15, 0, wxEXPAND, 5 );
382 m_staticText25 =
new wxStaticText(
this, wxID_ANY,
_(
"Project Backup"), wxDefaultPosition, wxDefaultSize, 0 );
384 rightSizer->Add(
m_staticText25, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 13 );
386 m_staticline4 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
387 rightSizer->Add(
m_staticline4, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
389 wxBoxSizer* bProjectBackupSizer;
390 bProjectBackupSizer =
new wxBoxSizer( wxVERTICAL );
392 wxGridBagSizer* gbSizer3;
393 gbSizer3 =
new wxGridBagSizer( 2, 0 );
394 gbSizer3->SetFlexibleDirection( wxBOTH );
395 gbSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
397 m_cbBackupEnabled =
new wxCheckBox(
this, wxID_ANY,
_(
"Automatically backup projects"), wxDefaultPosition, wxDefaultSize, 0 );
398 m_cbBackupEnabled->SetToolTip(
_(
"Automatically create backup archives of the current project when saving files") );
400 gbSizer3->Add(
m_cbBackupEnabled, wxGBPosition( 0, 0 ), wxGBSpan( 1, 3 ), wxBOTTOM|wxRIGHT, 5 );
402 m_staticText16 =
new wxStaticText(
this, wxID_ANY,
_(
"Maximum total backup size:"), wxDefaultPosition, wxDefaultSize, 0 );
404 m_staticText16->SetToolTip(
_(
"If the total size of backup files grows above this limit, old backups will be deleted (set to 0 for no limit)") );
406 gbSizer3->Add(
m_staticText16, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 3 );
408 m_backupLimitTotalSize =
new wxSpinCtrl(
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 1000, 0 );
409 gbSizer3->Add(
m_backupLimitTotalSize, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 3 );
411 m_staticText17 =
new wxStaticText(
this, wxID_ANY,
_(
"MB"), wxDefaultPosition, wxDefaultSize, 0 );
413 gbSizer3->Add(
m_staticText17, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 );
416 gbSizer3->AddGrowableCol( 1 );
418 bProjectBackupSizer->Add( gbSizer3, 0, wxALL, 5 );
421 rightSizer->Add( bProjectBackupSizer, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
424 bPanelSizer->Add( rightSizer, 0, wxRIGHT|wxLEFT, 5 );
427 this->SetSizer( bPanelSizer );
429 bPanelSizer->Fit(
this );