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

Represents the attributes of a Finale "textBlock". More...

#include <Others.h>

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

Public Types

enum class  TextType { Block , Expression }
 Enum for textTag values. More...
 
using TextJustify = options::TextOptions::TextJustify
 justification options
 
- 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.
 

Public Member Functions

 TextBlock (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
 Constructor function.
 
util::EnigmaParsingContext getRawTextCtx (Cmper forPartId, std::optional< Cmper > forPageId=std::nullopt, util::EnigmaString::TextInsertCallback defaultInsertFunc=util::EnigmaString::defaultInsertsCallback) const
 Gets the raw text block context (from the texts pool) based on textType.
 
- Public Member Functions inherited from musx::dom::OthersBase
 OthersBase (const OthersBase &)=default
 explicit default copy constructor
 
 OthersBase (OthersBase &&) noexcept=default
 explicit default move constructor
 
Cmper getCmper () const
 Gets the cmper key value.
 
std::optional< IncigetInci () const
 Gets the optional array index (inci).
 
Cmper getRequestedPartId () const
 If this instance was retrieved from an object pool, it contains the part ID that was used to retrieve it. If this value is different than getSourcePartId, then this instance is a copy of the pool instance.
 
- 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 getSourcePartId () const
 Gets the source partId for this instance. If an instance is fully shared with the score, the source is SCORE_PARTID. If an instance is partially shared or non shared, the source is the ID of the part that sourced it.
 
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 (const std::shared_ptr< Base > &ptrToThis)
 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.
 
virtual bool requireAllFields () const
 Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class.
 

Static Public Member Functions

static std::string getText (const DocumentPtr &document, const Cmper textId, Cmper forPartId, bool trimTags=false, util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii)
 return displayable text with Enigma tags removed
 
static const xml::XmlElementArray< TextBlock > & xmlMappingArray ()
 Required for musx::factory::FieldPopulator.
 

Public Attributes

Cmper textId {}
 Cmper of the text block. (xml tag is <textID>)
 
Cmper shapeId {}
 If non-zero, the Cmper of the custom frame shape. (xml tag is <shapeID>)
 
Evpu width {}
 Width of standard frame. If zero, the width expands to fit the text.
 
Evpu height {}
 Height of standard frame. If zero, the height expands to fit the text.
 
int lineSpacingPercentage {}
 Line spacing percentage.
 
Evpu xAdd {}
 Horizontal offset from handle.
 
Evpu yAdd {}
 Vertical offset from handle.
 
TextJustify justify {}
 Justification (left, center, right, full, force full)
 
bool newPos36 {}
 
bool showShape {}
 Show shape.
 
bool noExpandSingleWord {}
 Do not expand single word.
 
bool wordWrap {}
 Wrap words (in frames)
 
Efix inset {}
 Text inset from frame (all sides)
 
Efix stdLineThickness {}
 Thickness of standard frame line. (xml tag is <stdLine>)
 
bool roundCorners {}
 Use rounded corners on frame.
 
Efix cornerRadius {}
 Corner radius for rounded corners.
 
TextType textType {}
 Text tag indicating the type of text block. (xml tag is <textTag>)
 

Static Public Attributes

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

Additional Inherited Members

- 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.
 
OthersBaseoperator= (const OthersBase &other)
 Assignment operator delegates to base, preserving OthersBase state.
 
OthersBaseoperator= (OthersBase &&other) noexcept
 Assignment operator delegates to base, preserving OthersBase state.
 
- Protected Member Functions inherited from musx::dom::Base
 Base (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode)
 Constructs the base class.
 
 Base (const Base &)=default
 explicit default copy constructor
 
 Base (Base &&) noexcept=default
 explicit default move constructor
 
Baseoperator= (const Base &)
 no-op copy assignment operator allows subclasses to copy their values.
 
Baseoperator= (Base &&) noexcept
 no-op move assignment operator allows subclasses to move their values.
 

Detailed Description

Represents the attributes of a Finale "textBlock".

The cmper is the textBlock ID, representing unique text blocks in the Finale document. This class is identified by the XML node name "textBlock".

Member Enumeration Documentation

◆ TextType

Enum for textTag values.

Enumerator
Block 

textId is a Cmper for a texts::BlockText

Expression 

textId is a Cmper for a texts::ExpressionText

Member Function Documentation

◆ getRawTextCtx()

util::EnigmaParsingContext musx::dom::others::TextBlock::getRawTextCtx ( Cmper  forPartId,
std::optional< Cmper forPageId = std::nullopt,
util::EnigmaString::TextInsertCallback  defaultInsertFunc = util::EnigmaString::defaultInsertsCallback 
) const

Gets the raw text block context (from the texts pool) based on textType.

Parameters
forPartIdThe linked part to use for ^partname and ^totpages inserts
forPageIdThe default value to use for ^page inserts. If omitted, the default value is "#", which mimics Finale's behavior.
defaultInsertFuncThe default text insert replacement function for this context. This function is called if the function supplied to util::EnigmaParsingContext::parseEnigmaText returns std::nullopt.

Member Data Documentation

◆ newPos36

bool musx::dom::others::TextBlock::newPos36 {}

"Position from Edge of Frame" compatibility setting. Best guess is that blocks created before Finale 3.6 do not have this set. It affects the vertical position of the baseline relative to the block's frame (and handle).