Canorus  0.0
drawablestaff.h
Go to the documentation of this file.
1 
8 #ifndef DRAWABLESTAFF_H_
9 #define DRAWABLESTAFF_H_
10 
11 #include "layout/drawablecontext.h"
12 #include "score/staff.h"
13 
14 class CANote;
15 class CAClef;
16 class CAKeySignature;
17 class CATimeSignature;
18 class CABarline;
19 class CADrawableClef;
22 class CADrawableBarline;
23 
25 public:
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 
63 private:
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_ */
static const double STAFFLINE_WIDTH
Definition: drawablestaff.h:68
CATimeSignature * getTimeSignature(double x)
Definition: drawablestaff.cpp:272
int removeMElement(CADrawableMusElement *elt)
Definition: drawablestaff.cpp:312
void addKeySignature(CADrawableKeySignature *keySig)
Definition: drawablestaff.cpp:191
Definition: drawablecontext.h:18
Definition: drawabletimesignature.h:17
QList< CADrawableKeySignature * > _drawableKeySignatureList
Definition: drawablestaff.h:65
void addBarline(CADrawableBarline *barline)
Definition: drawablestaff.cpp:228
Definition: clef.h:18
Represents a key signature sign in the staff.
Definition: keysignature.h:19
void draw(QPainter *, const CADrawSettings s)
Definition: drawablestaff.cpp:30
double calculateCenterYCoord(int pitch, CAClef *clef)
Definition: drawablestaff.cpp:56
double height() const
Definition: drawable.h:58
Represents a time signature in the staff.
Definition: timesignature.h:18
QList< CADrawableTimeSignature * > & drawableTimeSignatureList()
Definition: drawablestaff.h:53
Definition: drawable.h:16
bool removeKeySignature(CADrawableKeySignature *keySig)
Definition: drawablestaff.cpp:201
Represents a note in the score.
Definition: note.h:18
Definition: drawablestaff.h:24
CADrawableStaff * clone()
Definition: drawablestaff.cpp:43
QList< CADrawableTimeSignature * > _drawableTimeSignatureList
Definition: drawablestaff.h:66
CAKeySignature * getKeySignature(double x)
Definition: drawablestaff.cpp:245
void addClef(CADrawableClef *clef)
Definition: drawablestaff.cpp:134
QList< CADrawableBarline * > & drawableBarlineList()
Definition: drawablestaff.h:55
Definition: drawablemuselement.h:16
void addMElement(CADrawableMusElement *elt)
Definition: drawablestaff.cpp:279
Drawable instance of CAClef This class draws the clef to the canvas.
Definition: drawableclef.h:16
bool removeTimeSignature(CADrawableTimeSignature *keySig)
Definition: drawablestaff.cpp:265
int getAccs(double x, int pitch)
Definition: drawablestaff.cpp:163
CADrawableStaff(CAStaff *staff, double x, double y)
Definition: drawablestaff.cpp:24
bool removeClef(CADrawableClef *clef)
Definition: drawablestaff.cpp:144
Represents a staff in the sheet.
Definition: staff.h:25
Definition: drawablekeysignature.h:20
CABarline * getBarline(double x)
Definition: drawablestaff.cpp:216
bool removeBarline(CADrawableBarline *barline)
Definition: drawablestaff.cpp:238
Definition: drawablebarline.h:16
CAClef * getClef(double x)
Definition: drawablestaff.cpp:151
static bool xDrawableBarlineLessThan(const CADrawableBarline *a, const double x)
Definition: drawablestaff.cpp:208
double lineSpace()
Definition: drawablestaff.h:31
int calculatePitch(double x, double y)
Definition: drawablestaff.cpp:123
void addTimeSignature(CADrawableTimeSignature *keySig)
Definition: drawablestaff.cpp:255
CAStaff * staff()
Definition: drawablestaff.h:29
CAContext * _context
Definition: drawablecontext.h:53
Music element which represents a barline in the score.
Definition: barline.h:17
QList< CADrawableClef * > _drawableClefList
Definition: drawablestaff.h:64
QList< CADrawableBarline * > _drawableBarlineList
Definition: drawablestaff.h:67