Finale PDK Framework
0.54
|
Base class for all collection classes. A collection is a storage that can store multiple objects of similar types. More...
#include <ff_basecollection.h>
Public Member Functions | |
virtual const char * | ClassName () |
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class. More... | |
__FCCollection () | |
The constructor. | |
virtual | ~__FCCollection () |
The virtual destructor, which deallocates the array and also all its elements. More... | |
int | GetCount () const |
Returns the number of elements of the collection. More... | |
void | Add (__FCBase *pNewItem) |
Adds an element to the end of the collection. More... | |
bool | UniqueAdd (__FCBase *pNewItem) |
Adds an element to the end of the collection, but only if it doesn't exist in the collection before. More... | |
void | InsertItemAt (__FCBase *pNewItem, int index) |
Inserts an item into the collection. More... | |
bool | ElementExists (__FCBase *pQueryItem) |
Returns true if the element is found in the collection, otherwise false. More... | |
void | ClearAll () |
Destroys all the objects in the collection and empties the collection. More... | |
void | DetachAll () |
Removes all the objects from the collection, without freeing/destroying the objects. More... | |
__FCBase * | GetItemAt (int index) |
Returns the object at the index position. Index is 0-based. More... | |
__FCBase * | GetLastItem () |
Returns the last item in the collection. | |
__FCBase * | operator[] (int index) |
Identical to the GetItemAt method. | |
int | GetIndexOf (__FCBase *pObject) |
Returns the 0-based order index for the object within the collection. More... | |
__FCBase * | DetachItemAt (int index) |
Removes the object at the index position. Index is 0-based. More... | |
bool | ClearItemAt (int index) |
Deletes the object at the index position and disposes the object. Index is 0-based. More... | |
int | ToEndFrom (int index, FCIteratorHandler *pIterator) |
Processes one element after another and iterates from one specific index to the end of the collection. More... | |
virtual int | ForEach (FCIteratorHandler *pIterator) |
Processes all elements in the collection (starting with item 0), or until the iterator Iterate() returns false. More... | |
virtual int | ForEachIndex (FCIteratorHandler *pIterator) |
Same as ForEach, but the IterateIndex callback of the iterator handler is used instead. | |
virtual __FCBase * | FindFirst (FCIteratorHandler *pIterator) |
Process elements until a match is found. More... | |
__FCBase * | FindUserData (void *data_to_find) |
Returns the first element in the collection that has the indicated userdata. More... | |
bool | Sort (FCIteratorHandler *pIterator) |
Sorts the elements of. More... | |
bool | Swap (int index1, int index2) |
Swaps to items in the collection. More... | |
bool | IsEmpty () |
Returns true if the collection contains no elements. More... | |
int | MoveFrom (__FCCollection *pOtherCollection, bool unique=false) |
Moves elements from another collection into this collection. The other will be empty after the operation. More... | |
bool | IsIdentical (__FCCollection *pCompareCollection) |
Returns true if two collections are considered to be identical. More... | |
virtual void | DebugDump () |
Outputs the class data/information for debugging purposes. More... | |
Public Member Functions inherited from __FCIteratorBase | |
__FCIteratorBase () | |
The constructor. More... | |
Public Member Functions inherited from __FCBase | |
virtual const PDKFRAMEWORK_CLASSID | GetClassID () |
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... | |
__FCBase () | |
The constructor. | |
virtual | ~__FCBase () |
Virtual destructor, so all inherited classes get the virtual destructor. More... | |
void | DebugMsgDigit (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... | |
virtual void | DebugDataDump () |
Outputs a memory dump of the data block in the object for debugging purposes. More... | |
virtual void | DebugDataByteArrayDump () |
Outputs a memory dump of the data block in the object for debugging purposes, as a C++ byte array. More... | |
void | Set16BitFlag (FLAG_16 *flag, FLAG_16 flagbits, bool state) |
Sets a 16 bit flag in the data block. More... | |
void | Set32BitFlag (FLAG_32 *flag, FLAG_32 flagbits, bool state) |
Sets a 32 bit flag in the data block. 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... | |
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 (__FCBase *pCompareObject) |
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 | |
Public Types inherited from __FCBase | |
enum | PDKFRAMEWORK_CLASSID { FCID_UNKNOWN = 0, FCID_ACCIDENTALMOD, FCID_ALLOTMENT, FCID_ARTICULATION, FCID_ARTICULATIONDEF, FCID_BACKWARDREPEAT, FCID_BASELINE, FCID_BEAMMOD, FCID_BEATCHARTELEMENT, 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_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_KEYSIGNATURE, FCID_LAYERPREFS, 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_PERCUSSIONNOTEMOD, FCID_PIANOBRACEPREFS, FCID_PLAYBACKPREFS, FCID_RAWTEXT, FCID_REPEATPREFS, FCID_SECONDARYBEAMBREAKMOD, 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... | |
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 | DebugOutDigit (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, float 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... | |
Base class for all collection classes. A collection is a storage that can store multiple objects of similar types.
Any object that is in the collection at descruction time will be destroyed. This class should not be used directly, but can be inherited by a class who needs to collect items.
|
inlinevirtual |
The virtual destructor, which deallocates the array and also all its elements.
It's the caller's responsibility to make sure that:
void __FCCollection::Add | ( | __FCBase * | pNewItem | ) |
Adds an element to the end of the collection.
It's the caller's responsibility to make sure that there isn't multiple identical objects in the collection at the collection's destruction.
|
inlinevirtual |
Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class.
Lua-supported.
Reimplemented from __FCIteratorBase.
Reimplemented in FCPercussionLayoutNotesLookup, FCPercussionMapNotesLookup, FCPercussionMapNotes, FCNoteEntryLayer, FCSmartShapes, FCCustomSmartLineDefs, FCSmartShapeEntryMarks, FCSmartShapeMeasureMarks, FCNoteEntryCell, FCNoteEntries, FCMetatoolAssignments, FCChords, FCMidiExpressions, FCCellFrameHolds, FCCellTexts, FCCellGraphics, FCCellClefChanges, FCStaffLists, FCInstrumentDefs, FCShapeDefInstructions, FCPercussionLayoutNotes, FCTempoElements, FCBeatChartElements, FCFretboardGroupDefs, FCFretboardStyleDefs, FCChordSuffixElements, FCShapeDefs, FCExecutableShapeDefs, FCTextRepeats, FCNumberCollection, FCFretInstrumentDefs, FCTextRepeatDefs, FCPageGraphics, FCAllotments, FCMultiStaffInstruments, FCFreezeSystems, FCMultiMeasureRests, FCStaffStyleAssigns, FCStaffStyleDefs, FCCompositeTimeSigBottom, FCStrings, FCSeparatePlacements, FCTextBlocks, FCNoteEntry, FCSeparateMeasureNumbers, FCPageTexts, FCExpressions, FCSettingsPairs, FCShapeExpressionDefs, __FCCollectionNoInciDetail, FCTextExpressionDefs, __FCCollectionPrefs, __FCCollectionDetail, FCNotePitches, __FCCollectionGlobal, __FCCollectionNoInciOther, FCCategoryDefs, FCPerformanceMods, FCCompositeTimeSigTop, FCCrossStaffMods, __FCCollectionInciOther, FCDotMods, FCEndTieMods, __FCCollectionEntryDetail, FCStartTieMods, FCSystemStaves, FCParts, FCTablatureNoteMods, __FCCollectionData, FCArticulationDefs, FCPercussionNoteMods, FCAccidentalMods, FCNoteheadMods, FCSectionSyllables, FCMeasureNumberRegions, FCChorusSyllables, FCCells, FCVerseSyllables, FCStaves, FCDocuments, FCTuplets, FCClefDefs, __FCCollectionNoInciCellDetail, FCMeasures, __FCCollectionCellDetail, FCSecondaryBeamMods, FCStaffSystems, FCPrimaryBeamMods, FCBaselines, FCBrokenBeamMods, FCCustomStemMods, FCSecondaryBeamBreakMods, FCPages, FCStemMods, FCGroups, FCArticulations, and FCOtherIncis.
|
inline |
Destroys all the objects in the collection and empties the collection.
Use DetachAll to remove the objects without destroying them.
bool __FCCollection::ClearItemAt | ( | int | index | ) |
Deletes the object at the index position and disposes the object. Index is 0-based.
The object must have the __FCBase class as a base parent.
|
inlinevirtual |
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 __FCBase.
Reimplemented in FCNoteEntryLayer, FCTreeNode, and FCNotePitches.
|
inline |
Removes all the objects from the collection, without freeing/destroying the objects.
use ClearAll to destroy the objects.
__FCBase * __FCCollection::DetachItemAt | ( | int | index | ) |
Removes the object at the index position. Index is 0-based.
The removed object pointer is not disposed by this operation.
bool __FCCollection::ElementExists | ( | __FCBase * | pQueryItem | ) |
Returns true if the element is found in the collection, otherwise false.
|
virtual |
Process elements until a match is found.
This method uses the Match virtual method in the iterator handler to decide a match.
Implements __FCIteratorBase.
__FCBase * __FCCollection::FindUserData | ( | void * | data_to_find | ) |
Returns the first element in the collection that has the indicated userdata.
data_to_find | The data to find as userdata |
|
virtual |
Processes all elements in the collection (starting with item 0), or until the iterator Iterate() returns false.
pIterator | Pointer to an iterator object that will process each object. |
Implements __FCIteratorBase.
|
inline |
Returns the number of elements of the collection.
Lua-supported (also as a read-only property).
int __FCCollection::GetIndexOf | ( | __FCBase * | pObject | ) |
Returns the 0-based order index for the object within the collection.
__FCBase * __FCCollection::GetItemAt | ( | int | index | ) |
Returns the object at the index position. Index is 0-based.
void __FCCollection::InsertItemAt | ( | __FCBase * | pNewItem, |
int | index | ||
) |
Inserts an item into the collection.
pNewItem | The item to insert. |
index | 0-based index. If the index value is bigger than the collection, the item is appended at the end instead. |
|
inline |
Returns true if the collection contains no elements.
Lua-supported.
|
inline |
Returns true if two collections are considered to be identical.
The collections are considered to be identical if:
pCompareCollection | The collection to compare. |
|
inline |
Moves elements from another collection into this collection. The other will be empty after the operation.
pOtherCollection | The pointer to the collection containing the elements to move. |
unique | If true, only append new elements to the current collection if they are unique. If false, append all elements to the current collection. |
bool __FCCollection::Sort | ( | FCIteratorHandler * | pIterator | ) |
Sorts the elements of.
This method uses the Compare virtual method in the iterator handler to decide the relationship between 2 objects.
pIterator | Pointer to the iterator handler object. |
|
inline |
Swaps to items in the collection.
int __FCCollection::ToEndFrom | ( | int | index, |
FCIteratorHandler * | pIterator | ||
) |
Processes one element after another and iterates from one specific index to the end of the collection.
index | The 0-based index value where the iteration should start. |
pIterator | Pointer to an iterator object that will process each object. |
|
inline |
Adds an element to the end of the collection, but only if it doesn't exist in the collection before.