GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRSingleRest.h
1 #ifndef GRSingleRest_H
2 #define GRSingleRest_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7  Copyright (C) 2002-2017 Grame
8 
9  This Source Code Form is subject to the terms of the Mozilla Public
10  License, v. 2.0. If a copy of the MPL was not distributed with this
11  file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 
13  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
14  research@grame.fr
15 
16 */
17 
18 class ARRest;
19 
20 #include "GRRest.h"
21 #include "GRVisitor.h"
22 
25 class GRSingleRest : public GRRest
26 {
27  public:
28 
29  enum TYPES
30  {
31  P0 = kNoneSymbol,
32  P1 = kP1Symbol,
33  P2 = kP2Symbol,
34  P4 = kP4Symbol, // 165, // SCR_4REST, '\xA5',
35  P8 = kP8Symbol, //97, // SCR_8TREST, 'a',
36  P16 = kP16Symbol, // 64, // SCR_16REST,
37  P32 = kP32Symbol, //174, // SCR_32REST, '\xAE',
38  P64 = kP64Symbol, //108, // SCR_64REST, 'l',
39  P128 = kP128Symbol // 47 // SCR_128REST '\x2F'
40  };
41 
42  GRSingleRest(GRStaff * grstf, const TYPE_DURATION & duration);
43  GRSingleRest(GRStaff * grstf, const ARRest * ar);
44  GRSingleRest(GRStaff * grstf, const ARRest * ar,
45  const TYPE_TIMEPOSITION & date,
46  const TYPE_DURATION & duration,
47  const TYPE_DURATION p_durtemplate = DURATION_0);
48 
49  virtual ~GRSingleRest();
50 
51  virtual void accept (GRVisitor& visitor);
52  virtual void setFillsBar(bool value,GRNotationElement * bar1, GRNotationElement * bar2, bool filled);
53 
54  virtual void OnDraw( VGDevice & hdc ) const;
55  virtual void GetMap( GuidoElementSelector sel, MapCollector& f, MapInfos& infos ) const;
56 
57  virtual void setPosition(const NVPoint & point);
58  virtual void updateBoundingBox();
59 
60  virtual const TYPE_DURATION & getDurTemplate() const { return durtemplate; }
61 
62  virtual int getNumFaehnchen() const;
63  virtual void tellPosition(GObject * caller,const NVPoint & newPosition);
64 
65  virtual const NVPoint & getReferencePosition() const;
66  virtual unsigned int getTextAlign() const;
67 
68  virtual int adjustLength(const TYPE_DURATION & ndur);
69 
70  void setRestFormat(const ARRestFormat * restfrmt);
71 
72  virtual void forceNoteAppearance(NVstring appearance) { mRestAppearance = appearance; };
73  TYPE_DURATION appearance2duration (const NVstring& str) const;
74 
75  protected:
76 
77  void createRest(const TYPE_DURATION & duration);
80  static NVPoint sRefpos;
81 
84 
85  private:
86  NVstring mRestAppearance;
87 
88  void DrawMultiMeasuresRest( VGDevice & hdc, const ARMMRest* mrest ) const;
89  void DrawMultiMeasuresCount( VGDevice & hdc, int count, float x, float y, float ratio, const ARMMRest* mrest ) const;
90  TYPES duration2Type (const TYPE_DURATION& duration) const;
91  float type2YPosition (TYPES type) const;
92  void setTypeAndPos (TYPE_DURATION dur);
93 };
94 
95 #endif
GRVisitor
Definition: GRVisitor.h:39
MapCollector
an abstract class to be provided by clients to collect mappings
Definition: GUIDOScoreMap.h:109
GRSingleRest::updateBoundingBox
virtual void updateBoundingBox()
ARRestFormat
not yet documented
Definition: ARRestFormat.h:42
ARRest
Abstract representation of the rest event.
Definition: ARRest.h:22
GRSingleRest::accept
virtual void accept(GRVisitor &visitor)
GRSingleRest::fFirstbar
GRNotationElement * fFirstbar
Definition: GRSingleRest.h:82
duration
GuidoDate duration(CGRHandler inHandleGR)
Returns the music duration of a score.
GRSingleRest::adjustLength
virtual int adjustLength(const TYPE_DURATION &ndur)
GObject
The base class for all graphic objects.
Definition: GObject.h:54
GRSingleRest::getReferencePosition
virtual const NVPoint & getReferencePosition() const
Retrieves the Symbol-reference-position with respect to the GUIDO-reference-position.
GRSingleRest::P0
Definition: GRSingleRest.h:31
Fraction
Numerator and denominator.
Definition: Fraction.h:23
GRSingleRest::getTextAlign
virtual unsigned int getTextAlign() const
GRSingleRest
Graphical representation of a rest.
Definition: GRSingleRest.h:25
GRSingleRest::createRest
void createRest(const TYPE_DURATION &duration)
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GRSingleRest::setRestFormat
void setRestFormat(const ARRestFormat *restfrmt)
NVPoint
Definition: NVPoint.h:20
GRSingleRest::P64
Definition: GRSingleRest.h:38
GRSingleRest::P4
Definition: GRSingleRest.h:34
GRSingleRest::P2
Definition: GRSingleRest.h:33
GRSingleRest::GRSingleRest
GRSingleRest(GRStaff *grstf, const TYPE_DURATION &duration)
GRSingleRest::P1
Definition: GRSingleRest.h:32
MapInfos
A class to propagate device related information.
Definition: GObject.h:42
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRSingleRest::sRefpos
static NVPoint sRefpos
Definition: GRSingleRest.h:80
GRSingleRest::appearance2duration
TYPE_DURATION appearance2duration(const NVstring &str) const
GRSingleRest::GetMap
virtual void GetMap(GuidoElementSelector sel, MapCollector &f, MapInfos &infos) const
GRSingleRest::~GRSingleRest
virtual ~GRSingleRest()
GRSingleRest::P32
Definition: GRSingleRest.h:37
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRRest
The Rest event.
Definition: GRRest.h:27
GRSingleRest::setFillsBar
virtual void setFillsBar(bool value, GRNotationElement *bar1, GRNotationElement *bar2, bool filled)
GRSingleRest::mType
TYPES mType
Definition: GRSingleRest.h:78
GRSingleRest::getDurTemplate
virtual const TYPE_DURATION & getDurTemplate() const
Definition: GRSingleRest.h:60
GRSingleRest::getNumFaehnchen
virtual int getNumFaehnchen() const
GRSingleRest::TYPES
TYPES
Definition: GRSingleRest.h:29
GRSingleRest::P8
Definition: GRSingleRest.h:35
GRSingleRest::forceNoteAppearance
virtual void forceNoteAppearance(NVstring appearance)
Definition: GRSingleRest.h:72
NVstring
Definition: nvstring.h:21
GRSingleRest::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRSingleRest::durtemplate
TYPE_DURATION durtemplate
Definition: GRSingleRest.h:79
GuidoElementSelector
GuidoElementSelector
Definition: GUIDOScoreMap.h:40
GRSingleRest::P16
Definition: GRSingleRest.h:36
ARMMRest
intended to multiple measures rests
Definition: ARMMRest.h:48
GRSingleRest::P128
Definition: GRSingleRest.h:39
GRSingleRest::tellPosition
virtual void tellPosition(GObject *caller, const NVPoint &newPosition)
GRSingleRest::fSecondbar
GRNotationElement * fSecondbar
Definition: GRSingleRest.h:83
GRSingleRest::setPosition
virtual void setPosition(const NVPoint &point)

Guido Project Copyright © 2019 Grame-CNCM