MuseScore  3.4
Music composition and notation
piano.h
Go to the documentation of this file.
1 //=============================================================================
2 // MusE Score
3 // Linux Music Score Editor
4 //
5 // Copyright (C) 2009 Werner Schweer and others
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License version 2.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 //=============================================================================
19 
20 #ifndef __PIANO_H__
21 #define __PIANO_H__
22 
23 namespace Ms {
24 
25 static const int pianoWidth = 40;
26 static const int keyHeight = 13;
27 
28 enum class PianoOrientation : char { HORIZONTAL, VERTICAL };
29 
30 //---------------------------------------------------------
31 // Piano
32 //---------------------------------------------------------
33 
34 class Piano : public QWidget {
35  Q_OBJECT
36 
38  double _ymag;
39  int _ypos;
40 
41  int yRange;
42  int curPitch;
44 
45  static QPixmap* octave;
46  static QPixmap* mk1;
47  static QPixmap* mk2;
48  static QPixmap* mk3;
49  static QPixmap* mk4;
50 
51  virtual void paintEvent(QPaintEvent*);
52  virtual void mousePressEvent(QMouseEvent*);
53  virtual void mouseReleaseEvent(QMouseEvent*);
54  virtual void mouseMoveEvent(QMouseEvent* event);
55  virtual void leaveEvent(QEvent*);
56 
57  int pitch2y(int pitch) const;
58  int y2pitch(int y) const;
59 
60  signals:
61  void pitchChanged(int);
62  void keyPressed(int pitch);
63  void keyReleased(int pitch);
64 
65  public slots:
66  void setYpos(int val);
67  void setMag(double, double);
68  void setPitch(int);
69 
70  public:
71  Piano(QWidget* parent = 0);
72  void setOrientation(PianoOrientation);
73  };
74 
75 
76 } // namespace Ms
77 #endif
78 
static QPixmap * mk3
Definition: piano.h:48
int curKeyPressed
Definition: piano.h:43
int y2pitch(qreal y, ClefType clef, qreal _spatium)
Definition: utils.cpp:404
static QPixmap * mk1
Definition: piano.h:46
static QPixmap * mk4
Definition: piano.h:49
double _ymag
Definition: piano.h:38
static QPixmap * octave
Definition: piano.h:45
PianoOrientation
Definition: piano.h:28
Definition: aeolus.cpp:26
int yRange
Definition: piano.h:41
int _ypos
Definition: piano.h:39
Definition: piano.h:34
int curPitch
Definition: piano.h:42
static QPixmap * mk2
Definition: piano.h:47
int pitch2y(int pitch, int enh, int clefOffset, int key, int &prefix, const char *tversatz)
PianoOrientation _orientation
Definition: piano.h:37