Canorus 0.0
drawablestaff.h
Go to the documentation of this file.
1
8#ifndef DRAWABLESTAFF_H_
9#define DRAWABLESTAFF_H_
10
12#include "score/staff.h"
13
14class CANote;
15class CAClef;
16class CAKeySignature;
17class CATimeSignature;
18class CABarline;
19class CADrawableClef;
23
25public:
26 CADrawableStaff(CAStaff* staff, double x, double y);
27 void draw(QPainter *, const CADrawSettings s);
29 inline CAStaff *staff() { return static_cast<CAStaff*>(_context); }
30
31 inline double lineSpace() { return (staff()->numberOfLines()?height()/(staff()->numberOfLines()-1):0); }
32
33 double calculateCenterYCoord(int pitch, CAClef *clef);
34 double calculateCenterYCoord(CANote *note, CAClef *clef);
35 double calculateCenterYCoord(CANote *note, double x);
36 double calculateCenterYCoord(int pitch, double x);
37 double calculateCenterYCoord(double y);
38
39 int calculatePitch(double x, double y);
40
41 void addClef(CADrawableClef *clef);
44 void addBarline(CADrawableBarline *barline);
45
46 bool removeClef(CADrawableClef *clef);
49 bool removeBarline(CADrawableBarline *barline);
50
51 CAClef *getClef(double x);
53 QList<CADrawableTimeSignature *>& drawableTimeSignatureList() { return _drawableTimeSignatureList; }
55 QList<CADrawableBarline *>& drawableBarlineList() { return _drawableBarlineList; }
56 CABarline *getBarline(double x);
57 static bool xDrawableBarlineLessThan(const CADrawableBarline* a, const double x);
58
59 int getAccs(double x, int pitch);
62
63private:
64 QList<CADrawableClef *> _drawableClefList; // List of all the drawable clefs. Used for fast look-up with the given key - X-coordinate usually.
65 QList<CADrawableKeySignature *> _drawableKeySignatureList; // List of all the drawable key signatures. Used for fast look-up with the given key - X-coordinate usually.
66 QList<CADrawableTimeSignature *> _drawableTimeSignatureList; // List of all the drawable time signatures. Used for fast look-up with the given key - X-coordinate usually.
67 QList<CADrawableBarline *> _drawableBarlineList; // List of all the barlines. Used for fast look-up with the given key - X-coordinate usually.
68 static const double STAFFLINE_WIDTH; // Width of the staffs' lines. Defined in drawablestaff.cpp
69};
70
71#endif /* DRAWABLESTAFF_H_ */
Music element which represents a barline in the score.
Definition: barline.h:17
Definition: clef.h:18
Definition: drawablebarline.h:16
Drawable instance of CAClef This class draws the clef to the canvas.
Definition: drawableclef.h:16
Definition: drawablecontext.h:18
CAContext * _context
Definition: drawablecontext.h:53
Definition: drawablekeysignature.h:20
Definition: drawablemuselement.h:16
Definition: drawablestaff.h:24
void draw(QPainter *, const CADrawSettings s)
Definition: drawablestaff.cpp:30
CABarline * getBarline(double x)
Definition: drawablestaff.cpp:216
bool removeTimeSignature(CADrawableTimeSignature *keySig)
Definition: drawablestaff.cpp:265
void addBarline(CADrawableBarline *barline)
Definition: drawablestaff.cpp:228
QList< CADrawableBarline * > _drawableBarlineList
Definition: drawablestaff.h:67
QList< CADrawableBarline * > & drawableBarlineList()
Definition: drawablestaff.h:55
QList< CADrawableClef * > _drawableClefList
Definition: drawablestaff.h:64
double lineSpace()
Definition: drawablestaff.h:31
CADrawableStaff(CAStaff *staff, double x, double y)
Definition: drawablestaff.cpp:24
static const double STAFFLINE_WIDTH
Definition: drawablestaff.h:68
void addMElement(CADrawableMusElement *elt)
Definition: drawablestaff.cpp:279
CAKeySignature * getKeySignature(double x)
Definition: drawablestaff.cpp:245
void addTimeSignature(CADrawableTimeSignature *keySig)
Definition: drawablestaff.cpp:255
bool removeBarline(CADrawableBarline *barline)
Definition: drawablestaff.cpp:238
int calculatePitch(double x, double y)
Definition: drawablestaff.cpp:123
CADrawableStaff * clone()
Definition: drawablestaff.cpp:43
void addKeySignature(CADrawableKeySignature *keySig)
Definition: drawablestaff.cpp:191
CATimeSignature * getTimeSignature(double x)
Definition: drawablestaff.cpp:272
bool removeClef(CADrawableClef *clef)
Definition: drawablestaff.cpp:144
void addClef(CADrawableClef *clef)
Definition: drawablestaff.cpp:134
QList< CADrawableKeySignature * > _drawableKeySignatureList
Definition: drawablestaff.h:65
QList< CADrawableTimeSignature * > _drawableTimeSignatureList
Definition: drawablestaff.h:66
int getAccs(double x, int pitch)
Definition: drawablestaff.cpp:163
QList< CADrawableTimeSignature * > & drawableTimeSignatureList()
Definition: drawablestaff.h:53
CAStaff * staff()
Definition: drawablestaff.h:29
bool removeKeySignature(CADrawableKeySignature *keySig)
Definition: drawablestaff.cpp:201
CAClef * getClef(double x)
Definition: drawablestaff.cpp:151
int removeMElement(CADrawableMusElement *elt)
Definition: drawablestaff.cpp:312
double calculateCenterYCoord(int pitch, CAClef *clef)
Definition: drawablestaff.cpp:56
static bool xDrawableBarlineLessThan(const CADrawableBarline *a, const double x)
Definition: drawablestaff.cpp:208
Definition: drawabletimesignature.h:17
double height() const
Definition: drawable.h:58
Represents a key signature sign in the staff.
Definition: keysignature.h:19
Represents a note in the score.
Definition: note.h:18
Represents a staff in the sheet.
Definition: staff.h:25
Represents a time signature in the staff.
Definition: timesignature.h:18
Definition: drawable.h:16