GUIDOLib  1.7.7
Guido Engine Internal Documentation
GRSymbol.h
1 #ifndef GRSymbol_H
2 #define GRSymbol_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 ARSymbol;
23 class GRStaff;
24 class GRRod;
25 class Bitmap;
26 
28 {
29  bool absolutePath( const char* file ) const;
30  std::string makeAbsolutePath( const std::string& path, const char* file ) const;
31  std::string findFile( const char* file, const std::vector<std::string>& paths ) const;
32 
33 public:
35  {
36  public:
38  virtual ~GRSymbolSaveStruct() {};
39 
44  };
45 
46  GRSymbol( GRStaff *, const ARSymbol * abstractRepresentationOfSymbol );
47  virtual ~GRSymbol();
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 ARSymbol *getARSymbol() const;
56 
57  virtual float getLeftSpace() const;
58  virtual float getRightSpace() const;
59 
60  virtual void setPosition(const NVPoint & inPosition);
61  virtual void setHPosition( float nx );
62 
63 protected:
64 
66  { return new GRSymbolSaveStruct; }
67 
69 };
70 
71 #endif
72 
GRSymbol::setHPosition
virtual void setHPosition(float nx)
ARSymbol
The symbol tag.
Definition: ARSymbol.h:49
GObject
The base class for all graphic objects.
Definition: GObject.h:54
GRSymbol::GRSymbolSaveStruct::boundingBox
NVRect boundingBox
Definition: GRSymbol.h:41
GRSymbol::getLeftSpace
virtual float getLeftSpace() const
GRSymbol::GRSymbolSaveStruct::position
NVPoint position
Definition: GRSymbol.h:38
GRNotationElement
parent class for all notation elements.
Definition: GRNotationElement.h:54
Bitmap
a Bitmap image that can be drawn on the score. (not fully implemented yet)
Definition: Bitmap.h:24
GRSymbol::GRSymbolSaveStruct::positionString
NVstring positionString
Definition: GRSymbol.h:42
GRRod
Used with springs and space-force functions.
Definition: GRRod.h:33
NVPoint
Definition: NVPoint.h:20
GRSymbol::GRSymbolSaveStruct::bitmap
Bitmap * bitmap
Definition: GRSymbol.h:43
GRSymbol::tellPosition
virtual void tellPosition(GObject *caller, const NVPoint &inPosition)
GRPositionTag::GRSaveStruct
Definition: GRPositionTag.h:68
GRSymbol::~GRSymbol
virtual ~GRSymbol()
GRStaff
A GRStaff represents a single line of music.
Definition: GRStaff.h:181
GRSymbol::removeAssociation
virtual void removeAssociation(GRNotationElement *el)
GRSymbol::getRightSpace
virtual float getRightSpace() const
GRPTagARNotationElement
not yet documented
Definition: GRPTagARNotationElement.h:25
GRSymbol::haveToDisplayWarningMsg
bool haveToDisplayWarningMsg
Definition: GRSymbol.h:68
GRSymbol::getNewGRSaveStruct
virtual GRPositionTag::GRSaveStruct * getNewGRSaveStruct()
Definition: GRSymbol.h:65
GRSymbol
Definition: GRSymbol.h:27
GRSymbol::GRSymbolSaveStruct::~GRSymbolSaveStruct
virtual ~GRSymbolSaveStruct()
Definition: GRSymbol.h:38
VGDevice
Generic platform independant drawing device.
Definition: VGDevice.h:68
GRSymbol::OnDraw
virtual void OnDraw(VGDevice &hdc) const
GRSymbol::GRSymbol
GRSymbol(GRStaff *, const ARSymbol *abstractRepresentationOfSymbol)
NVstring
Definition: nvstring.h:21
NVRect
Definition: NVRect.h:22
GRSymbol::GRSymbolSaveStruct
Definition: GRSymbol.h:34
GRSymbol::addAssociation
virtual void addAssociation(GRNotationElement *el)
GRSymbol::GRSymbolSaveStruct::GRSymbolSaveStruct
GRSymbolSaveStruct()
Definition: GRSymbol.h:37
GRSymbol::setPosition
virtual void setPosition(const NVPoint &inPosition)
GRSymbol::getARSymbol
const ARSymbol * getARSymbol() const

Guido Project Copyright © 2019 Grame-CNCM