Canorus  0.0
mark.h
Go to the documentation of this file.
1 
8 #ifndef MARK_H_
9 #define MARK_H_
10 
11 #include "score/muselement.h"
12 
13 class CAContext;
14 
15 class CAMark : public CAMusElement {
16 public:
17  enum CAMarkType {
18  Undefined = -1,
31  Fingering
32  };
33 
34  CAMark( CAMarkType type, CAMusElement *associatedElt, int timeStart=-1, int timeLength=-1 );
36  virtual ~CAMark();
37 
38  virtual CAMark *clone(CAContext* context) { CAMark* c = clone(); c->setContext(context); return c; }
39  virtual CAMark *clone(CAMusElement* elt=0);
40  virtual int compare( CAMusElement* elt );
41 
43  inline void setAssociatedElement( CAMusElement* elt ) { _associatedElt = elt; if(elt) _context = elt->context(); }
44 
45  inline CAMarkType markType() { return _markType; }
46  inline void setMarkType( CAMarkType type ) { _markType = type; }
47 
48  inline bool isCommon() { return _common; }
49 
50  static const QString markTypeToString( CAMarkType t );
51  static CAMarkType markTypeFromString( const QString s );
52 
53 protected:
54  inline void setCommon( bool c ) { _common=c; }
55 
56 private:
59  bool _common; // is mark assigned to a single element only or the whole chord - depends who deletes it!
60 };
61 
62 #endif /* MARK_H_ */
CAMark::setAssociatedElement
void setAssociatedElement(CAMusElement *elt)
Definition: mark.h:43
CAMark::CAMarkType
CAMarkType
Definition: mark.h:17
CAMark::Crescendo
@ Crescendo
Definition: mark.h:23
CAMusElement::context
CAContext * context()
Definition: muselement.h:48
CAMusElement::setMusElementType
void setMusElementType(CAMusElementType type)
Definition: muselement.h:85
CAMusElement::Mark
@ Mark
Definition: muselement.h:37
note.h
CAMark::Pedal
@ Pedal
Definition: mark.h:24
CAMark::isCommon
bool isCommon()
Definition: mark.h:48
CAMusElement::_context
CAContext * _context
Definition: muselement.h:90
CAMark::RehersalMark
@ RehersalMark
Definition: mark.h:27
CAMark::~CAMark
virtual ~CAMark()
Definition: mark.cpp:126
CAMark::Tempo
@ Tempo
Definition: mark.h:20
CAMusElement::removeMark
void removeMark(CAMark *mark)
Definition: muselement.h:73
CAMusElement::setContext
void setContext(CAContext *context)
Definition: muselement.h:49
CAMark::RepeatMark
@ RepeatMark
Definition: mark.h:29
CAMark::markType
CAMarkType markType()
Definition: mark.h:45
CAMark::Fingering
@ Fingering
Definition: mark.h:31
CAMark::compare
virtual int compare(CAMusElement *elt)
Definition: mark.cpp:136
CAMark::markTypeToString
static const QString markTypeToString(CAMarkType t)
Definition: mark.cpp:44
CAMusElement::timeLength
virtual int timeLength() const
Definition: muselement.h:53
CAMark::Articulation
@ Articulation
Definition: mark.h:30
CAMark::Ritardando
@ Ritardando
Definition: mark.h:21
CAMark::clone
virtual CAMark * clone(CAContext *context)
Definition: mark.h:38
CAMark::_common
bool _common
Definition: mark.h:59
CAMusElement
An abstract class which represents every music element in the score.
Definition: muselement.h:21
CAMark::setMarkType
void setMarkType(CAMarkType type)
Definition: mark.h:46
CAMark::InstrumentChange
@ InstrumentChange
Definition: mark.h:25
CAMark::setCommon
void setCommon(bool c)
Definition: mark.h:54
CAMark::CAMark
CAMark(CAMarkType type, CAMusElement *associatedElt, int timeStart=-1, int timeLength=-1)
Definition: mark.cpp:19
CAMark::_markType
CAMarkType _markType
Definition: mark.h:58
CAMusElement::timeStart
virtual int timeStart() const
Definition: muselement.h:51
muselement.h
CAContext
Line of music elements in the sheet.
Definition: context.h:16
CAMark
Marks that depend on other music elements.
Definition: mark.h:15
CAMark::Undefined
@ Undefined
Definition: mark.h:18
CAMark::markTypeFromString
static CAMarkType markTypeFromString(const QString s)
Definition: mark.cpp:82
CAMark::_associatedElt
CAMusElement * _associatedElt
Definition: mark.h:57
CAMark::Fermata
@ Fermata
Definition: mark.h:28
CAMark::Text
@ Text
Definition: mark.h:19
CAMark::Dynamic
@ Dynamic
Definition: mark.h:22
CAMusElement::musElementType
CAMusElementType musElementType()
Definition: muselement.h:46
mark.h
CAMark::BookMark
@ BookMark
Definition: mark.h:26
CAMark::associatedElement
CAMusElement * associatedElement()
Definition: mark.h:42