MUSX Document Model
Loading...
Searching...
No Matches
musx::dom::options::FontOptions Class Reference

An unordered map of default font settings for the document. More...

#include <Options.h>

+ Inheritance diagram for musx::dom::options::FontOptions:

Public Types

enum class  FontType {
  Music , Key , Clef , Time ,
  Chord , ChordAcci , Ending , Tuplet ,
  TextBlock , LyricVerse , LyricChorus , LyricSection ,
  MultiMeasRest , Tablature , ChordSuffix , Expression ,
  Repeat , Fretboard , Flags , Accis ,
  AltNotSlash , AltNotNum , Rests , ReptDots ,
  Noteheads , AugDots , TimePlus , Articulation ,
  Percussion , SmartShape8va , MeasNumb , StaffNames ,
  AbbrvStaffNames , GroupNames , SmartShape8vb , SmartShape15ma ,
  SmartShape15mb , SmartShapeTrill , SmartShapeWiggle , AbbrvGroupNames ,
  BendCurveFull , BendCurveWhole , BendCurveFrac , TimeParts ,
  TimePlusParts
}
 Types of fonts available for the document. More...
 
- 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

 FontOptions (const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
 Constructor.
 
std::shared_ptr< FontInfogetFontInfo (FontType type) const
 get the FontInfo for a particular type
 
- 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 getPartId () const
 Gets the partId for this instance (or 0 for score)
 
std::shared_ptr< others::PartDefinitiongetPartDefinition () const
 Gets the others::PartDefinition corresponding to getPartId.
 
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 ()
 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::shared_ptr< FontInfogetFontInfo (const DocumentPtr &document, FontType type)
 get the FontInfo for a particular type from the document pool
 
static const xml::XmlElementArray< FontOptions > & xmlMappingArray ()
 Required for musx::factory::FieldPopulator.
 

Public Attributes

std::unordered_map< FontType, std::shared_ptr< FontInfo > > fontOptions
 Stores the default fonts for different elements.
 

Static Public Attributes

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

Additional Inherited Members

- Protected Member Functions inherited from musx::dom::OptionsBase
 OptionsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode)
 Constructs the OptionsBase and validates XmlNodeName in the derived class.
 
- Protected Member Functions inherited from musx::dom::Base
 Base (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode)
 Constructs the base class and enforces the static constexpr XmlNodeName.
 
Baseoperator= (const Base &)
 assignment constructor: m_unlinkedNodes is intentionally omitted
 

Detailed Description

An unordered map of default font settings for the document.

The FontOptions class stores default font settings used throughout the document. It provides functionality to manage various font attributes, such as size, style (bold, italic), and whether the font is hidden or fixed size.

Member Enumeration Documentation

◆ FontType

Types of fonts available for the document.

The FontType enum represents different types of fonts used for musical and textual elements within the document.

Enumerator
Music 

Default music font.

Key 

Key signature font.

Clef 

Clef symbol font.

Time 

Time signature font.

Chord 

Chord name font.

ChordAcci 

Chord accidental font.

Ending 

Repeat ending number font.

Tuplet 

Tuplet font.

TextBlock 

Text block font.

LyricVerse 

Lyric verse font.

LyricChorus 

Lyric chorus font.

LyricSection 

Lyric section font.

MultiMeasRest 

Multi-measure rest font.

Tablature 

Tablature font.

ChordSuffix 

Chord suffix font.

Expression 

Expression font.

Repeat 

Repeat symbol font.

Fretboard 

Fretboard font.

Flags 

Flags font.

Accis 

Accidental symbols font.

AltNotSlash 

Alternate notation slash font.

AltNotNum 

Alternate notation number font.

Rests 

Rests notation font.

ReptDots 

Repeat dots font.

Noteheads 

Notehead symbols font.

AugDots 

Augmentation dots font.

TimePlus 

Additional time signature symbols font.

Articulation 

Articulation symbols font.

Percussion 

Percussion font.

SmartShape8va 

8va smart shape font.

MeasNumb 

Measure number font.

StaffNames 

Staff names font.

AbbrvStaffNames 

Abbreviated staff names font.

GroupNames 

Group names font.

SmartShape8vb 

8vb smart shape font.

SmartShape15ma 

15ma smart shape font.

SmartShape15mb 

15mb smart shape font.

SmartShapeTrill 

Trill smart shape font.

SmartShapeWiggle 

Wiggle smart shape font.

AbbrvGroupNames 

Abbreviated group names font.

BendCurveFull 

Full bend curve font.

BendCurveWhole 

Whole bend curve font.

BendCurveFrac 

Fractional bend curve font.

TimeParts 

Time signature parts font.

TimePlusParts 

Additional time signature parts font.

Constructor & Destructor Documentation

◆ FontOptions()

musx::dom::options::FontOptions::FontOptions ( const DocumentWeakPtr document,
Cmper  partId = 0,
ShareMode  shareMode = ShareMode::All 
)
inlineexplicit

Constructor.

Parameters
documentA weak pointer to the document object.
partIdUsually 0. This parameter is needed for the generic factory routine.
shareModeUsually ShareMode::All. This parameter is needed for the generic factory routine.

Constructs a FontOptions object that is associated with the provided document.

Member Function Documentation

◆ getFontInfo() [1/2]

std::shared_ptr< FontInfo > musx::dom::options::FontOptions::getFontInfo ( const DocumentPtr document,
FontType  type 
)
static

get the FontInfo for a particular type from the document pool

Parameters
documentthe Document to search
typethe FontType to retrieve
Returns
a shared pointer to the font info for that type
Exceptions
std::invalid_paremterif the type is not found in the document

◆ getFontInfo() [2/2]

std::shared_ptr< FontInfo > musx::dom::options::FontOptions::getFontInfo ( FontType  type) const

get the FontInfo for a particular type

Parameters
typethe FontType to retrieve
Returns
a shared pointer to the font info for that type
Exceptions
std::invalid_paremterif the type is not found in the document

Member Data Documentation

◆ fontOptions

std::unordered_map<FontType, std::shared_ptr<FontInfo> > musx::dom::options::FontOptions::fontOptions

Stores the default fonts for different elements.

An unordered map that associates each FontType with its corresponding FontInfo settings.