~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/options/ToobarsOptPanel.cpp

  • Committer: cecilios
  • Date: 2006-03-05 11:33:10 UTC
  • Revision ID: svn-v4:2587a929-2f0e-0410-ae78-fe6f687d5efe:trunk:2
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// RCS-ID: $Id: ToobarsOptPanel.cpp,v 1.7 2006/02/25 15:15:59 cecilios Exp $
 
2
//--------------------------------------------------------------------------------------
 
3
//    LenMus Phonascus: The teacher of music
 
4
//    Copyright (c) 2002-2006 Cecilio Salmeron
 
5
//
 
6
//    This program is free software; you can redistribute it and/or modify it under the 
 
7
//    terms of the GNU General Public License as published by the Free Software Foundation;
 
8
//    either version 2 of the License, or (at your option) any later version.
 
9
//
 
10
//    This program is distributed in the hope that it will be useful, but WITHOUT ANY 
 
11
//    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
 
12
//    PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
13
//
 
14
//    You should have received a copy of the GNU General Public License along with this 
 
15
//    program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, 
 
16
//    Fifth Floor, Boston, MA  02110-1301, USA.
 
17
//
 
18
//    For any comment, suggestion or feature request, please contact the manager of 
 
19
//    the project at cecilios@users.sourceforge.net
 
20
//
 
21
//-------------------------------------------------------------------------------------
 
22
/*! @file ToolbarsOptPanel.cpp
 
23
    @brief Implementation file for class lmToolbarsOptPanel
 
24
    @ingroup options_management
 
25
*/
 
26
#if defined(__GNUG__) && !defined(__APPLE__)
 
27
#pragma implementation "ToolbarsOptPanel.h"
 
28
#endif
 
29
 
 
30
// For compilers that support precompilation, includes "wx/wx.h".
 
31
#include "wx/wxprec.h"
 
32
 
 
33
#ifdef __BORLANDC__
 
34
#pragma hdrstop
 
35
#endif
 
36
 
 
37
#ifndef WX_PRECOMP
 
38
#include "wx/wx.h"
 
39
#endif
 
40
 
 
41
#include "wx/xrc/xmlres.h"
 
42
 
 
43
 
 
44
#include "ToolbarsOptPanel.h"
 
45
 
 
46
//access to preferences object
 
47
#include "wx/config.h"
 
48
extern wxConfigBase* g_pPrefs;
 
49
 
 
50
#include "../app/MainFrame.h"
 
51
extern lmMainFrame* g_pMainFrame;        //Access to MainFrame
 
52
 
 
53
 
 
54
 
 
55
IMPLEMENT_DYNAMIC_CLASS(lmToolbarsOptPanel, lmOptionsPanel);
 
56
 
 
57
BEGIN_EVENT_TABLE(lmToolbarsOptPanel, wxPanel)
 
58
    //EVT_BUTTON(wxID_OK, lmToolbarsOptPanel::OnOk)
 
59
END_EVENT_TABLE()
 
60
 
 
61
lmToolbarsOptPanel::lmToolbarsOptPanel(wxWindow* parent)
 
62
{
 
63
    // create the panel
 
64
    wxXmlResource::Get()->LoadPanel(this, parent, _T("ToolbarsOptPanel"));
 
65
   
 
66
    //load icon
 
67
    wxStaticBitmap* pBmpIcon = XRCCTRL(*this, _T("bmpIconTitle"), wxStaticBitmap);
 
68
    pBmpIcon->SetBitmap( wxArtProvider::GetIcon(_T("opt_tools"), wxART_TOOLBAR, wxSize(24,24)) );
 
69
 
 
70
    //
 
71
    // set panel controls according to current user selected options
 
72
    //
 
73
 
 
74
    //icons' size
 
75
    wxRadioBox* pOptIconSize = XRCCTRL(*this, _T("optIconSize"), wxRadioBox);
 
76
    long nIconSize = g_pPrefs->Read(_T("/Toolbars/IconSize"), 16);
 
77
    if (nIconSize == 32)
 
78
        m_nSizeIndex = 2;
 
79
    else if (nIconSize == 24)
 
80
        m_nSizeIndex = 1;
 
81
    else
 
82
        m_nSizeIndex = 0;
 
83
    pOptIconSize->SetSelection(m_nSizeIndex);
 
84
 
 
85
    //For now isable large size option
 
86
    //! @todo create large icons set for toolbar buttons
 
87
    pOptIconSize->Enable(2, false);
 
88
 
 
89
 
 
90
    // labels
 
91
    m_nLabelsIndex = (int) g_pPrefs->Read(_T("/Toolbars/Labels"), 1L);
 
92
    wxRadioBox* pOptLabels = XRCCTRL(*this, _T("optLabels"), wxRadioBox);
 
93
    pOptLabels->SetSelection(m_nLabelsIndex);
 
94
}
 
95
 
 
96
lmToolbarsOptPanel::~lmToolbarsOptPanel()
 
97
{
 
98
}
 
99
 
 
100
bool lmToolbarsOptPanel::Verify()
 
101
{
 
102
    return false;
 
103
}
 
104
 
 
105
void lmToolbarsOptPanel::Apply()
 
106
{
 
107
    // icons' size
 
108
    wxRadioBox* pOptIconSize = XRCCTRL(*this, _T("optIconSize"), wxRadioBox);
 
109
    int nSizeIndex = pOptIconSize->GetSelection();
 
110
    if (nSizeIndex != m_nSizeIndex) {
 
111
        long nIconSize;
 
112
        if (nSizeIndex == 2)
 
113
            nIconSize = 32;
 
114
        else if (nSizeIndex == 1)
 
115
            nIconSize = 24;
 
116
        else
 
117
            nIconSize = 16;
 
118
        g_pPrefs->Write(_T("/Toolbars/IconSize"), nIconSize);
 
119
    }
 
120
 
 
121
    // labels
 
122
    wxRadioBox* pOptLabels = XRCCTRL(*this, _T("optLabels"), wxRadioBox);
 
123
    int nLabelsIndex = pOptLabels->GetSelection();
 
124
    if (nLabelsIndex != m_nLabelsIndex) {
 
125
        g_pPrefs->Write(_T("/Toolbars/Labels"), nLabelsIndex);
 
126
    }
 
127
 
 
128
    // update toolbars
 
129
    if ((nSizeIndex != m_nSizeIndex) || (nLabelsIndex != m_nLabelsIndex)) {
 
130
        g_pMainFrame->UpdateToolbarsLayout();
 
131
    }
 
132
 
 
133
}
 
 
b'\\ No newline at end of file'