GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRHarmony.h
1 #ifndef GRHarmony_H
2 #define GRHarmony_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 #include <string>
19 
20 #include "GRPTagARNotationElement.h"
21 
22 class ARHarmony;
23 class GRStaff;
24 class GRRod;
25 class VGFont;
26 
33 {
34 public:
36  {
37  public:
39  virtual ~GRTextSaveStruct() {};
40 
43  std::string text;
44  };
45 
46  GRHarmony( GRStaff *, const ARHarmony * abstractRepresentationOfText );
47  virtual ~GRHarmony();
48 
49  virtual void removeAssociation( GRNotationElement * el );
50  virtual void tellPosition( GObject * caller, const NVPoint & inPosition );
51  virtual void addAssociation( GRNotationElement * el );
52 
53  virtual void OnDraw( VGDevice & hdc ) const;
54 
55  const ARHarmony * getARHarmony() const;
56 
57  virtual unsigned int getTextAlign() const { return mTextAlign; }
58 
59  virtual float getLeftSpace() const;
60  virtual float getRightSpace() const;
61 
62  virtual void setPosition(const NVPoint & inPosition );
63  virtual void setHPosition( float nx );
64  void mustFollowPitch( bool flag ) { mMustFollowPitch = flag; }
65  virtual const GRHarmony * isGRHarmony() const { return this; }
66 
67 protected:
68 
70 
71  unsigned int mTextAlign;
72  bool mMustFollowPitch; // (when the text tag has a range)
73 
74 private:
75  void DrawHarmonyString (VGDevice & hdc, const VGFont* font, const std::string& str, float x, float y) const;
76  float CharExtend (const char* c, const VGFont* font, VGDevice* hdc) const;
77 
78  const VGFont* fFont = 0;
79 };
80 
81 #endif
82 
GRHarmony::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRHarmony::~GRHarmony
virtual ~GRHarmony()
GRHarmony::GRTextSaveStruct::text
std::string text
Definition: GRHarmony.h:43
GObject
The base class for all graphic objects.
Definition: GObject.h:54
GRHarmony::removeAssociation
virtual void removeAssociation(GRNotationElement *el)
ARHarmony
The text tag.
Definition: ARHarmony.h:50
GRHarmony
A chord symbol string.
Definition: GRHarmony.h:32
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
GRHarmony::GRTextSaveStruct::boundingBox
NVRect boundingBox
Definition: GRHarmony.h:42
GRRod
Used with springs and space-force functions.
Definition: GRRod.h:33
NVPoint
Definition: NVPoint.h:20
GRHarmony::getNewGRSaveStruct
virtual GRPositionTag::GRSaveStruct * getNewGRSaveStruct()
Definition: GRHarmony.h:69
GRHarmony::GRTextSaveStruct
Definition: GRHarmony.h:35
GRHarmony::GRHarmony
GRHarmony(GRStaff *, const ARHarmony *abstractRepresentationOfText)
GRPositionTag::GRSaveStruct
Definition: GRPositionTag.h:68
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRHarmony::mTextAlign
unsigned int mTextAlign
Definition: GRHarmony.h:71
GRPTagARNotationElement
not yet documented
Definition: GRPTagARNotationElement.h:25
GRHarmony::mMustFollowPitch
bool mMustFollowPitch
Definition: GRHarmony.h:72
GRHarmony::GRTextSaveStruct::GRTextSaveStruct
GRTextSaveStruct()
Definition: GRHarmony.h:38
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRHarmony::mustFollowPitch
void mustFollowPitch(bool flag)
Definition: GRHarmony.h:64
GRHarmony::setPosition
virtual void setPosition(const NVPoint &inPosition)
GRHarmony::getLeftSpace
virtual float getLeftSpace() const
GRHarmony::getTextAlign
virtual unsigned int getTextAlign() const
Definition: GRHarmony.h:57
GRHarmony::GRTextSaveStruct::position
NVPoint position
Definition: GRHarmony.h:39
NVRect
Definition: NVRect.h:22
GRHarmony::addAssociation
virtual void addAssociation(GRNotationElement *el)
VGFont
Generic pure virtual & device-independant font class.
Definition: VGFont.h:36
GRHarmony::getARHarmony
const ARHarmony * getARHarmony() const
GRHarmony::setHPosition
virtual void setHPosition(float nx)
GRHarmony::tellPosition
virtual void tellPosition(GObject *caller, const NVPoint &inPosition)
GRHarmony::getRightSpace
virtual float getRightSpace() const
GRHarmony::isGRHarmony
virtual const GRHarmony * isGRHarmony() const
Definition: GRHarmony.h:65
GRHarmony::GRTextSaveStruct::~GRTextSaveStruct
virtual ~GRTextSaveStruct()
Definition: GRHarmony.h:39

Guido Project Copyright © 2019 Grame-CNCM