source: trunk/src/settings_dialog.cpp @ 175

Revision 175, 3.8 KB checked in by guyru, 3 years ago (diff)

add resource file, fix score hint shade under Windows

Line 
1/***************************************************************************
2 *   Copyright (C) 2006-2008 by Guy Rutenberg   *
3 *   guyrutenberg@gmail.com   *
4 *                                                                         *
5 *   This program is free software; you can redistribute it and/or modify  *
6 *   it under the terms of the GNU General Public License as published by  *
7 *   the Free Software Foundation; either version 2 of the License, or     *
8 *   (at your option) any later version.                                   *
9 *                                                                         *
10 *   This program is distributed in the hope that it will be useful,       *
11 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13 *   GNU General Public License for more details.                          *
14 *                                                                         *
15 *   You should have received a copy of the GNU General Public License     *
16 *   along with this program; if not, write to the                         *
17 *   Free Software Foundation, Inc.,                                       *
18 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
19 ***************************************************************************/
20
21#include "settings_dialog.h"
22#include "icon32.xpm"
23
24using namespace settings_dialog;
25
26SettingsDialog::SettingsDialog(wxWindow* parent, configuration::Configuration* config):
27    wxDialog(parent, wxID_ANY, wxT("Settings Dialog"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE)
28{
29
30        SetIcon(wxIcon(icon32_xpm));
31
32        m_config = config;
33
34        connectEventTable();
35        createControls();
36        loadSettings();
37        doLayout();
38}
39
40void SettingsDialog::createControls()
41{
42        // note that child windows are automatically deleted by wxWidgets, so
43        // need to delete them manually
44        animate_checkbox = new wxCheckBox(this, wxID_ANY, wxT("Dice animation"));
45        subtotal_checkbox = new wxCheckBox(this, wxID_ANY, wxT("Calculate sub-total score for the upper and lower sections"));
46        score_hints_checkbox = new wxCheckBox(this, wxID_ANY, wxT("Display score hints."));
47        horizontal_checkbox = new wxCheckBox(this, wxID_ANY, wxT("Enable horizontal layout for user interface."));
48}
49
50
51void SettingsDialog::connectEventTable()
52{
53        Connect(wxID_OK, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SettingsDialog::onOK));
54}
55
56void SettingsDialog::doLayout()
57{
58        wxBoxSizer* top_sizer = new wxBoxSizer(wxVERTICAL);
59        wxStaticBoxSizer* settings_sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("General Settings") ), wxVERTICAL);
60
61        settings_sizer->Add(animate_checkbox,0,wxALL,5);
62        settings_sizer->Add(subtotal_checkbox,0,wxALL,5);
63        settings_sizer->Add(score_hints_checkbox,0,wxALL,5);
64        settings_sizer->Add(horizontal_checkbox,0,wxALL,5);
65
66        top_sizer->Add(settings_sizer,0,wxALL,5);
67
68        top_sizer->Add(CreateButtonSizer(wxOK|wxCANCEL), 1, wxBOTTOM, 10);
69
70        SetAutoLayout(true);
71        SetSizer(top_sizer);
72
73        top_sizer->Fit(this);
74        top_sizer->SetSizeHints(this);
75
76        Layout();
77}
78
79void SettingsDialog::loadSettings()
80{
81        animate_checkbox->SetValue(m_config->get("dice-animation")=="True");
82        subtotal_checkbox->SetValue(m_config->get("calculate-subtotal")=="True");
83        score_hints_checkbox->SetValue(m_config->get("score-hints")=="True");
84        horizontal_checkbox->SetValue(m_config->get("horizontal-layout")=="True");
85       
86}
87void SettingsDialog::onOK(wxCommandEvent& event)
88{
89        m_config->set("dice-animation",animate_checkbox->GetValue()?"True":"False");
90        m_config->set("calculate-subtotal",subtotal_checkbox->GetValue()?"True":"False");
91        m_config->set("score-hints",score_hints_checkbox->GetValue()?"True":"False");
92        m_config->set("horizontal-layout",horizontal_checkbox->GetValue()?"True":"False");
93
94        m_config->save();
95
96        event.Skip();
97}
Note: See TracBrowser for help on using the repository browser.