27
27
BEGIN_EVENT_TABLE(SettingsDialog, wxPropertySheetDialog)
28
28
EVT_BUTTON(ID_Browse_Bg, SettingsDialog::OnBrowseEvent)
29
EVT_CHECKBOX(ID_Enable_Minimize, SettingsDialog::OnChange)
30
EVT_CHECKBOX(ID_SHOW_REFLEXES, SettingsDialog::OnChange)
31
EVT_CHECKBOX(ID_AUTO_POSITION, SettingsDialog::OnChange)
32
EVT_CHECKBOX(ID_ENABLE_TASKS, SettingsDialog::OnChange)
33
EVT_SPINCTRL(ID_LEFT_BORDER, SettingsDialog::OnSpinChange)
34
EVT_SPINCTRL(ID_RIGHT_BORDER, SettingsDialog::OnSpinChange)
35
EVT_SPINCTRL(ID_BOTTOM_BORDER, SettingsDialog::OnSpinChange)
36
EVT_SPINCTRL(ID_ICONW, SettingsDialog::OnSpinChange)
37
EVT_SPINCTRL(ID_ICONH, SettingsDialog::OnSpinChange)
38
EVT_SPINCTRL(ID_PERCENT, SettingsDialog::OnSpinChange)
39
EVT_SPINCTRL(ID_RANGE, SettingsDialog::OnSpinChange)
40
EVT_SPINCTRL(ID_SPACER, SettingsDialog::OnSpinChange)
41
EVT_SPINCTRL(ID_BG_HEIGHT, SettingsDialog::OnSpinChange)
42
EVT_SPINCTRL(ID_REFLEX_SCALING , SettingsDialog::OnSpinChange)
43
EVT_SPINCTRL(ID_REFLEX_ALPHA, SettingsDialog::OnSpinChange)
58
74
m_imageList->Add(wxArtProvider::GetIcon(wxART_INFORMATION, wxART_OTHER, imageSize));
61
Create(win, wxID_ANY, _("Preferences"), wxDefaultPosition, wxDefaultSize,
77
Create(win, wxID_ANY, _("SimDock - Preferences"), wxDefaultPosition, wxDefaultSize,
62
78
wxDEFAULT_DIALOG_STYLE| wxRESIZE_BORDER);
113
129
delete (notebook);
116
bool checkInt(wxTextCtrl* control, int* value, unsigned long minvalue, unsigned long maxvalue)
132
bool checkInt(wxSpinCtrl* control, int* value, unsigned long minvalue, unsigned long maxvalue)
119
if (!control->GetValue().ToULong(&temp,10))
121
wxMessageBox (_T ("Cannot convert this to number? ") + control->GetValue() , _T ("SimDock"), wxOK | wxICON_ERROR, NULL);
126
if (temp < minvalue || temp > maxvalue)
135
if (control->GetValue() < minvalue || control->GetValue() > maxvalue)
128
137
wxMessageBox (_T ("Wrong value! ") + control->GetValue()+
129
138
wxString::Format(_T("Should be between %d and %d"),minvalue,maxvalue) , _T ("SimDock"), wxOK | wxICON_ERROR, NULL);
142
*value = control->GetValue();
138
147
simSettings* SettingsDialog::GetSettings()
199
208
wxStaticBoxSizer* item2 = new wxStaticBoxSizer(wxVERTICAL, panel, _T("Zoom"));
201
210
wxBoxSizer* itemSizer6 = new wxBoxSizer( wxHORIZONTAL );
202
zoom_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->PERCENT));
203
zoom_text->SetMaxLength(5);
211
zoom_text = new wxSpinCtrl(panel, ID_PERCENT, wxString::Format(_T("%d"),settings->PERCENT));
212
zoom_text->SetRange(0, 1000);
204
213
itemSizer6->Add(new wxStaticText(panel,-1,_T("Zoom")),wxGROW|wxALL,5);
205
214
itemSizer6->Add(zoom_text,wxGROW|wxALL,5);
206
215
item2->Add(itemSizer6, 0, wxGROW|wxALL, 5);
209
218
wxBoxSizer* itemSizer7 = new wxBoxSizer( wxHORIZONTAL );
210
range_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->RANGE));
211
range_text->SetMaxLength(5);
219
range_text = new wxSpinCtrl(panel, ID_RANGE,wxString::Format(_T("%d"),settings->RANGE));
220
range_text->SetRange(0, 1000);
212
221
itemSizer7->Add(new wxStaticText(panel,-1,_T("Range")),wxGROW|wxALL,5);
213
222
itemSizer7->Add(range_text,wxGROW|wxALL,5);
214
223
item2->Add(itemSizer7, 0, wxGROW|wxALL, 5);
220
229
/* --------------- BEHAVIOUR STUFF ----------------------*/
221
230
wxStaticBoxSizer* item3 = new wxStaticBoxSizer(wxVERTICAL, panel, _T("Behaviour"));
222
231
/* Automatic positioning */
223
auto_position = new wxCheckBox(panel,-1,_T("Automatic positioning"));
232
auto_position = new wxCheckBox(panel, ID_AUTO_POSITION, _T("Automatic positioning"));
224
233
auto_position->SetValue(settings->AUTO_POSITION);
225
234
item3->Add(auto_position, 0, wxGROW|wxALL, 5);
227
236
/* Enable tasks */
228
enable_tasks = new wxCheckBox(panel,-1,_T("Show tasks"));
237
enable_tasks = new wxCheckBox(panel,ID_ENABLE_TASKS, _T("Show tasks"));
229
238
enable_tasks->SetValue(settings->ENABLE_TASKS);
230
239
item3->Add(enable_tasks, 0, wxGROW|wxALL, 5);
232
241
/* Enable minimize */
233
enable_minimize = new wxCheckBox(panel,-1,_T("Minimize Windows"));
242
enable_minimize = new wxCheckBox(panel,ID_Enable_Minimize,_T("Minimize Windows"));
234
243
enable_minimize->SetValue(settings->ENABLE_MINIMIZE);
235
244
item3->Add(enable_minimize, 0, wxGROW|wxALL, 5);
255
264
/* Background height */
256
265
wxBoxSizer* itemSizer4 = new wxBoxSizer( wxHORIZONTAL );
257
bg_height_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->BG_HEIGHT));
258
bg_height_text->SetMaxLength(5);
266
bg_height_text = new wxSpinCtrl(panel, ID_BG_HEIGHT, wxString::Format(_T("%d"),settings->BG_HEIGHT));
267
bg_height_text->SetRange(0, 1000);
259
268
itemSizer4->Add(new wxStaticText(panel,-1,_T("Background Height")),wxGROW|wxALL,5);
260
269
itemSizer4->Add(bg_height_text,wxGROW|wxALL,5);
261
270
item0->Add(itemSizer4, 0, wxGROW|wxALL, 5);
263
272
/* Background path */
264
273
wxBoxSizer* itemSizer5 = new wxBoxSizer( wxHORIZONTAL );
265
bg_path_text = new wxTextCtrl(panel,-1,settings->BG_PATH,wxDefaultPosition,wxSize(150,wxDefaultSize.GetHeight()));
274
bg_path_text = new wxTextCtrl(panel, ID_bgPath, settings->BG_PATH,wxDefaultPosition,wxSize(150,wxDefaultSize.GetHeight()));
266
275
itemSizer5->Add(new wxStaticText(panel,-1,_T("Background Path")),wxGROW|wxALL,5);
267
276
itemSizer5->Add(bg_path_text,wxGROW|wxALL,5);
283
292
wxStaticBoxSizer* item3 = new wxStaticBoxSizer(wxVERTICAL, panel, _T("Reflexes"));
285
294
/* enable reflexes */
286
reflex_enabled = new wxCheckBox(panel,-1,_T("Enable reflexes"));
295
reflex_enabled = new wxCheckBox(panel, ID_SHOW_REFLEXES,_T("Enable reflexes"));
287
296
reflex_enabled->SetValue(settings->SHOW_REFLEXES);
288
297
item3->Add(reflex_enabled, 0, wxGROW|wxALL, 5);
290
299
/* reflex scaling */
291
300
wxBoxSizer* itemSizer9 = new wxBoxSizer( wxHORIZONTAL );
292
reflex_scaling_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->REFLEX_SCALING));
293
reflex_scaling_text->SetMaxLength(5);
301
reflex_scaling_text = new wxSpinCtrl(panel, ID_REFLEX_SCALING,wxString::Format(_T("%d"),settings->REFLEX_SCALING));
302
reflex_scaling_text->SetRange(0, 100);
294
303
itemSizer9->Add(new wxStaticText(panel,-1,_T("Reflex scaling")),wxGROW|wxALL,5);
295
304
itemSizer9->Add(reflex_scaling_text,wxGROW|wxALL,5);
296
305
item3->Add(itemSizer9, 0, wxGROW|wxALL, 5);
299
308
/* reflex transparency */
300
309
wxBoxSizer* itemSizer10 = new wxBoxSizer( wxHORIZONTAL );
301
reflex_alpha_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->REFLEX_ALPHA));
302
reflex_alpha_text->SetMaxLength(5);
310
reflex_alpha_text = new wxSpinCtrl(panel, ID_REFLEX_ALPHA,wxString::Format(_T("%d"),settings->REFLEX_ALPHA));
311
reflex_alpha_text->SetRange(0, 255);
303
312
itemSizer10->Add(new wxStaticText(panel,-1,_T("Reflex transparency")),wxGROW|wxALL,5);
304
313
itemSizer10->Add(reflex_alpha_text,wxGROW|wxALL,5);
305
314
item3->Add(itemSizer10, 0, wxGROW|wxALL, 5);
332
341
/* Left border */
333
342
wxBoxSizer* itemSizer0 = new wxBoxSizer( wxHORIZONTAL );
334
left_border_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->LEFT_BORDER));
335
left_border_text->SetMaxLength(5);
343
left_border_text = new wxSpinCtrl(panel, ID_LEFT_BORDER, wxString::Format(_T("%d"),settings->LEFT_BORDER));
344
left_border_text->SetRange(0, 1000);
336
345
itemSizer0->Add(new wxStaticText(panel,-1,_T("Left Border")),wxGROW|wxALL,5);
337
346
itemSizer0->Add(left_border_text,wxGROW|wxALL,5);
338
347
item0->Add(itemSizer0, 0, wxGROW|wxALL, 5);
340
349
/* Right border */
341
350
wxBoxSizer* itemSizer1 = new wxBoxSizer( wxHORIZONTAL );
342
right_border_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->RIGHT_BORDER));
343
right_border_text->SetMaxLength(5);
351
right_border_text = new wxSpinCtrl(panel, ID_RIGHT_BORDER, wxString::Format(_T("%d"),settings->RIGHT_BORDER));
352
right_border_text->SetRange(0, 1000);
344
353
itemSizer1->Add(new wxStaticText(panel,-1,_T("Right Border")),wxGROW|wxALL,5);
345
354
itemSizer1->Add(right_border_text,wxGROW|wxALL,5);
346
355
item0->Add(itemSizer1, 0, wxGROW|wxALL, 5);
348
357
/* Bottom border */
349
358
wxBoxSizer* itemSizer2 = new wxBoxSizer( wxHORIZONTAL );
350
bottom_border_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->BOTTOM_BORDER));
351
bottom_border_text->SetMaxLength(5);
359
bottom_border_text = new wxSpinCtrl(panel,ID_BOTTOM_BORDER,wxString::Format(_T("%d"),settings->BOTTOM_BORDER));
360
bottom_border_text->SetRange(0, 1000);
352
361
itemSizer2->Add(new wxStaticText(panel,-1,_T("Bottom Border")),wxGROW|wxALL,5);
353
362
itemSizer2->Add(bottom_border_text,wxGROW|wxALL,5);
354
363
item0->Add(itemSizer2, 0, wxGROW|wxALL, 5);
357
366
wxBoxSizer* itemSizer3 = new wxBoxSizer( wxHORIZONTAL );
358
spacer_border_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->SPACER));
359
spacer_border_text->SetMaxLength(5);
367
spacer_border_text = new wxSpinCtrl(panel,ID_SPACER,wxString::Format(_T("%d"),settings->SPACER));
368
spacer_border_text->SetRange(0, 1000);
360
369
itemSizer3->Add(new wxStaticText(panel,-1,_T("Icons spacer")),wxGROW|wxALL,5);
361
370
itemSizer3->Add(spacer_border_text,wxGROW|wxALL,5);
362
371
item0->Add(itemSizer3, 0, wxGROW|wxALL, 5);
368
377
/* Icons width */
369
378
wxBoxSizer* itemSizer4 = new wxBoxSizer( wxHORIZONTAL );
370
width_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->ICONW));
371
width_text->SetMaxLength(5);
379
width_text = new wxSpinCtrl(panel, ID_ICONW,wxString::Format(_T("%d"),settings->ICONW));
380
width_text->SetRange(0, 200);
372
381
itemSizer4->Add(new wxStaticText(panel,-1,_T("Icons width")),wxGROW|wxALL,5);
373
382
itemSizer4->Add(width_text,wxGROW|wxALL,5);
374
383
item1->Add(itemSizer4, 0, wxGROW|wxALL, 5);
376
385
/* Icons height */
377
386
wxBoxSizer* itemSizer5 = new wxBoxSizer( wxHORIZONTAL );
378
height_text = new wxTextCtrl(panel,-1,wxString::Format(_T("%d"),settings->ICONH));
379
height_text->SetMaxLength(5);
387
height_text = new wxSpinCtrl(panel, ID_ICONH,wxString::Format(_T("%d"),settings->ICONH));
388
height_text->SetRange(0, 200);
380
389
itemSizer5->Add(new wxStaticText(panel,-1,_T("Icons height")),wxGROW|wxALL,5);
381
390
itemSizer5->Add(height_text,wxGROW|wxALL,5);
382
391
item1->Add(itemSizer5, 0, wxGROW|wxALL, 5);
397
406
void SettingsDialog::OnBrowseEvent(wxCommandEvent& event)
399
wxFileName fn(bg_path_text->GetValue());
401
wxString filename = wxFileSelector(_T("Choose a file to open"),fn.GetPath(), _T(""), _T("png"), _T( "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif|PNG files (*.png)|*.png|All files (*.*)|*.*"), wxOPEN | wxFILE_MUST_EXIST);
402
if ( !filename.empty() )
404
bg_path_text->SetValue(filename);
408
wxFileName fn(bg_path_text->GetValue());
410
wxString filename = wxFileSelector(_T("Choose a file to open"),fn.GetPath(), _T(""), _T("png"), _T( "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif|PNG files (*.png)|*.png|All files (*.*)|*.*"), wxOPEN | wxFILE_MUST_EXIST);
411
if ( !filename.empty() )
413
bg_path_text->SetValue(filename);
415
this->OnChange(event);
418
void SettingsDialog::OnChange(wxCommandEvent& event) {
419
this->SaveSettings();
421
void SettingsDialog::OnSpinChange(wxSpinEvent& event) {
422
this->SaveSettings();
425
void SettingsDialog::SaveSettings() {
426
simSettings *settings = this->GetSettings ();
428
simGconf_saveSettings (settings);