|
MUSX Document Model
|
Base class for lyrics text. More...
#include <Texts.h>
Inheritance diagram for musx::dom::texts::LyricsTextBase:Public Member Functions | |
| bool | iterateStylesForSyllable (size_t syllableIndex, util::EnigmaString::TextChunkCallback callback) const |
| Parse a given syllable into chunks with EnigmaStyles for that chunk. In the most common case, the callback is called exactly once. However, this design allows for detecting uncommon cases of style changes within a syllable. | |
| void | createSyllableInfo (const MusxInstance< TextsBase > &ptrToThis) |
| Creates the syllables array. Used by the factory but available at any time. | |
| TextsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper textNumber) | |
Constructs a TextsBase object. | |
Public Member Functions inherited from musx::dom::TextsBase | |
| 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. | |
Public Member Functions inherited from musx::dom::EnigmaBase | |
| 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< EnigmaBase > &ptrToThis) |
| Performs a final consistency check after population. | |
| virtual bool | requireAllFields () const |
| Returns true if all fields are required for valid input. | |
Public Member Functions inherited from musx::dom::DocumentElement | |
| virtual | ~DocumentElement () noexcept(false)=default |
| Virtual destructor for polymorphic behavior. | |
| DocumentPtr | getDocument () const |
| Gets a reference to the Document. | |
| Cmper | getPartId () const |
| Gets the part id associated with this instance. | |
Public Attributes | |
| std::vector< std::shared_ptr< const LyricsSyllableInfo > > | syllables |
| the syllable info for the lyric text, constructed by the factory | |
Public Attributes inherited from musx::dom::TextsBase | |
| std::string | text |
| Raw Enigma string (with Enigma string tags), encoded UTF-8. | |
Additional Inherited Members | |
Public Types inherited from musx::dom::EnigmaBase | |
| 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::EnigmaBase | |
| EnigmaBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode) | |
| Constructs the base class. | |
| EnigmaBase (const EnigmaBase &)=default | |
| explicit default copy constructor | |
| EnigmaBase (EnigmaBase &&) noexcept=default | |
| explicit default move constructor | |
| EnigmaBase & | operator= (const EnigmaBase &) |
| no-op copy assignment operator allows subclasses to copy their values. | |
| EnigmaBase & | operator= (EnigmaBase &&) noexcept |
| no-op move assignment operator allows subclasses to move their values. | |
Protected Member Functions inherited from musx::dom::DocumentElement | |
| DocumentElement (const DocumentWeakPtr &document, Cmper partId) | |
| Constructs the document element. | |
| DocumentElement (const DocumentElement &)=default | |
| explicit default copy constructor | |
| DocumentElement (DocumentElement &&) noexcept=default | |
| explicit default move constructor | |
| DocumentElement & | operator= (const DocumentElement &) |
| no-op copy assignment operator allows subclasses to copy their values. | |
| DocumentElement & | operator= (DocumentElement &&) noexcept |
| no-op move assignment operator allows subclasses to move their values. | |
Base class for lyrics text.
| void musx::dom::texts::LyricsTextBase::createSyllableInfo | ( | const MusxInstance< TextsBase > & | ptrToThis | ) |
Creates the syllables array. Used by the factory but available at any time.
| ptrToThis | MusxInstance ptr to this (to avoid need for shared_for_this) |
| bool musx::dom::texts::LyricsTextBase::iterateStylesForSyllable | ( | size_t | syllableIndex, |
| util::EnigmaString::TextChunkCallback | callback | ||
| ) | const |
Parse a given syllable into chunks with EnigmaStyles for that chunk. In the most common case, the callback is called exactly once. However, this design allows for detecting uncommon cases of style changes within a syllable.
| syllableIndex | The 0-based index of the syllable in syllables. |
| callback | The callback for each chunk of syllable with a different style. |
syllableIndex was out of range or if parsing was aborted by the callback function.
|
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). |