MUSX Document Model
|
Base class for all text blocks. More...
#include <BaseClasses.h>
Public Member Functions | |
TextsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper textNumber) | |
Constructs a TextsBase object. | |
Cmper | getTextNumber () const |
Returns the raw text number. | |
void | setTextNumber (Cmper textNumber) |
Sets the raw text number. | |
util::EnigmaParsingContext | getRawTextCtx (const MusxInstance< TextsBase > &ptrToThis, Cmper forPartId, std::optional< Cmper > forPageId=std::nullopt, util::EnigmaString::TextInsertCallback defaultInsertFunc=util::EnigmaString::defaultInsertsCallback) const |
Gets the raw text block. | |
![]() | |
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. | |
Public Attributes | |
std::string | text |
Raw Enigma string (with Enigma string tags), encoded UTF-8. | |
Additional Inherited Members | |
![]() | |
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. | |
![]() | |
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. | |
Base class for all text blocks.
Options types derive from this base class so they can reside in the text pool.
|
inline |
Constructs a TextsBase
object.
document | A weak pointer to the parent document |
partId | Always 0, but this parameter is needed for the generic factory routine |
shareMode | Always ShareMode::All , but this parameter is needed for the generic factory routine. |
textNumber | The text number (Cmper ). |
util::EnigmaParsingContext musx::dom::TextsBase::getRawTextCtx | ( | const MusxInstance< TextsBase > & | ptrToThis, |
Cmper | forPartId, | ||
std::optional< Cmper > | forPageId = std::nullopt , |
||
util::EnigmaString::TextInsertCallback | defaultInsertFunc = util::EnigmaString::defaultInsertsCallback |
||
) | const |
Gets the raw text block.
ptrToThis | MusxInstance ptr to this (to avoid need for shared_for_this) |
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. |