MUSX Document Model
|
Options for page formatting in the document. More...
#include <Options.h>
Classes | |
class | PageFormat |
Represents the format settings for a page. More... | |
Public Types | |
enum class | AdjustPageScope { Current , All , LeftOrRight , PageRange } |
Enum for the scope of page adjustments. More... | |
![]() | |
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 | |
std::shared_ptr< PageFormat > | calcPageFormatForPart (Cmper partId) const |
Calculates the page format options for a specific part. | |
PageFormatOptions (const DocumentPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All) | |
Constructor for PageFormatOptions. | |
![]() | |
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::PartDefinition > | getPartDefinition () const |
Gets the others::PartDefinition corresponding to getPartId. | |
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 () |
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 const xml::XmlElementArray< PageFormatOptions > & | xmlMappingArray () |
Required for musx::factory::FieldPopulator. | |
Public Attributes | |
AdjustPageScope | adjustPageScope {} |
Scope of page adjustments. | |
std::shared_ptr< PageFormat > | pageFormatScore |
Page format for score settings. | |
std::shared_ptr< PageFormat > | pageFormatParts |
Page format for parts settings. | |
bool | avoidSystemMarginCollisions {} |
Whether to avoid system margin collisions. | |
Static Public Attributes | |
static constexpr std::string_view | XmlNodeName = "pageFormatOptions" |
The XML node name for this type. | |
Additional Inherited Members | |
![]() | |
OptionsBase (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode) | |
Constructs the OptionsBase and validates XmlNodeName in the derived class. | |
![]() | |
Base (const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode) | |
Constructs the base class and enforces the static constexpr XmlNodeName. | |
Base & | operator= (const Base &) |
assignment constructor: m_unlinkedNodes is intentionally omitted | |
Options for page formatting in the document.
This class provides configuration options for page formatting, including scope adjustment, page format score, and page format parts.
|
strong |
|
inlineexplicit |
Constructor for PageFormatOptions.
document | A shared pointer to the document. |
partId | Usually 0. This parameter is needed for the generic factory routine. |
shareMode | Usually ShareMode::All . This parameter is needed for the generic factory routine. |
std::shared_ptr< options::PageFormatOptions::PageFormat > musx::dom::options::PageFormatOptions::calcPageFormatForPart | ( | Cmper | partId | ) | const |
Calculates the page format options for a specific part.
The options are mixed with actual page and system information for the specified part to produce a set of page format options that matches the input partId
if it uses consistent page formatting on all its pages. This may be useful if a particular part uses different settings than the other parts. An example might be a Piano/Vocal score with a different page size than the other parts.
partId | [in] the part for which to calculate. Pass SCORE_PARTID for the score. |