~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/app/toolbox/ToolClef.h

  • Committer: cecilios
  • Date: 2009-10-26 18:35:09 UTC
  • Revision ID: svn-v4:2587a929-2f0e-0410-ae78-fe6f687d5efe:trunk:541
Some changes to restructure and complete toolbox ('Data entry modes' changed to 'Mouse modes'. Tool page 'Clefs' changed to use mouse mode). Toolbox info displayed in status bar. Small clefs position fixed. Some ScoreCanvas methods changed to avoid code particularized for note/rest entry in mouse mode and use a more general solution.

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
// Group for clef type
40
40
//--------------------------------------------------------------------------------
41
41
 
42
 
//aux. class to contain clefs data
43
 
class lmClefData
44
 
{
45
 
public:
46
 
    lmClefData() {}
47
 
    lmClefData(wxString name, lmEClefType type) : sClefName(name), nClefType(type) {}
48
 
 
49
 
    wxString            sClefName;
50
 
    lmEClefType         nClefType;
51
 
};
 
42
#define lmUSE_CLEF_COMBO    1       //use combo (1) or buttons (0)
52
43
 
53
44
//class to implement to tool group
54
45
class lmGrpClefType: public lmToolGroup
58
49
    ~lmGrpClefType() {}
59
50
 
60
51
    //implement virtual methods
 
52
    void CreateControls(wxBoxSizer* m_pMainSizer);
61
53
    inline lmEToolGroupID GetToolGroupID() { return lmGRP_ClefType; }
62
54
 
63
 
        //event handlers
64
 
    void OnAddClef(wxCommandEvent& event);
 
55
        //access to selected clef
 
56
        lmEClefType GetSelectedClef();
 
57
 
 
58
#if lmUSE_CLEF_COMBO
 
59
 
 
60
    //event handlers
 
61
    void OnClefList(wxCommandEvent& event);
65
62
 
66
63
private:
67
 
    void CreateControls(wxBoxSizer* m_pMainSizer);
 
64
 
68
65
    void LoadClefList();
69
66
 
70
67
        wxBitmapComboBox*   m_pClefList;
71
 
    wxButton*           m_pBtnAddClef;
72
68
 
73
69
    DECLARE_EVENT_TABLE()
 
70
#endif
 
71
 
74
72
};
75
73
 
76
74
 
88
86
 
89
87
        void OnButton(wxCommandEvent& event);
90
88
 
 
89
    //selected time signature
 
90
    int GetTimeBeats();
 
91
    int GetTimeBeatType();
 
92
 
91
93
    enum {
92
94
        lm_NUM_BUTTONS = 12
93
95
    };
104
106
private:
105
107
    void CreateControls(wxBoxSizer* m_pMainSizer);
106
108
 
107
 
        wxBitmapButton*         m_pButton[lm_NUM_BUTTONS];  //buttons
 
109
        wxBitmapButton* m_pButton[lm_NUM_BUTTONS];  //buttons
 
110
        int             m_nSelButton;               //selected button (0..n). -1 = none selected
108
111
 
109
112
 
110
113
    DECLARE_EVENT_TABLE()
125
128
 
126
129
    void OnKeyType(wxCommandEvent& event);
127
130
    void OnKeyList(wxCommandEvent& event);
128
 
    void OnAddKey(wxCommandEvent& event);
 
131
 
 
132
    //selected key
 
133
    bool IsMajorKeySignature();
 
134
    int GetFifths();
129
135
 
130
136
    //keys data
131
137
    typedef struct lmKeysStruct
139
145
private:
140
146
    void CreateControls(wxBoxSizer* m_pMainSizer);
141
147
    void LoadKeyList(int nType);
 
148
    void NotifyToolChange();
142
149
 
143
150
    wxRadioButton*      m_pKeyRad[2];   //rad.buttons for Major/Minor selection
144
151
        wxBitmapComboBox*   m_pKeyList;
149
156
 
150
157
 
151
158
//--------------------------------------------------------------------------------
152
 
// The panel
 
159
// The page
153
160
//--------------------------------------------------------------------------------
154
161
 
155
162
class lmToolPageClefs : public lmToolPage
165
172
    //implementation of virtual methods
166
173
    lmToolGroup* GetToolGroup(lmEToolGroupID nGroupID);
167
174
    void CreateGroups();
168
 
 
 
175
    bool DeselectRelatedGroups(lmEToolGroupID nGroupID);
 
176
 
 
177
    //current tool/group info
 
178
    wxString GetToolShortDescription();
 
179
 
 
180
    //interface with groups
 
181
        //clefs
 
182
    inline lmEClefType GetSelectedClef() { return m_pGrpClefType->GetSelectedClef(); }
 
183
        //time signatures
 
184
    inline int GetTimeBeats() { return m_pGrpTimeType->GetTimeBeats(); }
 
185
    inline int GetTimeBeatType() { return m_pGrpTimeType->GetTimeBeatType(); }
 
186
        //key signatures
 
187
    inline bool IsMajorKeySignature() { return m_pGrpKeyType->IsMajorKeySignature(); }
 
188
    inline int GetFifths() { return m_pGrpKeyType->GetFifths(); }
169
189
 
170
190
private:
171
191