MUSX Document Model
Loading...
Searching...
No Matches
musx::dom::FontInfo Struct Reference

Represents the default font settings for a particular element type. More...

#include <CommonClasses.h>

+ Inheritance diagram for musx::dom::FontInfo:

Public Member Functions

std::string getName () const
 Get the name of the font.
 
void setFontIdByName (const std::string &name)
 Sets the id of the font from a string name.
 
void setEnigmaStyles (uint16_t efx)
 Set style effects based on a bitmask. This is mainly useful for capturing text styles from enigma strings. (See musx::util::EnigmaString::parseFontCommand.)
 
bool calcIsDefaultMusic () const
 Calculates if this is the default music font.
 
bool calcIsSymbolFont () const
 Calculates if this is a symbol font. (See others::FontDefinition::calcIsSymbolFont.)
 
std::optional< std::filesystem::path > calcSMuFLMetaDataPath () const
 Returns the filepath of the SMuFL font's metadata json file, if any.
 
bool calcIsSMuFL () const
 Calculates whether this is a SMuFL font.
 
 CommonClassBase (const DocumentWeakPtr &document)
 Constructs a CommonClassBase object.
 
- Public Member Functions inherited from musx::dom::CommonClassBase
 CommonClassBase (const DocumentWeakPtr &document)
 Constructs a CommonClassBase object.
 
- 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::vector< std::filesystem::path > calcSMuFLPaths ()
 Returns the standard SMuFL font folder.
 
static const xml::XmlElementArray< FontInfo > & xmlMappingArray ()
 Required for musx::factory::FieldPopulator.
 

Public Attributes

Cmper fontId {}
 Font identifier. This is a Cmper for others::FontDefinition.
 
int fontSize {}
 Font size.
 
bool bold {}
 Bold effect.
 
bool italic {}
 Italic effect.
 
bool underline {}
 Underline effect.
 
bool strikeout {}
 Strikeout effect.
 
bool absolute {}
 Fixed size effect.
 
bool hidden {}
 Hidden effect.
 

Additional Inherited Members

- 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.
 
- Protected Member Functions inherited from musx::dom::CommonClassBase
std::shared_ptr< others::PartDefinitiongetPartDefinition () const
 Gets the others::PartDefinition corresponding to getPartId.
 
Cmper getPartId () const
 Gets the partId for this instance (or 0 for score)
 
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)
 
- 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

Represents the default font settings for a particular element type.

The FontInfo struct holds information about font properties, such as the font ID, size, and styles like bold, italic, underline, strikeout, fixed size, and visibility.

Member Function Documentation

◆ calcSMuFLPaths()

std::vector< std::filesystem::path > musx::dom::FontInfo::calcSMuFLPaths ( )
static

Returns the standard SMuFL font folder.

Returns
a std::vector<std::filesystem::path> where element 0 is the user path and element 1 is the system path

◆ CommonClassBase()

musx::dom::CommonClassBase::CommonClassBase ( const DocumentWeakPtr document)
inline

Constructs a CommonClassBase object.

Parameters
documentA weak pointer to the parent document.

◆ getName()

std::string musx::dom::FontInfo::getName ( ) const

Get the name of the font.

Returns
The name of the font as a string.

◆ setEnigmaStyles()

void musx::dom::FontInfo::setEnigmaStyles ( uint16_t  efx)
inline

Set style effects based on a bitmask. This is mainly useful for capturing text styles from enigma strings. (See musx::util::EnigmaString::parseFontCommand.)

Parameters
efxA 16-bit integer representing style effects with specific bit masks.

◆ setFontIdByName()

void musx::dom::FontInfo::setFontIdByName ( const std::string &  name)

Sets the id of the font from a string name.

Parameters
nameThe font name to find.
Exceptions
std::invalid_parameterif the name is not found.