|
MUSX Document Model
|
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< Inci > | getInci () 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 SharedNodes & | getUnlinkedNodes () 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. | |
| OthersBase & | operator= (const OthersBase &other) |
| Assignment operator delegates to base, preserving OthersBase state. | |
| OthersBase & | operator= (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 | |
| Base & | operator= (const Base &) |
| no-op copy assignment operator allows subclasses to copy their values. | |
| Base & | operator= (Base &&) noexcept |
| no-op move assignment operator allows subclasses to move their values. | |
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".
|
strong |
Enum for textTag values.
| Enumerator | |
|---|---|
| Block | textId is a Cmper for a texts::BlockText |
| Expression | textId is a Cmper for a texts::ExpressionText |
| 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.
| forPartId | The linked part to use for ^partname and ^totpages inserts |
| forPageId | The default value to use for ^page inserts. If omitted, the default value is "#", which mimics Finale's behavior. |
| defaultInsertFunc | The default text insert replacement function for this context. This function is called if the function supplied to util::EnigmaParsingContext::parseEnigmaText returns std::nullopt. |
| 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).