~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/exercises/IdfyScalesCtrol.h

  • Committer: cecilios
  • Date: 2007-05-19 11:39:03 UTC
  • Revision ID: svn-v4:2587a929-2f0e-0410-ae78-fe6f687d5efe:trunk:236

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//--------------------------------------------------------------------------------------
 
2
//    LenMus Phonascus: The teacher of music
 
3
//    Copyright (c) 2002-2007 Cecilio Salmeron
 
4
//
 
5
//    This program is free software; you can redistribute it and/or modify it under the 
 
6
//    terms of the GNU General Public License as published by the Free Software Foundation;
 
7
//    either version 2 of the License, or (at your option) any later version.
 
8
//
 
9
//    This program is distributed in the hope that it will be useful, but WITHOUT ANY 
 
10
//    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
 
11
//    PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 
12
//
 
13
//    You should have received a copy of the GNU General Public License along with this 
 
14
//    program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, 
 
15
//    Fifth Floor, Boston, MA  02110-1301, USA.
 
16
//
 
17
//    For any comment, suggestion or feature request, please contact the manager of 
 
18
//    the project at cecilios@users.sourceforge.net
 
19
//
 
20
//-------------------------------------------------------------------------------------
 
21
/*! @file IdfyScalesCtrol.h
 
22
    @brief Header file for class lmIdfyScalesCtrol
 
23
    @ingroup html_controls
 
24
*/
 
25
 
 
26
#ifndef __IDFYSCALESCTROL_H__        //to avoid nested includes
 
27
#define __IDFYSCALESCTROL_H__
 
28
 
 
29
// For compilers that support precompilation, includes "wx/wx.h".
 
30
#include "wx/wxprec.h"
 
31
 
 
32
#ifdef __BORLANDC__
 
33
#pragma hdrstop
 
34
#endif
 
35
 
 
36
#ifndef WX_PRECOMP
 
37
#include "wx/wx.h"
 
38
#endif
 
39
 
 
40
#include "ScalesConstrains.h"
 
41
#include "../score/Score.h"
 
42
#include "ScoreAuxCtrol.h"
 
43
#include "UrlAuxCtrol.h"
 
44
#include "CountersCtrol.h"
 
45
 
 
46
 
 
47
 
 
48
class lmIdfyScalesCtrol :    public lmIdfyExerciseCtrol    
 
49
{
 
50
public:
 
51
 
 
52
    // constructor and destructor    
 
53
    lmIdfyScalesCtrol(wxWindow* parent, wxWindowID id,
 
54
               lmScalesConstrains* pConstrains, 
 
55
               const wxPoint& pos = wxDefaultPosition, 
 
56
               const wxSize& size = wxDefaultSize, int style = 0);
 
57
 
 
58
    ~lmIdfyScalesCtrol();
 
59
 
 
60
    //implementation of virtual methods
 
61
    void InitializeStrings();
 
62
    void CreateAnswerButtons();
 
63
    void PrepareAuxScore(int nButton);
 
64
    wxString SetNewProblem();    
 
65
    wxDialog* GetSettingsDlg();
 
66
    void ReconfigureButtons();
 
67
 
 
68
private:
 
69
    wxString PrepareScore(EClefType nClef, EScaleType nType, lmScore** pScore);
 
70
    int ReconfigureGroup(int iBt, int iStartC, int iEndC, wxString sRowLabel);
 
71
 
 
72
        // member variables
 
73
 
 
74
    enum {
 
75
        m_NUM_COLS = 4,
 
76
        m_NUM_ROWS = 6,
 
77
        m_NUM_BUTTONS = 24,     // NUM_COLS * NUM_ROWS;
 
78
    };
 
79
 
 
80
    lmScalesConstrains* m_pConstrains;       //constraints for the exercise
 
81
 
 
82
    //problem asked
 
83
    EKeySignatures  m_nKey;
 
84
    wxString        m_sRootNote;
 
85
    bool            m_fAscending;
 
86
 
 
87
    //answer
 
88
    wxStaticText*   m_pRowLabel[m_NUM_ROWS];
 
89
    wxButton*       m_pAnswerButton[m_NUM_BUTTONS];     //buttons for the answers
 
90
    int             m_nRealScale[m_NUM_BUTTONS];        //scale that corresponds
 
91
                                                        //   to each valid button
 
92
 
 
93
    DECLARE_EVENT_TABLE()
 
94
};
 
95
 
 
96
 
 
97
 
 
98
#endif  // __IDFYSCALESCTROL_H__