Verovio
Source code documentation
controlelement.h
1 // Name: controlelement.h
3 // Author: Laurent Pugin
4 // Created: 2015
5 // Copyright (c) Authors and others. All rights reserved.
7 
8 #ifndef __VRV_CONTROL_ELEMENT_H__
9 #define __VRV_CONTROL_ELEMENT_H__
10 
11 #include "altsyminterface.h"
12 #include "atts_shared.h"
13 #include "atts_visual.h"
14 #include "devicecontextbase.h"
15 #include "floatingobject.h"
16 #include "linkinginterface.h"
17 #include "offsetinterface.h"
18 
19 namespace vrv {
20 
21 //----------------------------------------------------------------------------
22 // ControlElement
23 //----------------------------------------------------------------------------
24 
30  public AltSymInterface,
31  public LinkingInterface,
32  public OffsetInterface,
33  public AttColor,
34  public AttLabelled,
35  public AttTyped {
36 public:
43  ControlElement(ClassId classId);
44  virtual ~ControlElement();
45  void Reset() override;
47 
52  AltSymInterface *GetAltSymInterface() override { return vrv_cast<AltSymInterface *>(this); }
53  const AltSymInterface *GetAltSymInterface() const override { return vrv_cast<const AltSymInterface *>(this); }
54  LinkingInterface *GetLinkingInterface() override { return vrv_cast<LinkingInterface *>(this); }
55  const LinkingInterface *GetLinkingInterface() const override { return vrv_cast<const LinkingInterface *>(this); }
56  OffsetInterface *GetOffsetInterface() override { return vrv_cast<OffsetInterface *>(this); }
57  const OffsetInterface *GetOffsetInterface() const override { return vrv_cast<const OffsetInterface *>(this); }
59 
63  data_HORIZONTALALIGNMENT GetChildRendAlignment() const;
64 
70  data_STAFFREL GetLayerPlace(data_STAFFREL defaultValue) const;
71 
72  //----------//
73  // Functors //
74  //----------//
75 
80  FunctorCode Accept(Functor &functor) override;
81  FunctorCode Accept(ConstFunctor &functor) const override;
82  FunctorCode AcceptEnd(Functor &functor) override;
83  FunctorCode AcceptEnd(ConstFunctor &functor) const override;
85 
86 private:
87  //
88 public:
89  //
90 private:
91  //
92 };
93 
94 } // namespace vrv
95 
96 #endif
This class is an interface for elements having a @altsym It is not an abstract class but should not b...
Definition: altsyminterface.h:30
This abstract class is the base class for all const functors.
Definition: functor.h:126
This class represents elements appearing within a measure.
Definition: controlelement.h:35
data_STAFFREL GetLayerPlace(data_STAFFREL defaultValue) const
Check if the ControlElement applies at a point where there is more than on layer.
data_HORIZONTALALIGNMENT GetChildRendAlignment() const
Check if the ControlElement has a Rend child and return its @halign equivalent (if any)
void Reset() override
Virtual reset method.
FunctorCode Accept(Functor &functor) override
Interface for class functor visitation.
This class represents elements appearing within a measure.
Definition: floatingobject.h:28
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class is an interface for elements having a link It is not an abstract class but should not be i...
Definition: linkinginterface.h:31
This class is an interface for elements having a single visual offset, such as arpeg,...
Definition: offsetinterface.h:28