Finale PDK Framework 0.74
Public Types | Public Member Functions | List of all members
FCSmartShape Class Reference

A record that represents a smart shape in the score. It is connected to the score through FCSmartShapeMeasureMark objects in each measure where the smart shape occurs. In addition, some shapes also have FCSmartShapeEntryMark objects that connect them to entries. These entry-attached shapes can be identified with the IsEntryBased method. More...

#include <ff_smartshapes.h>

Inheritance diagram for FCSmartShape:
__FCNoInciOther __FCOther __FCBaseData __FCBase

Public Types

enum  SMARTSHAPE_TYPES {
  SMARTSHAPE_SLURDOWN = 0 , SMARTSHAPE_SLURUP = 1 , SMARTSHAPE_DIMINUENDO = 2 , SMARTSHAPE_CRESCENDO = 3 ,
  SMARTSHAPE_OCTAVEDOWN = 4 , SMARTSHAPE_OCTAVEUP = 5 , SMARTSHAPE_DASHLINEUP = 6 , SMARTSHAPE_DASHLINEDOWN = 7 ,
  SMARTSHAPE_DASHCURVEDOWN = 8 , SMARTSHAPE_DASHCURVEUP = 9 , SMARTSHAPE_DASHLINE = 10 , SMARTSHAPE_SOLIDLINE = 11 ,
  SMARTSHAPE_SOLIDLINEDOWN = 12 , SMARTSHAPE_SOLIDLINEUP = 13 , SMARTSHAPE_TRILL = 14 , SMARTSHAPE_SLURAUTO = 15 ,
  SMARTSHAPE_DASHCURVEAUTO = 16 , SMARTSHAPE_TRILLEXT = 17 , SMARTSHAPE_SOLIDLINEDOWN2 = 18 , SMARTSHAPE_SOLIDLINEUP2 = 19 ,
  SMARTSHAPE_TWOOCTAVEDOWN = 20 , SMARTSHAPE_TWOOCTAVEUP = 21 , SMARTSHAPE_DASHLINEDOWN2 = 22 , SMARTSHAPE_DASHLINEUP2 = 23 ,
  SMARTSHAPE_GLISSANDO = 25 , SMARTSHAPE_TABSLIDE = 26 , SMARTSHAPE_BEND_HAT = 27 , SMARTSHAPE_BEND_CURVE = 28 ,
  SMARTSHAPE_CUSTOM = 29 , SMARTSHAPE_SOLIDLINEUPLEFT = 30 , SMARTSHAPE_SOLIDLINEDOWNLEFT = 31 , SMARTSHAPE_DASHLINEUPLEFT = 32 ,
  SMARTSHAPE_DASHLINEDOWNLEFT = 33 , SMARTSHAPE_SOLIDLINEUPDOWN = 34 , SMARTSHAPE_SOLIDLINEDOWNUP = 35 , SMARTSHAPE_DASHLINEUPDOWN = 36 ,
  SMARTSHAPE_DASHLINEDOWNUP = 37 , SMARTSHAPE_HYPHEN = 38 , SMARTSHAPE_WORD_EXT = 39 , SMARTSHAPE_DASHEDSLURDOWN = 40 ,
  SMARTSHAPE_DASHEDSLURUP = 41 , SMARTSHAPE_DASHEDSLURAUTO = 42
}
 The smart shape types. More...
 
enum  SMARTSHAPE_3STATE { SS_OFFSTATE = 0 , SS_ONSTATE , SS_AUTOSTATE }
 An enum used for the methods that need a 3-state auto/on/off. Currently used by the GetAvoidAccidentals and GetEngraverSlur properties. More...
 
- Public Types inherited from __FCBase
enum  PDKFRAMEWORK_CLASSID {
  FCID_UNKNOWN = 0 , FCID_ACCIDENTALMOD , FCID_ACTIVELYRIC , FCID_ALLOTMENT ,
  FCID_ARTICULATION , FCID_ARTICULATIONDEF , FCID_BACKWARDREPEAT , FCID_BASELINE ,
  FCID_BEAMMOD , FCID_BEATCHARTELEMENT , FCID_BOOKMARK , FCID_BROKENBEAMMOD ,
  FCID_CATEGORYDEF , FCID_CELLCLEFCHANGE , FCID_CELLFRAMEHOLD , FCID_CELLGRAPHIC ,
  FCID_CELLTEXT , FCID_CENTERSMARTSHAPE , FCID_CHORD , FCID_CHORDPREFS ,
  FCID_CHORDSUFFIXELEMENT , FCID_CHORUSSYLLABLE , FCID_CLEFDEF , FCID_COMPOSITETIMESIGBOTTOMELEMENT ,
  FCID_COMPOSITETIMESIGTOPELEMENT , FCID_CROSSSTAFFMOD , FCID_CUSTOMSMARTLINEDEF , FCID_CUSTOMSTEMMOD ,
  FCID_DISTANCEPREFS , FCID_DOTMOD , FCID_ENCLOSURE , FCID_ENDINGREPEAT ,
  FCID_ENIGMATEXTSTYLE , FCID_ENTRYALTERMOD , FCID_EXECUTABLESHAPEDEF , FCID_EXPRESSION ,
  FCID_FONTINFO , FCID_FONTPREFS , FCID_FREEZESYSTEM , FCID_FRETBOARDSTYLEDEF ,
  FCID_FRETBOARDSTYLEDEFS , FCID_FRETBOARDGROUPDEF , FCID_FRETBOARDGROUPDEFS , FCID_FRETINSTRUMENTDEF ,
  FCID_GENERALPREFS , FCID_GRIDSGUIDESPREFS , FCID_GROUP , FCID_GROUPNAMEPOSITIONPREFS ,
  FCID_HUMANPLAYBACKPREFS , FCID_INDEPENDENTCELLDETAIL , FCID_INSTRUMENTDEF , FCID_INSTRUMENTPLAYBACKDATA ,
  FCID_KEYMODEDEF , FCID_KEYSIGNATURE , FCID_LAYERPREFS , FCID_LYRICSBASELINE ,
  FCID_LYRICSPREFS , FCID_MEASURE , FCID_MEASURENUMBERREGION , FCID_METATOOLASSIGNMENT ,
  FCID_MIDIEXPRESSION , FCID_MISCDOCPREFS , FCID_MULTIMEASUREREST , FCID_MULTIMEASURERESTPREFS ,
  FCID_MULTISTAFFINSTRUMENT , FCID_MULTISTAFFINSTRUMENTS , FCID_MUSICCHARACTERPREFS , FCID_MUSICSPACINGPREFS ,
  FCID_NUMBER , FCID_NOTEHEADMOD , FCID_OTHERINCI , FCID_PERCUSSIONLAYOUTNOTE ,
  FCID_PERCUSSIONSTAFF , FCID_PERFORMANCEMOD , FCID_PAGE , FCID_PAGEFORMATPREFS ,
  FCID_PAGEGRAPHIC , FCID_PAGETEXT , FCID_PART , FCID_PARTEXTRACTPREFS ,
  FCID_PARTSCOPEPREFS , FCID_PARTSTAFFVOICING , FCID_PERCUSSIONNOTEMOD , FCID_PIANOBRACEPREFS ,
  FCID_PLAYBACKPREFS , FCID_RAWTEXT , FCID_REPEATPREFS , FCID_SECONDARYBEAMBREAKMOD ,
  FCID_BEAMEXTENSIONMOD , FCID_SECTIONSYLLABLE , FCID_SEPARATEMEASURENUMBER , FCID_SEPARATEPLACEMENT ,
  FCID_SHAPEDEF , FCID_SHAPEEXPRESSIONDEF , FCID_SLURCONTOURPREFS , FCID_SIZEPREFS ,
  FCID_SMARTSHAPE , FCID_SMARTSHAPEENTRYMARK , FCID_SMARTSHAPEMEASUREMARK , FCID_SMARTSHAPEPREFS ,
  FCID_STAFF , FCID_STAFFLIST , FCID_STAFFNAMEPOSITION , FCID_STAFFNAMEPOSITIONPREFS ,
  FCID_STAFFSTYLEASSIGN , FCID_STAFFSTYLEDEF , FCID_STAFFSYSTEM , FCID_STEMCONNECTIONTABLE ,
  FCID_STEMMOD , FCID_STRING , FCID_SYLLABLEENTRYMOD , FCID_SYSTEMSTAFF ,
  FCID_TABLATURENOTEMOD , FCID_TEMPOELEMENT , FCID_TEXTBLOCK , FCID_TEXTEXPRESSIONDEF ,
  FCID_TEXTREPEAT , FCID_TEXTREPEATDEF , FCID_TIEMOD , FCID_TIEPREFS ,
  FCID_TIECONTOURPREFS , FCID_TIEPLACEMENTPREFS , FCID_TIMESIGNATURE , FCID_TUPLET ,
  FCID_TUPLETPREFS , FCID_VERSESYLLABLE
}
 Constants for the GetClassID method. More...
 
enum  MEASUREMENTUNITS {
  MEASUREMENTUNIT_DEFAULT = UNIT_DEFAULT , MEASUREMENTUNIT_EVPUS = UNIT_EVPUS , MEASUREMENTUNIT_INCHES = UNIT_INCHES , MEASUREMENTUNIT_CENTIMETERS = UNIT_CENTS ,
  MEASUREMENTUNIT_POINTS = UNIT_POINTS , MEASUREMENTUNIT_PICAS = UNIT_PICAS , MEASUREMENTUNIT_SPACES = UNIT_SPACES , MEASUREMENTUNIT_MILLIMETERS = 100
}
 Constants for Finale's standard measurement units. More...
 

Public Member Functions

const char * ClassName () const override
 Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class. More...
 
const PDKFRAMEWORK_CLASSID GetClassID () const override
 Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has problems to resolve the true classes of inherited objects. More...
 
 FCSmartShape ()
 The constructor. More...
 
twobyte _GetLeftSideNoteID () const
 
twobyte _GetRightSideNoteID () const
 
void _SetLeftSideNoteID (twobyte noteID)
 
void _SetRightSideNoteID (twobyte noteID)
 
void _LoadCenterShapes ()
 For internal use. Called by FCSmartShapeMeasureMark::CreateSmartShape.
 
void _ClearCenterShapes ()
 For internal use.
 
bool CalcLeftCellMetricPos (FCPoint *pPoint)
 Calculates the left-side metrics position for measure-attached smart shape. More...
 
bool CalcRightCellMetricPos (FCPoint *pPoint)
 Calculates the right-side metrics position for measure-attached smart shape. More...
 
bool CalcLeftEntryMetricPos (FCNoteEntry *pEntry, FCPoint *pPoint)
 Calculates the left-side metrics position for a note-attached smart shape. More...
 
bool CalcRightEntryMetricPos (FCNoteEntry *pEntry, FCPoint *pPoint)
 Calculates the right-side metrics position for a note-attached smart shape. More...
 
SMARTSHAPE_TYPES GetShapeType () const
 Returns the smart shape style (any of the SMARTSHAPE_TYPES constants). More...
 
bool GetEntryBased () const
 Returns true if the smart shape is a note entry-connected shape. More...
 
bool CalcLyricBased () const
 Returns true if the smart shape is a lyric-connected shape. This is dependent on a number of factors. Lyric-based smart shapes (word extensions and hyphens) are entirely controlled by Finale, and Lua scripts and plugins should leave them alone. More...
 
bool GetPresetShape () const
 Returns if the shape is preset or custom. More...
 
FCSmartShapeSegmentGetTerminateSegmentLeft ()
 Returns the object pointer for the terminating left-side end segment. More...
 
FCSmartShapeSegmentGetTerminateSegmentRight ()
 Returns the object pointer for the terminating right-side end segment. More...
 
FCSmartShapeCtrlPointAdjustGetCtrlPointAdjust ()
 Returns the object that controls the shape of the smart shape. More...
 
bool GetMakeHorizontal () const
 Returns the state of the "make horizontal" flag. More...
 
bool GetMaintainAngle () const
 Returns the flag that determines how the how the y value is interpreted on SmartShape system breaks. More...
 
bool GetVisible () const
 Returns the visibility state of the smart shape. More...
 
twobyte GetLineID () const
 Returns the line style ID for custom smart shapes. More...
 
SMARTSHAPE_3STATE GetEngraverSlur () const
 Returns the engraver slur state for the slur. More...
 
SMARTSHAPE_3STATE GetAvoidAccidentals () const
 Gets the 'avoid accidentals' setting to any of the auto/on/off states. More...
 
void SetShapeType (SMARTSHAPE_TYPES shapevalue)
 Sets the smart shape style. More...
 
void SetPresetShape (bool value)
 Returns if the shape is preset or custom. More...
 
void SetLineID (twobyte identifier)
 Returns the line style ID for custom smart shape lines. More...
 
void SetMakeHorizontal (bool state)
 Sets the state of the "make horizontal" flag. More...
 
void SetMaintainAngle (bool state)
 Sets the flag that determines how the how the y value is interpreted on SmartShape system breaks. More...
 
void SetVisible (bool visible)
 Sets the visibility state of the smart shape. More...
 
void SetEntryBased (bool value)
 Sets if the smart shape is a note entry-connected shape or not. More...
 
void SetSlurFlags (bool entrybased)
 Configures the basic smart shape flags required for a slur. More...
 
void SetHairpinFlags ()
 Configures the basic smart shape flags required for a hairpin. More...
 
void SetEntryAttachedFlags (bool presetshape)
 Configures the smart shape as an entry-attached shape. More...
 
void SetMeasureAttachedFlags (bool presetshape, bool makehorizontal)
 Configures the smart shape flags as a measure-attached shape. More...
 
void SetBeatAttached (bool state)
 On Finale 2014 and above, it will define if the end points should be beat-attached. If the end point is beat-attached, the horizontal offset will be relative to the anchor point. More...
 
bool GetBeatAttached () const
 On Finale 2014 and above, returns if the end points are beat-attached or not. More...
 
void SetEngraverSlur (SMARTSHAPE_3STATE state)
 Sets the engraver slur setting to any of the auto/on/off states. More...
 
void SetAvoidAccidentals (SMARTSHAPE_3STATE state)
 Sets the 'avoid accidentals' setting to any of the auto/on/off states. More...
 
bool IsHairpin ()
 Returns true if the smart shape is a hairpin. More...
 
bool IsAutoSlur ()
 Returns true if the smart shape is an "auto" slur (solid or dashed). More...
 
bool IsOverSlur ()
 Returns true if the smart shape is an "over" slur (solid or dashed). More...
 
bool IsUnderSlur ()
 Returns true if the smart shape is an "under" slur (solid or dashed). More...
 
bool IsTwoHooks ()
 Returns true if the smart shape is an predefined line with hooks on both left and right sides (solid or dashed). More...
 
bool IsSlur ()
 Returns true if the smart shape is a slur (solid or dashed). More...
 
bool IsSolidSlur ()
 Returns true if the smart shape is a solid (non-dashed) slur. More...
 
bool IsDashedCurve ()
 Returns true if the smart shape is a dashed curve. (This does not include the new dashed slur type in Finale 25.) More...
 
bool IsDashedSlur ()
 Returns true if the smart shape is a dashed slur (introduced in Finale 25). More...
 
bool IsTabSlide ()
 Returns true if the shape is a tab slide. More...
 
bool IsGlissando ()
 Returns true if the shape is a glissando. More...
 
bool IsCustomLine ()
 Returns true if the shape is a smartshape created with the Custom Line Tool. More...
 
bool IsEntryBased ()
 Returns true if the smart shape is entry-based. More...
 
bool IsWithinRegion (FCMusicRegion *pRegion)
 Returns true if the full smart shape is within the region (both vertically and horizontally.) More...
 
void DeleteEverything ()
 Deletes the internal smartshape data, the center shapes and the smartshape marks. More...
 
void AssignToStaff (int newstaff)
 Assigns the end points of a smart shape to a staff.
 
bool SaveNew () override
 Overridden version of the creation of smart shapes, since the smart shape data has special requirements. More...
 
bool SaveNewEverything (FCNoteEntry *pFirstEntry=NULL, FCNoteEntry *pLastEntry=NULL)
 Saves all structures required for smart shapes. More...
 
void DebugDump () override
 Outputs the class data/information for debugging purposes. More...
 
- Public Member Functions inherited from __FCNoInciOther
 __FCNoInciOther ()
 The constructor.
 
virtual bool Load (CMPER itemno)
 Loads the indicated item. More...
 
bool Reload () override
 Overridden Reload() method to support complex data types. More...
 
virtual bool SaveAs (CMPER itemno)
 Saves the data under another item number. The object will now be connected to the new item number. More...
 
virtual bool DeepSaveAs (CMPER itemno)
 Saves the data under another item number, but also makes a deep copy of the object. More...
 
bool DeepDeleteData () override
 Deletes the data and all related data available in other data structures. More...
 
virtual CMPER GetItemNo () const
 Returns the item number. This typically points to items such as a page number, a measure number, a 1-based expression definition number, etc. More...
 
void SetItemNo (CMPER cmper)
 Sets the item number. Use with extreme care! This is mostly intended for situations when creating new records isn't supported by Finale (preventing SaveAs to work). More...
 
bool LoadFirst () override
 Loads the first element of 1-based data. More...
 
- Public Member Functions inherited from __FCOther
void SetCmperAndInci (CMPER cmper, twobyte inci)
 Sets both the CMPER and the incident number in the dataID record. Mainly for internal use.
 
 __FCOther ()
 The constructor.
 
bool IsIdenticalRecord (__FCOther *pCompare)
 Compares an object to see if both objects point to the same data record. More...
 
- Public Member Functions inherited from __FCBaseData
EDOCID GetConnectedDocID () const
 Returns the document ID that was connected to the last load/save of the data. More...
 
bool VerifyConnectedDocID ()
 Checks that the stored document ID for the data object matches the current document's ID. More...
 
virtual EXTAG Tag () const =0
 The Enigma tag for the derived class. More...
 
virtual EVERSION EnigmaVersion () const
 The Enigma version for save/load/create/delete operations. More...
 
virtual int DataSizeLoad () const =0
 Returns the data size for the data structure that should be loaded. More...
 
virtual int DataSizeSave () const
 Returns the data size for the data structure that should be saved or created. More...
 
void _CloneFrom (__FCBaseData *pSource)
 For internal use only. Copies object data (except data block) from another object. More...
 
virtual void CloneMemoryFrom (__FCBaseData *pSource)
 
const EDataID * _GetDataID ()
 Intended ONLY for the _CloneFrom implementation. More...
 
int _GetLoadedSize () const
 Intended ONLY for the _CloneFrom implementation. More...
 
const void * GetDataBlock ()
 Intended ONLY for the _CloneFrom implementation. More...
 
EXTAG GetCustomTag () const
 Returns the custom Enigma tag, if any. More...
 
void SetCustomTag (EXTAG tag)
 Sets the custom Enigma tag, for classes that support multiple Enigma tags. More...
 
 __FCBaseData ()
 The constructor.
 
virtual ~__FCBaseData ()
 Virtual destructor.
 
virtual bool Save ()
 Saves the currently loaded to its current location. More...
 
virtual bool DeleteData ()
 Deletes the associated data from Finale's database. Be careful when deleting multiple objects. More...
 
virtual bool LoadLast ()
 Loads the very last element in the database, if any. More...
 
virtual bool LoadNext ()
 Loads the next element from the database, if any. More...
 
virtual bool LoadPrevious ()
 Loads the previous element in the database, if any. More...
 
bool RelinkToCurrentView ()
 Relinks the contents in the current view so that the score and part(s) match. More...
 
bool RelinkToScore ()
 Relinks all parts to the contents of the score. More...
 
__FCBaseDataCreateClone ()
 Creates an identical copy of an object. More...
 
void DebugDataDump () override
 Outputs a memory dump of the data block in the object for debugging purposes. More...
 
void DebugDataByteArrayDump () override
 Outputs a memory dump of the data block in the object for debugging purposes, as a C++ byte array. More...
 
void DebugDataOffsetDump (int offset, int size)
 For debug mode only. Dumps a data memory block at a specific offset and with a specific size.
 
FCNumbersCreateRawDataDump ()
 Creates a byte collection with the raw loaded data block for the object (if the object type supports single data blocks). This method is only intended for debug purposes. More...
 
- Public Member Functions inherited from __FCBase
virtual ~__FCBase ()
 Virtual destructor, so all inherited classes get the virtual destructor.
 
void DebugMsgInt (const char *pszPrefixText, int i)
 Creates a simple Message Box for debug purposes. The text appears with the extra digit (in decimal presentation) appearing afterwards. More...
 
void DebugMsgHex (const char *pszPrefixText, int i)
 Creates a simple Message Box for debug purposes. The text appears with the extra digit (as a hexadecimal number) appearing afterwards. More...
 
void DebugMsgString (const char *pszPrefixText, const char *thestring)
 Creates a simple Message Box for debug purposes. The text appears with the extra string appearing afterwards. More...
 
void DebugMsg (const char *pszMsg)
 Creates a simple Message Box for debug purposes with just one text string. More...
 
void DebugOutMenuInfo (FCUI *pUI, int menuixd_horiz, int menuixd_vert) const
 Outputs the menu command info for debugging purposes. More...
 
int DebugOutFormat (const char *fmt,...)
 Outputs debug text using C style "printf" syntax. More...
 
void Set16BitFlag (FLAG_16 *flag, FLAG_16 flagbits, bool state)
 Sets a 16 bit flag. More...
 
void Set32BitFlag (FLAG_32 *flag, FLAG_32 flagbits, bool state)
 Sets/resets a 32 bit flag, by using a bit mask. More...
 
bool GetBitFlag (FLAG_32 flag, FLAG_32 flagbits) const
 Gets a state from flag bits. Returns true if any bit in the mask is set. More...
 
int GetBitCount (FLAG_32 flag)
 Returns the total number of set bits in a 32-bit unsigned int.
 
void SetSpecific32Bit (FLAG_32 *flag, int bitnumber, bool state)
 Sets/resets a single bit in a 32 bit flag, by specifying one specific bit. More...
 
void SetUserData (void *pData)
 Sets the user data attached to the instance of an object. More...
 
void SetUserData2 (void *pData)
 Sets the additional user data attached to the instance of an object. More...
 
void * GetUserData () const
 Gets the user data attached to the instance of an object. More...
 
void * GetUserData2 () const
 Gets the additional user data attached to the instance of an object. More...
 
virtual bool IsIdentical (const __FCBase *pCompareObject) const
 Returns true if the data in the passed object is considered to be identical to the current object, otherwise false. More...
 
void StoreXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper function to store FCString objects in the XML file. More...
 
void StoreXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int value)
 Helper function to store integer objects in the XML file. More...
 
void StoreXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool value)
 Helper function to store boolean objects in the XML file. More...
 
void StoreXML_StringAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, FCString *pStringValue)
 Helper function to store FCString objects in the XML file, as an attribute to a node. More...
 
void StoreXML_IntegerAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, int value)
 Helper function to store integer objects in the XML file, as an attribute to a node. More...
 
void StoreXML_BoolAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, bool value)
 Helper function to store boolean objects in the XML file, as an attribute to a node. More...
 
void StoreXML_FloatAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, float value)
 Helper function to store floating point objects in the XML file, as an attribute to a node. More...
 
virtual void StoreToXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to store an object's data. More...
 
bool ReadXML_String (tinyxml2::XMLElement *pParentNode, const char *pszElementName, FCString *pStringValue)
 Helper method to read FCString objects from the XML file. More...
 
bool ReadXML_Integer (tinyxml2::XMLElement *pParentNode, const char *pszElementName, int *pValue)
 Helper method to read integer objects from the XML file. More...
 
bool ReadXML_Bool (tinyxml2::XMLElement *pParentNode, const char *pszElementName, bool *pValue)
 Helper method to read boolean objects from the XML file. More...
 
bool ReadXML_StringAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, FCString *pStringValue)
 Helper method to read FCString objects from the XML file, as an attribute to a node. More...
 
bool ReadXML_IntegerAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, int *pValue)
 Helper method to read integer objects from the XML file, as an attribute to a node. More...
 
bool ReadXML_BoolAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, bool *pValue)
 Helper method to read boolean objects from the XML file, as an attribute to a node. More...
 
bool ReadXML_FloatAttribute (tinyxml2::XMLElement *pNode, const char *pszAttributeName, float *pValue)
 Helper method to read floating point objects from the XML file, as an attribute to a node. More...
 
virtual bool ReadFromXML (tinyxml2::XMLElement *pParentNode)
 Virtual method that is used to read object data. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from __FCBase
static void DebugOutPtr (const char *pszPrefixText, void *ptr)
 Static method that outputs a line for debugging purposes. The prefix text appears with the extra ptr (in hexadeximal representation) appearing afterwards. More...
 
static void DebugOutInt (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in decimal presentation) appearing afterwards. More...
 
static void DebugOutFloat (const char *pszPrefixText, double f)
 Static method that outputs a line for debugging purposes. The text appears with the extra float value appearing afterwards. More...
 
static void DebugOutTag (const char *pszPrefixText, EXTAG extag)
 Static method that outputs a line for debugging purposes. The text appears with the EXTAG (in text) appearing afterwards. More...
 
static void DebugOutHex (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in hexadecimal presentation) appearing afterwards. More...
 
static void DebugOutBin (const char *pszPrefixText, int i)
 Static method that outputs a line for debugging purposes. The text appears with the extra digit (in binary presentation) appearing afterwards. More...
 
static void DebugOutString (const char *pszPrefixText, const char *thestring)
 Static method that outputs a line for debugging purposes (C string version). The text appears with the extra string appearing afterwards. More...
 
static void DebugOutString (const char *pszPrefixText, FCString *pString)
 Static method that outputs a line for debugging purposes (FCString version). The text appears with the extra string appearing afterwards. More...
 
static void DebugOutBool (const char *pszPrefixText, bool state)
 Static method that outputs a line for debugging purposes. The boolean state appears afterwards as either "TRUE" or "FALSE". More...
 
static void DebugOutBlock (const void *pBuffer, int startoffset, int size)
 Static method that outputs a memory block for debugging purposes. Eight bytes per line will appear (as hex digits) until the whole memory block is dumped. More...
 
static void DebugOutByteArrayBlock (const void *pBuffer, int startoffset, int size)
 Static method that outputs a memory block for debugging purposes. Eight bytes per line will appear (as hex digits) as a C++ onebyte array, until the whole memory block is dumped. More...
 
static void DebugOut (const char *pszLine)
 Static method to output a line of text for debugging purposes. More...
 
- Protected Member Functions inherited from __FCBaseData
virtual void * Allocate ()=0
 
virtual void Deallocate ()
 
virtual bool IsDynamicSize ()
 
bool LoadDataBlock ()
 Loads the data. If the object is of dynamic size, the old memory block is freed and a new is allocated.
 
void ClearData ()
 
virtual twobyte CalcLastInci ()
 For internal use only! More...
 
virtual __FCBaseDataCreateObject ()=0
 Creates a new instance of the object. More...
 
bool DataIsLoaded () const
 Returns true is any data has been loaded into the object.
 
void _TagDocumentID ()
 For internal use only. More...
 
- Protected Member Functions inherited from __FCBase
 __FCBase ()
 The constructor.
 
- Protected Attributes inherited from __FCBaseData
EDOCID _connecteddocID
 The "connected" document ID., which is the document the where the document was loaded (or last saved). This is for a mechanism to prevent resaving of certain data in other documents.
 
void * _datablock
 Pointer to the object's data block, the meaning is implementation-specific for each derived subclass.
 
bool _heapdatablock
 Variable that tells if _datablock is dynamically created on the heap (and should be deleted at object destruction).
 
int _loadedsize
 Loaded size of the data block for a loaded object, in bytes. Since the datablock is implementation-specific, the _loadedsize should be updated by child classes that create new data. More...
 
EDataID _dataid
 The EdataID for the last loaded/saved object.
 

Detailed Description

A record that represents a smart shape in the score. It is connected to the score through FCSmartShapeMeasureMark objects in each measure where the smart shape occurs. In addition, some shapes also have FCSmartShapeEntryMark objects that connect them to entries. These entry-attached shapes can be identified with the IsEntryBased method.

The Finale UI calls measure-attached smart shapes "Beat-Attached" and entry-attached smart shapes "Note-Attached".

This object also contains sub-objects that control end points, mid shapes, and shape control.

It's highly recommended that created smart shapes are configured with the either the SetMeasureAttachedFlags() or SetEntryAttachedFlags() methods. There's also SetSlurFlags() and SetHairpinFlags() methods intended specifically for slurs and hairpins.

Fresh smart shapes are most easily created with the SaveNewEverything() method.

Member Enumeration Documentation

◆ SMARTSHAPE_3STATE

An enum used for the methods that need a 3-state auto/on/off. Currently used by the GetAvoidAccidentals and GetEngraverSlur properties.

Warning
The ON and OFF values are currently coded backwards, meaning the ON constant specifies the Off state and the OFF constant value specifies On state. It is possible that a future release may fix this. If so, a new set of constants will be defined with different names and possibly different numerical values. The current enum will be deprecated at that time.
Todo:
Add new enum names and values to specify the correct corresponding values in Finale.

Lua-supported.

Enumerator
SS_OFFSTATE 

Misnamed. Species the On state.

SS_ONSTATE 

Misnamed. Species the Off state.

SS_AUTOSTATE 

Automatically determine the state from other Finale settings.

◆ SMARTSHAPE_TYPES

The smart shape types.

Lua-supported.

Enumerator
SMARTSHAPE_SLURDOWN 

Underslur (center humps down)

SMARTSHAPE_DIMINUENDO 

Decrescendo (diminuendo)

SMARTSHAPE_CRESCENDO 

Crescendo

SMARTSHAPE_OCTAVEDOWN 

Octave down

SMARTSHAPE_OCTAVEUP 

Octave up

SMARTSHAPE_DASHLINEUP 

Dashed line, with right hook up

SMARTSHAPE_DASHLINEDOWN 

Dashed line, with right hook down

SMARTSHAPE_DASHCURVEDOWN 

Dashed undercurve (center humps down)

SMARTSHAPE_DASHCURVEUP 

Dashed overcurve (center humps up)

SMARTSHAPE_DASHLINE 

Dashed line, no hooks

SMARTSHAPE_SOLIDLINE 

Solid line, no hooks

SMARTSHAPE_SOLIDLINEDOWN 

Solid line, with right hook down

SMARTSHAPE_SOLIDLINEUP 

Solid line, with right hook up

SMARTSHAPE_TRILL 

Trill

SMARTSHAPE_SLURAUTO 

Slur with automatic over/under sensing

SMARTSHAPE_DASHCURVEAUTO 

Dashed curve with automatic over/under sensing

SMARTSHAPE_TRILLEXT 

Wiggle without "tr"

SMARTSHAPE_SOLIDLINEDOWN2 

Solid line, down hook at both ends

SMARTSHAPE_SOLIDLINEUP2 

Solid line, up hook at both ends

SMARTSHAPE_TWOOCTAVEDOWN 

15mb - two octaves down

SMARTSHAPE_TWOOCTAVEUP 

15ma - two octaves up

SMARTSHAPE_DASHLINEDOWN2 

Dashed line, down hook at both ends

SMARTSHAPE_DASHLINEUP2 

Dashed line, up hook at both ends

SMARTSHAPE_GLISSANDO 

Glissando

SMARTSHAPE_TABSLIDE 

A line that goes from the top of the start note to the bottom of the end note. The line goes in the direction of pitch. It goes like / for increasing pitch and like \ for decreasing pitch.

SMARTSHAPE_BEND_HAT 

It's like an angled slur. For guitar standard notation.

SMARTSHAPE_BEND_CURVE 

For guitar tab bends and releases

SMARTSHAPE_CUSTOM 

Custom smart shape

SMARTSHAPE_SOLIDLINEUPLEFT 

Solid line, with left hook up

SMARTSHAPE_SOLIDLINEDOWNLEFT 

Solid line, with left hook down

SMARTSHAPE_DASHLINEUPLEFT 

Dashed line, with left hook up

SMARTSHAPE_DASHLINEDOWNLEFT 

Dashed line, with left hook down

SMARTSHAPE_SOLIDLINEUPDOWN 

Solid line, with left hook up, right hook down

SMARTSHAPE_SOLIDLINEDOWNUP 

Solid line, with left hook down, right hook up

SMARTSHAPE_DASHLINEUPDOWN 

Dashed line, with left hook up, right hook down

SMARTSHAPE_DASHLINEDOWNUP 

Dashed line, with left hook down, right hook up

SMARTSHAPE_HYPHEN 

Hyphen for lyrics

SMARTSHAPE_WORD_EXT 

Word extension line

SMARTSHAPE_DASHEDSLURDOWN 

Dashed underslur (center humps down). Only available on Finale 25 and above.

SMARTSHAPE_DASHEDSLURUP 

Dashed overslur (center humps up). Only available on Finale 25 and above.

SMARTSHAPE_DASHEDSLURAUTO 

Dashed slur with automatic over/under sensing. Only available on Finale 25 and above.

Constructor & Destructor Documentation

◆ FCSmartShape()

FCSmartShape::FCSmartShape ( )
inline

The constructor.

Lua-supported.

Member Function Documentation

◆ _GetLeftSideNoteID()

twobyte FCSmartShape::_GetLeftSideNoteID ( ) const
inline

For internal use only.

Returns the left-side note ID.

◆ _GetRightSideNoteID()

twobyte FCSmartShape::_GetRightSideNoteID ( ) const
inline

For internal use only.

Returns the right-side note ID.

◆ _SetLeftSideNoteID()

void FCSmartShape::_SetLeftSideNoteID ( twobyte  noteID)
inline

For internal use only.

Sets the left-side note ID.

◆ _SetRightSideNoteID()

void FCSmartShape::_SetRightSideNoteID ( twobyte  noteID)
inline

For internal use only.

Sets the right-side note ID.

◆ CalcLeftCellMetricPos()

bool FCSmartShape::CalcLeftCellMetricPos ( FCPoint pPoint)

Calculates the left-side metrics position for measure-attached smart shape.

Returns
true on success.

◆ CalcLeftEntryMetricPos()

bool FCSmartShape::CalcLeftEntryMetricPos ( FCNoteEntry pEntry,
FCPoint pPoint 
)

Calculates the left-side metrics position for a note-attached smart shape.

Lua-supported.

Returns
true on success.

◆ CalcLyricBased()

bool FCSmartShape::CalcLyricBased ( ) const

Returns true if the smart shape is a lyric-connected shape. This is dependent on a number of factors. Lyric-based smart shapes (word extensions and hyphens) are entirely controlled by Finale, and Lua scripts and plugins should leave them alone.

Lua-supported (0.63).

◆ CalcRightCellMetricPos()

bool FCSmartShape::CalcRightCellMetricPos ( FCPoint pPoint)

Calculates the right-side metrics position for measure-attached smart shape.

Returns
true on success.

◆ CalcRightEntryMetricPos()

bool FCSmartShape::CalcRightEntryMetricPos ( FCNoteEntry pEntry,
FCPoint pPoint 
)

Calculates the right-side metrics position for a note-attached smart shape.

Lua-supported.

Returns
true on success.

◆ ClassName()

const char * FCSmartShape::ClassName ( ) const
inlineoverridevirtual

Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class.

Lua-supported.

Reimplemented from __FCNoInciOther.

◆ DebugDump()

void FCSmartShape::DebugDump ( )
inlineoverridevirtual

Outputs the class data/information for debugging purposes.

Accessible if PDK_FRAMEWORK_DEBUG is defined.

When child class inherit this method to output the contents of its own members, it should call the parent before providing its own output.

Reimplemented from __FCNoInciOther.

◆ DeleteEverything()

void FCSmartShape::DeleteEverything ( )

Deletes the internal smartshape data, the center shapes and the smartshape marks.

Please note that the center shapes are only deleted if _LoadCenterShapes has been called.

Lua-supported.

◆ GetAvoidAccidentals()

SMARTSHAPE_3STATE FCSmartShape::GetAvoidAccidentals ( ) const
inline

Gets the 'avoid accidentals' setting to any of the auto/on/off states.

Lua-supported (also as property).

Returns
Any of these 3 constants: SS_OFFSTATE, SS_ONSTATE, SS_AUTOSTATE

◆ GetBeatAttached()

bool FCSmartShape::GetBeatAttached ( ) const

On Finale 2014 and above, returns if the end points are beat-attached or not.

Lua-supported (also as property).

Returns
Always returns false on pre-Finale 2014 systems.

◆ GetClassID()

const PDKFRAMEWORK_CLASSID FCSmartShape::GetClassID ( ) const
inlineoverridevirtual

Returns the internal class ID for the PDK Framework class. This is implemented mostly because Lua has problems to resolve the true classes of inherited objects.

This method must be overwritten by all child classes.

Lua-supported (also read-only property) (0.55).

Implements __FCBaseData.

◆ GetCtrlPointAdjust()

FCSmartShapeCtrlPointAdjust * FCSmartShape::GetCtrlPointAdjust ( )
inline

Returns the object that controls the shape of the smart shape.

Lua-supported.

◆ GetEngraverSlur()

SMARTSHAPE_3STATE FCSmartShape::GetEngraverSlur ( ) const
inline

Returns the engraver slur state for the slur.

Lua-supported (also as property).

Returns
Any of these 3 constants SS_OFFSTATE, SS_ONSTATE, SS_AUTOSTATE

◆ GetEntryBased()

bool FCSmartShape::GetEntryBased ( ) const
inline

Returns true if the smart shape is a note entry-connected shape.

Lua-supported (also as property).

◆ GetLineID()

twobyte FCSmartShape::GetLineID ( ) const
inline

Returns the line style ID for custom smart shapes.

Lua-supported (also as property).

◆ GetMaintainAngle()

bool FCSmartShape::GetMaintainAngle ( ) const
inline

Returns the flag that determines how the how the y value is interpreted on SmartShape system breaks.

Lua-supported (also as property).

Returns
True - Maintain Angle Over System Break. False - Make Horizontal Over System Break.

◆ GetMakeHorizontal()

bool FCSmartShape::GetMakeHorizontal ( ) const
inline

Returns the state of the "make horizontal" flag.

Lua-supported (also as property).

◆ GetPresetShape()

bool FCSmartShape::GetPresetShape ( ) const
inline

Returns if the shape is preset or custom.

Lua-supported (also as property).

◆ GetShapeType()

SMARTSHAPE_TYPES FCSmartShape::GetShapeType ( ) const
inline

Returns the smart shape style (any of the SMARTSHAPE_TYPES constants).

Lua-supported (also as property).

◆ GetTerminateSegmentLeft()

FCSmartShapeSegment * FCSmartShape::GetTerminateSegmentLeft ( )
inline

Returns the object pointer for the terminating left-side end segment.

Lua-supported.

Returns
A FCSmartShapeSegment object.

◆ GetTerminateSegmentRight()

FCSmartShapeSegment * FCSmartShape::GetTerminateSegmentRight ( )
inline

Returns the object pointer for the terminating right-side end segment.

Lua-supported.

◆ GetVisible()

bool FCSmartShape::GetVisible ( ) const
inline

Returns the visibility state of the smart shape.

Lua-supported (also as property).

◆ IsAutoSlur()

bool FCSmartShape::IsAutoSlur ( )
inline

Returns true if the smart shape is an "auto" slur (solid or dashed).

Lua-supported.

◆ IsCustomLine()

bool FCSmartShape::IsCustomLine ( )
inline

Returns true if the shape is a smartshape created with the Custom Line Tool.

Lua-supported.

◆ IsDashedCurve()

bool FCSmartShape::IsDashedCurve ( )
inline

Returns true if the smart shape is a dashed curve. (This does not include the new dashed slur type in Finale 25.)

Lua-supported.

Returns
True if the shape type is any of the dashed curve types (auto/down/up).

◆ IsDashedSlur()

bool FCSmartShape::IsDashedSlur ( )
inline

Returns true if the smart shape is a dashed slur (introduced in Finale 25).

Lua-supported.

Returns
True if the shape type is any of the dashed slur types (auto/down/up). Always false on Finale versions earlier than Finale 25.

◆ IsEntryBased()

bool FCSmartShape::IsEntryBased ( )
inline

Returns true if the smart shape is entry-based.

Lua-supported.

◆ IsGlissando()

bool FCSmartShape::IsGlissando ( )
inline

Returns true if the shape is a glissando.

Lua-supported.

◆ IsHairpin()

bool FCSmartShape::IsHairpin ( )
inline

Returns true if the smart shape is a hairpin.

Lua-supported.

◆ IsOverSlur()

bool FCSmartShape::IsOverSlur ( )
inline

Returns true if the smart shape is an "over" slur (solid or dashed).

Lua-supported.

◆ IsSlur()

bool FCSmartShape::IsSlur ( )
inline

Returns true if the smart shape is a slur (solid or dashed).

Lua-supported.

◆ IsSolidSlur()

bool FCSmartShape::IsSolidSlur ( )
inline

Returns true if the smart shape is a solid (non-dashed) slur.

Lua-supported.

Returns
True if the shape type is any of the slur types (auto/down/up).

◆ IsTabSlide()

bool FCSmartShape::IsTabSlide ( )
inline

Returns true if the shape is a tab slide.

Lua-supported.

◆ IsTwoHooks()

bool FCSmartShape::IsTwoHooks ( )
inline

Returns true if the smart shape is an predefined line with hooks on both left and right sides (solid or dashed).

Lua-supported.

◆ IsUnderSlur()

bool FCSmartShape::IsUnderSlur ( )
inline

Returns true if the smart shape is an "under" slur (solid or dashed).

Lua-supported.

◆ IsWithinRegion()

bool FCSmartShape::IsWithinRegion ( FCMusicRegion pRegion)

Returns true if the full smart shape is within the region (both vertically and horizontally.)

Lua-supported.

◆ SaveNew()

bool FCSmartShape::SaveNew ( )
overridevirtual

Overridden version of the creation of smart shapes, since the smart shape data has special requirements.

Lua-supported.

Reimplemented from __FCNoInciOther.

◆ SaveNewEverything()

bool FCSmartShape::SaveNewEverything ( FCNoteEntry pFirstEntry = NULL,
FCNoteEntry pLastEntry = NULL 
)

Saves all structures required for smart shapes.

For measure-attached smart shapes, pFirstEntry and pLastEntry should be NULL.

For note-attached smart shapes, the frame collection that contains the entries need to be saved after the successful return from this method.

Lua-supported.

◆ SetAvoidAccidentals()

void FCSmartShape::SetAvoidAccidentals ( SMARTSHAPE_3STATE  state)
inline

Sets the 'avoid accidentals' setting to any of the auto/on/off states.

Lua-supported (also as property).

Parameters
stateAny of these 3 constants: SS_OFFSTATE, SS_ONSTATE, SS_AUTOSTATE

◆ SetBeatAttached()

void FCSmartShape::SetBeatAttached ( bool  state)

On Finale 2014 and above, it will define if the end points should be beat-attached. If the end point is beat-attached, the horizontal offset will be relative to the anchor point.

For measure-attached smart shapes, it's highly recommended that beat-attached end points are set to ON on Finale 2014 and above.

This method doesn't do anything on pre-Finale 2014 configurations.

Lua-supported (also as property).

◆ SetEngraverSlur()

void FCSmartShape::SetEngraverSlur ( SMARTSHAPE_3STATE  state)
inline

Sets the engraver slur setting to any of the auto/on/off states.

Lua-supported (also as property).

Parameters
stateAny of these 3 constants: SS_OFFSTATE, SS_ONSTATE, SS_AUTOSTATE

◆ SetEntryAttachedFlags()

void FCSmartShape::SetEntryAttachedFlags ( bool  presetshape)
inline

Configures the smart shape as an entry-attached shape.

This method doesn't set the shape type nor the actual assignment location.

Parameters
presetshapeTrue if the shape is a predefined shape in Finale.

◆ SetEntryBased()

void FCSmartShape::SetEntryBased ( bool  value)
inline

Sets if the smart shape is a note entry-connected shape or not.

Lua-supported (also as property).

◆ SetHairpinFlags()

void FCSmartShape::SetHairpinFlags ( )
inline

Configures the basic smart shape flags required for a hairpin.

This method doesn't set the hairpin shape type nor the actual assignment location.

Lua-supported.

◆ SetLineID()

void FCSmartShape::SetLineID ( twobyte  identifier)
inline

Returns the line style ID for custom smart shape lines.

Lua-supported (also as property).

◆ SetMaintainAngle()

void FCSmartShape::SetMaintainAngle ( bool  state)
inline

Sets the flag that determines how the how the y value is interpreted on SmartShape system breaks.

Lua-supported (also as property).

Parameters
stateTrue - Maintain Angle Over System Break. False - Make Horizontal Over System Break.

◆ SetMakeHorizontal()

void FCSmartShape::SetMakeHorizontal ( bool  state)
inline

Sets the state of the "make horizontal" flag.

Lua-supported (also as property).

◆ SetMeasureAttachedFlags()

void FCSmartShape::SetMeasureAttachedFlags ( bool  presetshape,
bool  makehorizontal 
)

Configures the smart shape flags as a measure-attached shape.

This method doesn't set the shape type nor the actual assignment location.

On Finale 2014 and above, this method will additionally set the end points to beat-attached.

Lua-supported.

Parameters
presetshapeTrue if the shape is a predefined shape in Finale.
makehorizontalTrue if the "Make Horizontal" state should be set for the smart shape.

◆ SetPresetShape()

void FCSmartShape::SetPresetShape ( bool  value)
inline

Returns if the shape is preset or custom.

Lua-supported (also as property).

◆ SetShapeType()

void FCSmartShape::SetShapeType ( SMARTSHAPE_TYPES  shapevalue)
inline

Sets the smart shape style.

Lua-supported (also as property).

◆ SetSlurFlags()

void FCSmartShape::SetSlurFlags ( bool  entrybased)
inline

Configures the basic smart shape flags required for a slur.

This method doesn't set the slur shape type nor the actual assignment locations.

Lua-supported.

Parameters
entrybasedTrue if it's going to be an entry-based slur.

◆ SetVisible()

void FCSmartShape::SetVisible ( bool  visible)
inline

Sets the visibility state of the smart shape.

Lua-supported (also as property).