Canorus  0.0
drawablefunctionmark.h
Go to the documentation of this file.
1 
8 #ifndef DRAWABLEFUNCTIONMARK_H_
9 #define DRAWABLEFUNCTIONMARK_H_
10 
12 #include "score/functionmark.h"
13 
14 class CAFunctionMark;
16 
18 public:
19  CADrawableFunctionMark(CAFunctionMark *function, CADrawableFunctionMarkContext *context, double x, double y);
21 
22  void draw(QPainter *p, const CADrawSettings s);
24 
27 
29  void setExtenderLineVisible(bool visible) { _extenderLineVisible = visible; }
31  void setExtenderLineOnly( bool line ) { _extenderLineOnly = line; }
32 
33 private:
34  bool _extenderLineVisible; // Should the function draw a horizontal line until the end of the function
35  QString _text; // Function transformed to String which is rendered then
36  bool _extenderLineOnly; // Only extender line should be rendered over the whole width of the function
37 };
38 
40 public:
42  Key,
48  };
49  // Key constructor
50  CADrawableFunctionMarkSupport(CADrawableFunctionMarkSupportType, const QString key, CADrawableContext *c, double x, double y);
51  // Rectangle, ChordArea, Tonicization, Ellipse constructor
53  // Alterations consructor
55 
57 
58  void draw(QPainter *p, const CADrawSettings s);
61 
63  void setExtenderLineVisible(bool visible) { _extenderLineVisible = visible; }
64  bool rectWider() { return _rectWider; }
65  void setRectWider(bool wider) { if (!_rectWider) { _rectWider = wider; _yPos -= 3; _height += 6; } }
66 
67 private:
69  QString _key;
70  CADrawableFunctionMark *_function1, *_function2; // Tonicization's start/end functions
71  bool _extenderLineVisible; // Extender line when tonicization used after
72  bool _rectWider; // Is rectangle wider in height. Default: false. Useful when doing a series of modulations where you don't know which rectangle belongs to which function. Every 2nd rectangle is then a bit higher than the others.
73 };
74 
75 #endif /* DRAWABLEFUNCTIONMARK_H_ */
CAFunctionMark::VII
@ VII
Definition: functionmark.h:28
CADrawableFunctionMarkSupport::setExtenderLineVisible
void setExtenderLineVisible(bool visible)
Definition: drawablefunctionmark.h:63
CADrawableFunctionMarkSupport::_extenderLineVisible
bool _extenderLineVisible
Definition: drawablefunctionmark.h:71
CADrawSettings::x
int x
Definition: drawable.h:18
CADrawableMusElement
Definition: drawablemuselement.h:16
CADrawable::_width
double _width
Definition: drawable.h:88
CAFunctionMark::addedDegrees
QList< int > addedDegrees()
Definition: functionmark.h:50
CADrawableMusElement::_drawableMusElementType
CADrawableMusElementType _drawableMusElementType
Definition: drawablemuselement.h:46
CAFunctionMark::isChordAreaMinor
bool isChordAreaMinor()
Definition: functionmark.h:67
CADrawableFunctionMark::isExtenderLineVisible
bool isExtenderLineVisible()
Definition: drawablefunctionmark.h:28
CAFunctionMark::D
@ D
Definition: functionmark.h:31
CADrawable::xPos
double xPos() const
Definition: drawable.h:55
CADrawableFunctionMarkSupport::_key
QString _key
Definition: drawablefunctionmark.h:69
CADrawableFunctionMark::drawableFunctionMarkContext
CADrawableFunctionMarkContext * drawableFunctionMarkContext()
Definition: drawablefunctionmark.h:26
CADrawableFunctionMark::setExtenderLineOnly
void setExtenderLineOnly(bool line)
Definition: drawablefunctionmark.h:31
CADrawable::setWidth
void setWidth(double width)
Definition: drawable.h:73
CADrawableFunctionMarkSupport::setRectWider
void setRectWider(bool wider)
Definition: drawablefunctionmark.h:65
CAFunctionMark::K
@ K
Definition: functionmark.h:35
CADrawable::setXPos
void setXPos(double xPos)
Definition: drawable.h:71
CADrawableFunctionMark::functionMark
CAFunctionMark * functionMark()
Definition: drawablefunctionmark.h:25
CADrawableFunctionMark::~CADrawableFunctionMark
~CADrawableFunctionMark()
Definition: drawablefunctionmark.cpp:88
CADrawable::_xPos
double _xPos
Definition: drawable.h:86
CADrawableFunctionMarkSupport::isExtenderLineVisible
bool isExtenderLineVisible()
Definition: drawablefunctionmark.h:62
CADrawableFunctionMarkSupport::drawableFunctionMarkSupportType
CADrawableFunctionMarkSupportType drawableFunctionMarkSupportType()
Definition: drawablefunctionmark.h:60
CAFunctionMark::Undefined
@ Undefined
Definition: functionmark.h:21
CADrawableFunctionMarkSupport
Rectangles, key names, numbers below/above function, lines etc. Support class which draws the key of ...
Definition: drawablefunctionmark.h:39
CADrawableFunctionMarkContext
Definition: drawablefunctionmarkcontext.h:15
drawablefunctionmarkcontext.h
CADrawSettings
Definition: drawable.h:16
CADrawableMusElement::_drawableContext
CADrawableContext * _drawableContext
Definition: drawablemuselement.h:47
CADrawableFunctionMarkSupport::_rectWider
bool _rectWider
Definition: drawablefunctionmark.h:72
CADrawableFunctionMarkSupport::Key
@ Key
Definition: drawablefunctionmark.h:42
CADrawableFunctionMark
The drawable instance of the function mark. These music elements are ordinary music elements selectab...
Definition: drawablefunctionmark.h:17
CAFunctionMark
Represents a function mark in the score.
Definition: functionmark.h:18
CADrawableFunctionMarkSupport::CADrawableFunctionMarkSupportType
CADrawableFunctionMarkSupportType
Definition: drawablefunctionmark.h:41
CADrawableFunctionMarkSupport::Rectangle
@ Rectangle
Definition: drawablefunctionmark.h:43
CADrawableFunctionMark::draw
void draw(QPainter *p, const CADrawSettings s)
Definition: drawablefunctionmark.cpp:92
CADrawableMusElement::DrawableFunctionMarkSupport
@ DrawableFunctionMarkSupport
Definition: drawablemuselement.h:30
CADrawable::_yPos
double _yPos
Definition: drawable.h:87
CAFunctionMark::II
@ II
Definition: functionmark.h:23
functionmark.h
CADrawableFunctionMarkSupport::_function1
CADrawableFunctionMark * _function1
Definition: drawablefunctionmark.h:70
CADrawable::setHeight
void setHeight(double height)
Definition: drawable.h:74
CADrawableFunctionMarkSupport::rectWider
bool rectWider()
Definition: drawablefunctionmark.h:64
CAFunctionMark::chordArea
CAFunctionType chordArea()
Definition: functionmark.h:47
CADrawableFunctionMark::CADrawableFunctionMark
CADrawableFunctionMark(CAFunctionMark *function, CADrawableFunctionMarkContext *context, double x, double y)
Definition: drawablefunctionmark.cpp:24
CADrawable::yPos
double yPos() const
Definition: drawable.h:56
CAFunctionMark::N
@ N
Definition: functionmark.h:33
CAFunctionMark::L
@ L
Definition: functionmark.h:34
drawablemuselement.h
CAFunctionMark::isTonicDegreeMinor
bool isTonicDegreeMinor()
Definition: functionmark.h:68
CAFunctionMark::VI
@ VI
Definition: functionmark.h:27
CADrawableFunctionMarkSupport::_function2
CADrawableFunctionMark * _function2
Definition: drawablefunctionmark.h:70
CAFunctionMark::IV
@ IV
Definition: functionmark.h:25
CADrawableFunctionMark::isExtenderLineOnly
bool isExtenderLineOnly()
Definition: drawablefunctionmark.h:30
CAFunctionMark::alteredDegrees
QList< int > alteredDegrees()
Definition: functionmark.h:49
CADrawable::clone
virtual CADrawable * clone()
Definition: drawable.cpp:23
CADrawableFunctionMarkSupport::draw
void draw(QPainter *p, const CADrawSettings s)
Definition: drawablefunctionmark.cpp:260
CADrawableFunctionMarkSupport::Ellipse
@ Ellipse
Definition: drawablefunctionmark.h:46
CAFunctionMark::V
@ V
Definition: functionmark.h:26
CAFunctionMark::CAFunctionType
CAFunctionType
Definition: functionmark.h:20
CAFunctionMark::III
@ III
Definition: functionmark.h:24
CAFunctionMark::function
CAFunctionType function()
Definition: functionmark.h:45
CADrawableFunctionMarkSupport::_drawableFunctionMarkSupportType
CADrawableFunctionMarkSupportType _drawableFunctionMarkSupportType
Definition: drawablefunctionmark.h:68
CADrawableMusElement::DrawableFunctionMark
@ DrawableFunctionMark
Definition: drawablemuselement.h:30
CAFunctionMark::T
@ T
Definition: functionmark.h:29
CADrawableFunctionMarkSupport::Alterations
@ Alterations
Definition: drawablefunctionmark.h:47
CADrawSettings::color
QColor color
Definition: drawable.h:22
CADrawableMusElement::_musElement
CAMusElement * _musElement
Definition: drawablemuselement.h:48
CADrawable::setSelectable
void setSelectable(bool s)
Definition: drawable.h:78
CADrawableMusElement::setDrawableMusElementType
void setDrawableMusElementType(CADrawableMusElementType t)
Definition: drawablemuselement.h:44
CADrawableFunctionMarkSupport::Tonicization
@ Tonicization
Definition: drawablefunctionmark.h:45
drawablefunctionmark.h
CADrawableFunctionMark::_text
QString _text
Definition: drawablefunctionmark.h:35
CADrawSettings::y
int y
Definition: drawable.h:19
CADrawable::width
double width() const
Definition: drawable.h:57
CAFunctionMark::tonicDegree
CAFunctionType tonicDegree()
Definition: functionmark.h:48
CADrawable::height
double height() const
Definition: drawable.h:58
CADrawableContext
Definition: drawablecontext.h:18
CADrawableFunctionMarkSupport::CADrawableFunctionMarkSupport
CADrawableFunctionMarkSupport(CADrawableFunctionMarkSupportType, const QString key, CADrawableContext *c, double x, double y)
Definition: drawablefunctionmark.cpp:130
CADrawableFunctionMarkSupport::~CADrawableFunctionMarkSupport
~CADrawableFunctionMarkSupport()
Definition: drawablefunctionmark.cpp:257
CADrawableFunctionMarkSupport::ChordArea
@ ChordArea
Definition: drawablefunctionmark.h:44
CADrawSettings::z
float z
Definition: drawable.h:17
CADrawable::_height
double _height
Definition: drawable.h:89
CADrawableFunctionMark::_extenderLineVisible
bool _extenderLineVisible
Definition: drawablefunctionmark.h:34
CADrawableFunctionMark::setExtenderLineVisible
void setExtenderLineVisible(bool visible)
Definition: drawablefunctionmark.h:29
CAFunctionMark::I
@ I
Definition: functionmark.h:22
CAFunctionMark::F
@ F
Definition: functionmark.h:32
CAFunctionMark::S
@ S
Definition: functionmark.h:30
CADrawableFunctionMark::_extenderLineOnly
bool _extenderLineOnly
Definition: drawablefunctionmark.h:36