MUSX Document Model
Loading...
Searching...
No Matches
musx::dom::others::ShapeExpressionDef Class Reference

Stores the properties and behaviors of shape expressions. More...

#include <Others.h>

+ Inheritance diagram for musx::dom::others::ShapeExpressionDef:

Public Member Functions

 ShapeExpressionDef (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
 Constructor.
 
bool requireAllFields () const override
 Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class.
 
- Public Member Functions inherited from musx::dom::OthersBase
Cmper getCmper () const
 Gets the cmper key value.
 
std::optional< IncigetInci () const
 Gets the optional array index (inci).
 
- Public Member Functions inherited from musx::dom::Base
virtual ~Base () noexcept(false)=default
 Virtual destructor for polymorphic behavior.
 
DocumentPtr getDocument () const
 Gets a reference to the Document.
 
Cmper getPartId () const
 Gets the partId for this instance (or 0 for score)
 
std::shared_ptr< others::PartDefinitiongetPartDefinition () const
 Gets the others::PartDefinition corresponding to getPartId.
 
ShareMode getShareMode () const
 Gets the sharing mode for this instance.
 
const SharedNodesgetUnlinkedNodes () const
 Gets the unlinked nodes for this instance. (Only populated for ShareMode::Partial)
 
void addUnlinkedNode (const std::string &nodeName)
 Adds a shared node for this instance.
 
virtual void integrityCheck ()
 Allows a class to determine if it has been properly contructed by the factory and fix issues that it can, such as creating default instances of contained classes.
 

Static Public Member Functions

static const xml::XmlElementArray< ShapeExpressionDef > & xmlMappingArray ()
 Required for musx::factory::FieldPopulator.
 

Public Attributes

Cmper shapeDef {}
 Identifier for the Shape Designer ShapeDef associated with this expression.
 
Cmper categoryId {}
 Identifier for the category of the text expression. (xml node is "categoryID")
 
RehearsalMarkStyle rehearsalMarkStyle {}
 Auto-sequencing style for rehearsal marks.
 
int value {}
 Value associated with the expression (e.g., velocity).
 
int auxData1 {}
 Auxiliary data for the expression. (xml node is "auxdata1")
 
int playPass {}
 "Play Only on Pass" value.
 
bool breakMmRest {}
 Whether the text breaks multimeasure rests.
 
bool useAuxData {}
 Whether auxiliary data is used.
 
bool masterShape {}
 Whether this expression references the master copy of the shape.
 
bool noPrint {}
 Inverse of "Hidden" checkbox.
 
bool noHorzStretch {}
 Inverse of "Allow Horizontal Stretching" checkbox.
 
PlaybackType playbackType {}
 Playback behavior of the text expression.
 
HorizontalMeasExprAlign horzMeasExprAlign {}
 Horizontal alignment of the expression.
 
VerticalMeasExprAlign vertMeasExprAlign {}
 Vertical alignment of the expression.
 
HorizontalTextJustification horzExprJustification {}
 Horizontal justification of the text expression.
 
Evpu measXAdjust {}
 Horizontal adjustment for measurement alignment.
 
Evpu yAdjustEntry {}
 Vertical adjustment for entry alignment.
 
Evpu yAdjustBaseline {}
 Vertical adjustment for baseline alignment.
 
bool useCategoryPos {}
 Whether to use category position.
 
std::string description
 Description of the text expression. (xml node is "descStr")
 

Static Public Attributes

static constexpr std::string_view XmlNodeName = "shapeExprDef"
 The XML node name for this type.
 

Additional Inherited Members

- Public Types inherited from musx::dom::Base
enum class  ShareMode { All , Partial , None }
 Describes how this instance is shared between part and score. More...
 
using SharedNodes = std::set< std::string >
 The container type for shared nodes.
 
- Protected Member Functions inherited from musx::dom::OthersBase
 OthersBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, std::optional< Inci > inci=std::nullopt)
 Constructs an OthersBase object.
 
- Protected Member Functions inherited from musx::dom::Base
 Base (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode)
 Constructs the base class and enforces the static constexpr XmlNodeName.
 
Baseoperator= (const Base &)
 assignment constructor: m_unlinkedNodes is intentionally omitted
 

Detailed Description

Stores the properties and behaviors of shape expressions.

This class is identified by the XML node name "shapeExprDef".

Constructor & Destructor Documentation

◆ ShapeExpressionDef()

musx::dom::others::ShapeExpressionDef::ShapeExpressionDef ( const DocumentWeakPtr document,
Cmper  partId,
ShareMode  shareMode,
Cmper  cmper 
)
inlineexplicit

Constructor.

Initializes all fields to their default values.

Member Function Documentation

◆ requireAllFields()

bool musx::dom::others::ShapeExpressionDef::requireAllFields ( ) const
inlineoverridevirtual

Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class.

Some classes make it difficult to discover all the possible xml tags that might be used for all its options. An example is others::TextBlock. By overriding this function, a class can allow its members to be discovered as needed without causing error messages or throwing exceptions.

Remarks
This value only escapes errors on fields. Enum values must still have all values provided to avoid error messages or exceptions.

Reimplemented from musx::dom::Base.