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_ */
CADrawableStaff::getTimeSignature
CATimeSignature * getTimeSignature(double x)
Definition: drawablestaff.cpp:272
CADrawableStaff::_drawableBarlineList
QList< CADrawableBarline * > _drawableBarlineList
Definition: drawablestaff.h:67
CADrawableStaff::STAFFLINE_WIDTH
static const double STAFFLINE_WIDTH
Definition: drawablestaff.h:68
CADrawableClef
Drawable instance of CAClef This class draws the clef to the canvas.
Definition: drawableclef.h:16
CADrawableMusElement
Definition: drawablemuselement.h:16
CADrawableContext::_drawableContextType
CADrawableContextType _drawableContextType
Definition: drawablecontext.h:52
CADrawableBarline
Definition: drawablebarline.h:16
CADrawSettings::w
int w
Definition: drawable.h:20
note.h
CADrawableMusElement::DrawableTuplet
@ DrawableTuplet
Definition: drawablemuselement.h:28
CAClef
Definition: clef.h:18
CANote
Represents a note in the score.
Definition: note.h:18
CADrawableStaff::draw
void draw(QPainter *, const CADrawSettings s)
Definition: drawablestaff.cpp:30
CADrawableKeySignature
Definition: drawablekeysignature.h:20
CADrawableStaff::staff
CAStaff * staff()
Definition: drawablestaff.h:29
CADrawable::xPos
double xPos() const
Definition: drawable.h:55
CADrawableStaff::clone
CADrawableStaff * clone()
Definition: drawablestaff.cpp:43
CADrawableStaff::getBarline
CABarline * getBarline(double x)
Definition: drawablestaff.cpp:216
CATimeSignature
Represents a time signature in the staff.
Definition: timesignature.h:18
CADrawable::setWidth
void setWidth(double width)
Definition: drawable.h:73
CADrawableStaff::CADrawableStaff
CADrawableStaff(CAStaff *staff, double x, double y)
Definition: drawablestaff.cpp:24
CADrawableStaff::_drawableClefList
QList< CADrawableClef * > _drawableClefList
Definition: drawablestaff.h:64
CADrawableStaff::_drawableKeySignatureList
QList< CADrawableKeySignature * > _drawableKeySignatureList
Definition: drawablestaff.h:65
CADrawableStaff::addClef
void addClef(CADrawableClef *clef)
Definition: drawablestaff.cpp:134
CADrawableMusElement::DrawableMark
@ DrawableMark
Definition: drawablemuselement.h:32
CADrawableMusElement::DrawableFiguredBassNumber
@ DrawableFiguredBassNumber
Definition: drawablemuselement.h:31
CADrawableStaff::lineSpace
double lineSpace()
Definition: drawablestaff.h:31
CADrawSettings
Definition: drawable.h:16
CADrawableStaff::addBarline
void addBarline(CADrawableBarline *barline)
Definition: drawablestaff.cpp:228
CADrawableContext::DrawableStaff
@ DrawableStaff
Definition: drawablecontext.h:21
CADrawableMusElement::DrawableFunctionMarkSupport
@ DrawableFunctionMarkSupport
Definition: drawablemuselement.h:30
CADrawableStaff::_drawableTimeSignatureList
QList< CADrawableTimeSignature * > _drawableTimeSignatureList
Definition: drawablestaff.h:66
CADrawableStaff::calculatePitch
int calculatePitch(double x, double y)
Definition: drawablestaff.cpp:123
CADrawableStaff::addTimeSignature
void addTimeSignature(CADrawableTimeSignature *keySig)
Definition: drawablestaff.cpp:255
CADrawableStaff
Definition: drawablestaff.h:24
CADrawableTimeSignature
Definition: drawabletimesignature.h:17
CADrawable::setHeight
void setHeight(double height)
Definition: drawable.h:74
CADrawable::yPos
double yPos() const
Definition: drawable.h:56
keysignature.h
CADrawableStaff::drawableBarlineList
QList< CADrawableBarline * > & drawableBarlineList()
Definition: drawablestaff.h:55
CADrawableMusElement::drawableMusElementType
CADrawableMusElementType drawableMusElementType()
Definition: drawablemuselement.h:37
CADiatonicPitch::noteName
const int noteName() const
Definition: diatonicpitch.h:50
CADrawableMusElement::DrawableSyllable
@ DrawableSyllable
Definition: drawablemuselement.h:29
CADrawableStaff::removeMElement
int removeMElement(CADrawableMusElement *elt)
Definition: drawablestaff.cpp:312
CADrawableStaff::removeClef
bool removeClef(CADrawableClef *clef)
Definition: drawablestaff.cpp:144
CADrawableMusElement::DrawableBarline
@ DrawableBarline
Definition: drawablemuselement.h:25
CAStaff
Represents a staff in the sheet.
Definition: staff.h:25
CADrawableStaff::xDrawableBarlineLessThan
static bool xDrawableBarlineLessThan(const CADrawableBarline *a, const double x)
Definition: drawablestaff.cpp:208
CADrawableMusElement::DrawableMidiNote
@ DrawableMidiNote
Definition: drawablemuselement.h:21
drawablecontext.h
CADrawableStaff::getKeySignature
CAKeySignature * getKeySignature(double x)
Definition: drawablestaff.cpp:245
CADrawableStaff::addMElement
void addMElement(CADrawableMusElement *elt)
Definition: drawablestaff.cpp:279
CAClef::c1
const int c1()
Definition: clef.h:52
CADrawableMusElement::DrawableFunctionMark
@ DrawableFunctionMark
Definition: drawablemuselement.h:30
CADrawableMusElement::DrawableClef
@ DrawableClef
Definition: drawablemuselement.h:22
CADrawSettings::color
QColor color
Definition: drawable.h:22
CADrawableStaff::addKeySignature
void addKeySignature(CADrawableKeySignature *keySig)
Definition: drawablestaff.cpp:191
CADrawableStaff::getClef
CAClef * getClef(double x)
Definition: drawablestaff.cpp:151
drawablestaff.h
CAKeySignature
Represents a key signature sign in the staff.
Definition: keysignature.h:19
CADrawableMusElement::DrawableTimeSignature
@ DrawableTimeSignature
Definition: drawablemuselement.h:24
CADrawableContext::_drawableMusElementList
QList< CADrawableMusElement * > _drawableMusElementList
Definition: drawablecontext.h:54
CAKeySignature::accidentals
QList< int > & accidentals()
Definition: keysignature.h:56
drawablebarline.h
CADrawableStaff::removeTimeSignature
bool removeTimeSignature(CADrawableTimeSignature *keySig)
Definition: drawablestaff.cpp:265
CADrawableStaff::removeKeySignature
bool removeKeySignature(CADrawableKeySignature *keySig)
Definition: drawablestaff.cpp:201
CADrawSettings::y
int y
Definition: drawable.h:19
CADrawable::height
double height() const
Definition: drawable.h:58
CADrawableContext
Definition: drawablecontext.h:18
timesignature.h
barline.h
drawableclef.h
CANote::diatonicPitch
CADiatonicPitch & diatonicPitch()
Definition: note.h:35
CADrawableStaff::calculateCenterYCoord
double calculateCenterYCoord(int pitch, CAClef *clef)
Definition: drawablestaff.cpp:56
CADrawableMusElement::DrawableSlur
@ DrawableSlur
Definition: drawablemuselement.h:27
CADrawableStaff::drawableTimeSignatureList
QList< CADrawableTimeSignature * > & drawableTimeSignatureList()
Definition: drawablestaff.h:53
drawablekeysignature.h
CABarline
Music element which represents a barline in the score.
Definition: barline.h:17
clef.h
CADrawSettings::z
float z
Definition: drawable.h:17
CAStaff::numberOfLines
int numberOfLines()
Definition: staff.h:30
CADrawableContext::_context
CAContext * _context
Definition: drawablecontext.h:53
CADrawableStaff::getAccs
int getAccs(double x, int pitch)
Definition: drawablestaff.cpp:163
staff.h
drawabletimesignature.h
CADrawableMusElement::DrawableRest
@ DrawableRest
Definition: drawablemuselement.h:20
CADrawableStaff::removeBarline
bool removeBarline(CADrawableBarline *barline)
Definition: drawablestaff.cpp:238
CADrawableMusElement::DrawableAccidental
@ DrawableAccidental
Definition: drawablemuselement.h:26
CADrawableMusElement::DrawableNote
@ DrawableNote
Definition: drawablemuselement.h:19
CADrawableMusElement::DrawableKeySignature
@ DrawableKeySignature
Definition: drawablemuselement.h:23