~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to src/exercises/ScoreAuxCtrol.h

  • 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: ScoreAuxCtrol.h,v 1.4 2006/02/23 19:19:53 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 ScoreAuxCtrol.h
 
23
    @brief Header file for class lmScoreAuxCtrol
 
24
    @ingroup html_controls
 
25
*/
 
26
#ifdef __GNUG__
 
27
// #pragma interface
 
28
#endif
 
29
 
 
30
#ifndef __SCOREAUXCTROL_H__        //to avoid nested includes
 
31
#define __SCOREAUXCTROL_H__
 
32
 
 
33
#include "../app/Paper.h"
 
34
#include "../app/global.h"
 
35
#include "../sound/SoundEvents.h"
 
36
 
 
37
// ----------------------------------------------------------------------------
 
38
// lmScoreAuxCtrol: a control which shows a music score
 
39
// ----------------------------------------------------------------------------
 
40
 
 
41
enum EScoreStyles {
 
42
    eNO_BORDER = 0,
 
43
    eSIMPLE_BORDER = wxSIMPLE_BORDER,
 
44
};
 
45
 
 
46
class lmScoreAuxCtrol : public wxWindow    
 
47
{
 
48
 
 
49
public:
 
50
 
 
51
    // constructor and destructor    
 
52
    lmScoreAuxCtrol(wxWindow* parent, wxWindowID id, lmScore* pScore,
 
53
               const wxPoint& pos = wxDefaultPosition, 
 
54
               const wxSize& size = wxDefaultSize, EScoreStyles style = eNO_BORDER);
 
55
 
 
56
    ~lmScoreAuxCtrol();
 
57
 
 
58
    // event handlers
 
59
    void OnPaint(wxPaintEvent& WXUNUSED(event));
 
60
    void OnSize(wxSizeEvent& WXUNUSED(event));
 
61
    void OnVisualHighlight(lmScoreHighlightEvent& event);
 
62
 
 
63
    void DisplayMessage(wxString sMsg, lmMicrons posMsg, bool fClearScore = true);
 
64
    void DisplayScore(lmScore* pScore, bool fClearMessage = true);
 
65
 
 
66
    //settings
 
67
    void SetMargins(lmMicrons nLeft, lmMicrons nRight, lmMicrons nTop);
 
68
    void SetScale(float rScale);
 
69
    void SetScore(lmScore* pScore, bool fHidden = false);
 
70
    void HideScore(bool fHide);
 
71
 
 
72
    //Play commands
 
73
    void PlayScore(bool fVisualTracking = lmVISUAL_TRACKING,
 
74
                   bool fMarcarCompasPrevio = NO_MARCAR_COMPAS_PREVIO,
 
75
                   EPlayMode nPlayMode = ePM_NormalInstrument,
 
76
                   long nMM = 0);
 
77
    void PlayMeasure(int nMeasure,
 
78
                     bool fVisualTracking = lmNO_VISUAL_TRACKING, 
 
79
                     EPlayMode nPlayMode = ePM_NormalInstrument,
 
80
                     long nMM = 0);
 
81
    void Stop();
 
82
    void Pause();
 
83
 
 
84
    // Debug methods
 
85
    void Dump();
 
86
    void SourceLDP();
 
87
    void SourceXML();
 
88
    void DumpMidiEvents();
 
89
 
 
90
 
 
91
private:
 
92
    void ResizePaper();
 
93
 
 
94
        // member variables
 
95
 
 
96
    lmScore*        m_pScore;       //the score to display
 
97
    bool            m_fHidden;      //the score is hidden, that is, it must not be displayed
 
98
                                    //      but can be played back
 
99
    double          m_rScale;       //presentation scale (default 1.0)
 
100
    lmPaper         m_Paper;        //the lmPaper object to use
 
101
 
 
102
    //message management
 
103
    wxString        m_sMsg;                    // message to display
 
104
    bool            m_fDisplayMessage;        
 
105
    lmMicrons       m_yMsg;                    // message position (microns)
 
106
    float           m_yScalingFactor;        // pixels per micron
 
107
 
 
108
    //paper margins
 
109
    float           m_rZoom;            //zooming factor (default 1.0)
 
110
    lmMicrons       m_nTopMargin;
 
111
    lmMicrons       m_nLeftMargin;
 
112
    lmMicrons       m_nRightMargin;
 
113
 
 
114
    DECLARE_EVENT_TABLE()
 
115
};
 
116
 
 
117
 
 
118
 
 
119
#endif  // __SCOREAUXCTROL_H__
 
120