~s-cecilio/lenmus/v5.3

« back to all changes in this revision

Viewing changes to include/lenmus_problem_displayer.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-2012 LenMus project
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 3 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, see <http://www.gnu.org/licenses/>.
15
 
//
16
 
//    For any comment, suggestion or feature request, please contact the manager of
17
 
//    the project at cecilios@users.sourceforge.net
18
 
//
19
 
//---------------------------------------------------------------------------------------
20
 
 
21
 
#ifndef __LENMUS_PROBLEM_DISPLAYER_H__
22
 
#define __LENMUS_PROBLEM_DISPLAYER_H__
23
 
 
24
 
 
25
 
//lenmus
26
 
#include "lenmus_standard_header.h"
27
 
 
28
 
////wxWidgets
29
 
//#include <wx/wxprec.h>
30
 
//#include <wx/wx.h>
31
 
//#include <wx/event.h>
32
 
 
33
 
//lomse
34
 
#include <lomse_internal_model.h>
35
 
#include <lomse_document.h>
36
 
using namespace lomse;
37
 
 
38
 
 
39
 
namespace lenmus
40
 
{
41
 
 
42
 
// forward declarations
43
 
class ExerciseOptions;
44
 
class ExerciseCtrol;
45
 
class DocumentWindow;
46
 
 
47
 
 
48
 
//---------------------------------------------------------------------------------------
49
 
// ProblemDisplayer: responsible for displaying a problem score and associated texts
50
 
class ProblemDisplayer
51
 
{
52
 
protected:
53
 
    DocumentWindow* m_pCanvas;
54
 
    ImoContent*     m_pWrapper;
55
 
    Document*       m_pDoc;
56
 
    ImoScore*       m_pDisplayedScore;
57
 
    ImoScore*       m_pScoreToPlay;
58
 
    ImoParagraph*   m_pProblemPara;
59
 
    ImoParagraph*   m_pSolutionPara;
60
 
 
61
 
public:
62
 
 
63
 
    // constructor and destructor
64
 
    ProblemDisplayer(DocumentWindow* pCanvas, ImoContent* pWrapper, Document* pDoc,
65
 
                     LUnits minHeight, ImoStyle* pStyle=NULL);
66
 
    ~ProblemDisplayer();
67
 
 
68
 
    void set_score(ImoScore* pScore);
69
 
    inline bool is_score_displayed() { return m_pDisplayedScore != NULL; }
70
 
    void set_problem_text(const string& msg);
71
 
    void set_solution_text(const string& msg);
72
 
    void clear();
73
 
    inline bool is_displayed(ImoScore* pScore) { return pScore == m_pDisplayedScore; }
74
 
    inline ImoScore* get_score() { return m_pDisplayedScore; }
75
 
 
76
 
    //debug
77
 
    void debug_show_source_score();
78
 
    void debug_show_midi_events();
79
 
 
80
 
protected:
81
 
    void remove_current_score();
82
 
    void remove_problem_text();
83
 
    void remove_solution_text();
84
 
 
85
 
};
86
 
 
87
 
 
88
 
}   // namespace lenmus
89
 
 
90
 
#endif  // __LENMUS_PROBLEM_DISPLAYER_H__