~onli/simdock/master

« back to all changes in this revision

Viewing changes to src/settingsDialog.cc

  • Committer: onli
  • Date: 2012-04-06 23:14:37 UTC
  • Revision ID: git-v1:34faa0ed43dcef74e599624c60200990ab02a65b
Revert "Revert "first step for interactive settings: interactive setting (without specific app-update)""
fighting with git

This reverts commit 6182beada92d1f2c8c5e4ec59e6f06583d6bda4b.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
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)
 
44
 
29
45
END_EVENT_TABLE()
30
46
 
31
47
 
58
74
    m_imageList->Add(wxArtProvider::GetIcon(wxART_INFORMATION, wxART_OTHER, imageSize));
59
75
 
60
76
 
61
 
    Create(win, wxID_ANY, _("Preferences"), wxDefaultPosition, wxDefaultSize,
 
77
    Create(win, wxID_ANY, _("SimDock - Preferences"), wxDefaultPosition, wxDefaultSize,
62
78
        wxDEFAULT_DIALOG_STYLE| wxRESIZE_BORDER);
63
79
        
64
80
 
83
99
        cout << "Error adding Background settings page" << endl;
84
100
    }
85
101
 
86
 
    CreateButtons(wxOK|wxCANCEL);
 
102
    CreateButtons(wxOK);
87
103
    LayoutDialog();
88
104
    
89
105
}
113
129
    delete (notebook);
114
130
}
115
131
 
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)
117
133
{
118
 
    unsigned long temp;
119
 
    if (!control->GetValue().ToULong(&temp,10))
120
 
    {
121
 
            wxMessageBox (_T ("Cannot convert this to number? ") + control->GetValue() , _T ("SimDock"), wxOK | wxICON_ERROR, NULL);
122
 
            return false;
123
 
    }
124
 
    else
125
 
    {
126
 
            if (temp < minvalue || temp > maxvalue)
127
 
            {
 
134
 
 
135
    if (control->GetValue() < minvalue || control->GetValue() > maxvalue)
 
136
    {
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);
130
139
            return false;
131
 
            }
 
140
    }
132
141
    
133
 
        *value = (int) temp;    
 
142
        *value = control->GetValue();    
134
143
        return true;
135
 
    }
136
144
 
137
145
}
 
146
 
138
147
simSettings* SettingsDialog::GetSettings()
139
148
{
140
149
    /* Zoom */
199
208
    wxStaticBoxSizer* item2 = new wxStaticBoxSizer(wxVERTICAL, panel, _T("Zoom"));
200
209
    /* 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);
207
216
    
208
217
    /* Zoom range */
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);
226
235
    
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);
231
240
    
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);
236
245
 
254
263
 
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);
262
271
    
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);
268
277
    
283
292
    wxStaticBoxSizer* item3 = new wxStaticBoxSizer(wxVERTICAL, panel, _T("Reflexes"));
284
293
    
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);
289
298
    
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);
298
307
    
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);
331
340
 
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);
339
348
    
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);
347
356
    
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);
355
364
    
356
365
    /* Spacer */
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);
367
376
    
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);
375
384
    
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);
396
405
 
397
406
void SettingsDialog::OnBrowseEvent(wxCommandEvent& event)
398
407
{
399
 
wxFileName fn(bg_path_text->GetValue());
400
 
 
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() )
403
 
{
404
 
        bg_path_text->SetValue(filename);
405
 
}
406
 
 
407
 
 
 
408
    wxFileName fn(bg_path_text->GetValue());
 
409
 
 
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() )
 
412
    {
 
413
        bg_path_text->SetValue(filename);
 
414
    }
 
415
    this->OnChange(event);
 
416
}
 
417
 
 
418
void SettingsDialog::OnChange(wxCommandEvent& event) {
 
419
    this->SaveSettings();
 
420
}
 
421
void SettingsDialog::OnSpinChange(wxSpinEvent& event) {
 
422
    this->SaveSettings();
 
423
}
 
424
 
 
425
void SettingsDialog::SaveSettings() {
 
426
    simSettings *settings = this->GetSettings ();
 
427
    if (settings) {
 
428
        simGconf_saveSettings (settings);
 
429
    }
 
430
    
408
431
}
409
432
 
410
433