25#include <unordered_map>
30#include "BaseClasses.h"
31#include "CommonClasses.h"
32#include "musx/util/EnigmaString.h"
62 :
TextsBase(document, partId, shareMode, textNumber)
65 throw std::invalid_argument(
"invalid text type value provided to FileInfoText constructor");
79 throw std::invalid_argument(
"invalid text type value provided to FileInfoText constructor");
107 throw std::logic_error(
"File Info text found with invalid text number " + std::to_string(textNumber));
127 std::vector<std::shared_ptr<const LyricsSyllableInfo>>
syllables;
141 std::vector<util::EnigmaStyles> m_syllableStyles;
151 using LyricsTextBase::LyricsTextBase;
164 using LyricsTextBase::LyricsTextBase;
177 using LyricsTextBase::LyricsTextBase;
ShareMode
Describes how this instance is shared between part and score.
Definition BaseClasses.h:91
Base class for all text blocks.
Definition BaseClasses.h:586
Cmper getTextNumber() const
Returns the raw text number.
Definition BaseClasses.h:606
TextsBase(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper textNumber)
Constructs a TextsBase object.
Definition BaseClasses.h:598
Contains block text (Finale Text Tool, both page- and measure-attached)
Definition Texts.h:188
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:195
Contains bookmark description text.
Definition Texts.h:235
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:242
Contains text blocks associated with text expressions.
Definition Texts.h:218
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:225
Contains File Info text (from Finale's Score Manager)
Definition Texts.h:51
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:115
TextType
Represents various text types for the file header.
Definition Texts.h:90
@ Subtitle
Subtitle of the piece.
@ Lyricist
Lyricist the piece.
@ Copyright
Copyright information for the piece.
@ Arranger
Arranger of the piece.
@ Description
Description of the piece.
@ Title
Title of the piece.
@ Composer
Composer of the piece.
FileInfoText(const DocumentWeakPtr &document, Cmper textNumber)
Constructs a FileInfoText object.
Definition Texts.h:75
TextType getTextType() const
Returns the TextType of the current instance.
Definition Texts.h:103
FileInfoText(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper textNumber)
Constructs a FileInfoText object.
Definition Texts.h:61
Contains chorus text for lyrics.
Definition Texts.h:162
static constexpr LyricTextType lyricTextType
Lyric text type for looking up word extensions.
Definition Texts.h:167
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:166
Contains section text for lyrics.
Definition Texts.h:175
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:179
static constexpr LyricTextType lyricTextType
Lyric text type for looking up word extensions.
Definition Texts.h:180
Base class for lyrics text.
Definition Texts.h:123
std::vector< std::shared_ptr< const LyricsSyllableInfo > > syllables
the syllable info for the lyric text, constructed by the factory
Definition Texts.h:127
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,...
Definition Texts.cpp:116
void createSyllableInfo(const MusxInstance< TextsBase > &ptrToThis)
Creates the syllables array. Used by the factory but available at any time.
Definition Texts.cpp:48
Contains verse text for lyrics.
Definition Texts.h:149
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:153
static constexpr LyricTextType lyricTextType
Lyric text type for looking up word extensions.
Definition Texts.h:154
Contains text blocks associated with custom line smart shapes.
Definition Texts.h:203
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Texts.h:210
std::function< bool(const std::string &text, const EnigmaStyles &styles)> TextChunkCallback
Iteration function type that the parser calls back when the font has changed or when recursively pars...
Definition EnigmaString.h:331
LyricTextType
The lyric text type if this is a lyrics smart shape.
Definition EnumClasses.h:77
@ Verse
The assignment is to a Verse lyrics text block.
@ Chorus
The assignment is to a Chorus lyrics text block.
@ Section
The assignment is to a Section lyrics text block.
std::shared_ptr< const T > MusxInstance
Defines the type of a musx instance stored in a pool.
Definition MusxInstance.h:39
uint16_t Cmper
Enigma "comperator" key type.
Definition Fundamentals.h:55
std::weak_ptr< Document > DocumentWeakPtr
Shared weak Document pointer.
Definition BaseClasses.h:57
object model for musx file (enigmaxml)
Definition BaseClasses.h:36