~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/exercises/TheoMusicReadingCtrol.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
 
 
22
#ifdef __GNUG__
 
23
// #pragma interface
 
24
#endif
 
25
 
 
26
#ifndef __THOEMUSICREADINGCTROL_H__        //to avoid nested includes
 
27
#define __THOEMUSICREADINGCTROL_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 "wx/combobox.h"
 
41
 
 
42
#include "Constrains.h"
 
43
#include "../score/Score.h"
 
44
#include "ScoreAuxCtrol.h"
 
45
#include "UrlAuxCtrol.h"
 
46
#include "../sound/SoundEvents.h"
 
47
#include "ScoreConstrains.h"
 
48
 
 
49
 
 
50
class lmTheoMusicReadingCtrol : public wxWindow    
 
51
{
 
52
   DECLARE_DYNAMIC_CLASS(lmTheoMusicReadingCtrol)
 
53
 
 
54
public:
 
55
 
 
56
    // constructor and destructor    
 
57
    lmTheoMusicReadingCtrol(wxWindow* parent, wxWindowID id,
 
58
               lmMusicReadingCtrolOptions* pOptions,
 
59
               lmScoreConstrains* pConstrains, 
 
60
               const wxPoint& pos = wxDefaultPosition, 
 
61
               const wxSize& size = wxDefaultSize, int style = 0);
 
62
 
 
63
    ~lmTheoMusicReadingCtrol();
 
64
 
 
65
    // event handlers
 
66
    void OnClose(wxCloseEvent& event);
 
67
    void OnSize(wxSizeEvent& event);
 
68
    void OnPlay(wxCommandEvent& event);
 
69
    void OnNewProblem(wxCommandEvent& event);
 
70
    void OnSettingsButton(wxCommandEvent& event);
 
71
    void OnGoBackButton(wxCommandEvent& event);
 
72
 
 
73
    // event handlers related to debugging
 
74
    void OnDebugShowSourceScore(wxCommandEvent& event);
 
75
    void OnDebugDumpScore(wxCommandEvent& event);
 
76
    void OnDebugShowMidiEvents(wxCommandEvent& event);
 
77
 
 
78
    // event handlers related with playing a score
 
79
    void OnEndOfPlay(lmEndOfPlayEvent& WXUNUSED(event));
 
80
 
 
81
 
 
82
private:
 
83
    void Play();
 
84
    void NewProblem();
 
85
 
 
86
        // member variables
 
87
 
 
88
    lmScore*                    m_pScore;            // the score to read
 
89
    lmScoreAuxCtrol*            m_pScoreCtrol;
 
90
    lmScoreConstrains*          m_pConstrains;
 
91
    lmMusicReadingCtrolOptions*  m_pOptions;
 
92
 
 
93
    bool        m_fProblemCreated;  //there is a problem prepared
 
94
    bool        m_fPlayEnabled;     //Play enabled
 
95
 
 
96
    lmUrlAuxCtrol*  m_pSettingsLink;
 
97
 
 
98
    lmUrlAuxCtrol*  m_pPlayLink;
 
99
    bool            m_fPlaying;         //playing
 
100
    bool            m_fClosing;         // waiting for play stopped to close the window
 
101
 
 
102
    DECLARE_EVENT_TABLE()
 
103
};
 
104
 
 
105
 
 
106
 
 
107
#endif  // __THOEMUSICREADINGCTROL_H__
 
108