Finale PDK Framework  0.54
Public Member Functions | List of all members
FCIteratorHandler Class Reference

Class for iterator handlers. More...

#include <ff_iterator.h>

Inheritance diagram for FCIteratorHandler:
__FCBase __FCNumbersIteratorHandler

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...
 
 FCIteratorHandler (bool bUseProgressBar=false, bool bUserAbortable=false)
 The constructor. More...
 
virtual bool Iterate (__FCBase *pObject)
 The virtual callback method when iterating through multiple objects. This method is called exactly one time for each object. More...
 
virtual bool SecondPassIterate (__FCBase *pObject)
 A second-pass virtual callback method when iterating through multiple objects. More...
 
virtual bool IterateIndex (__FCBase *pObject, int index)
 Same as Iterate, but with a collection index as well.
 
virtual bool Match (__FCBase *pObject)
 The virtual callback method to decide a object match. More...
 
virtual int Compare (__FCBase *pObject1, __FCBase *pObject2)
 The virtual callback method to compare 2 objects. More...
 
virtual bool PreProcess ()
 A virtual callback that can be used for preprocessing before any objects are processed. More...
 
virtual bool PreProcessIfExist ()
 A virtual callback that can be used for preprocessing before any objects are processed, but only if there are objects to iterate. More...
 
virtual void PostProcess ()
 A virtual callback that can be used for postprocessing after all objects have been processed. More...
 
virtual void PostProcessIfExist ()
 A virtual callback that can be used for postprocessing after all objects have been processed, but only if there has been any objects to iterate. More...
 
void SetLastAbortState (bool value)
 For internal use only! Sets the latest abort state. More...
 
bool GetLastAbortState ()
 Gets the user abort state of the last iteration process. More...
 
bool GetUseProgressBar ()
 Gets the current state of the setting for using the progress bar. More...
 
void SetUseProgressBar (bool value)
 Sets the current state of the setting for using the progress bar. More...
 
bool GetProgressBarAbortable ()
 Gets the current state of the setting for being able the abort the progress bar processing. More...
 
void SetProgressBarAbortable (bool value)
 Sets the current state of the setting for being able the abort the progress bar processing. More...
 
bool GetSaveAfterIterate ()
 Gets the current state of the "Save after iterate" setting. See SetSaveAfterIterate for more info. More...
 
void SetSaveAfterIterate (bool value)
 Set the state that the iterator wants the caller to automatically save the data after the Iterate call. This feature might NOT be supported by the caller! 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 DebugDump ()
 Outputs the class data/information for debugging purposes. 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...
 

Detailed Description

Class for iterator handlers.

An iterator handler is the object that controls the iteration process. Iterator handles are used both by the collection classes and the browser classes.

The most important method in this class is the Iterate() method; overide this method in child classes to provide new iterator functionality.

Although you can use this class without creating a child class, such an iterator object would not provide any functionality.

Constructor & Destructor Documentation

FCIteratorHandler::FCIteratorHandler ( bool  bUseProgressBar = false,
bool  bUserAbortable = false 
)
inline

The constructor.

Parameters
bUseProgressBarSet to true if a progress bar should be displayed during processing.
bUserAbortableSet to true if a the progress bar process should be abortable by the user (pressing the Escape key).

Member Function Documentation

virtual const char* FCIteratorHandler::ClassName ( )
inlinevirtual

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

Lua-supported.

Reimplemented from __FCBase.

virtual int FCIteratorHandler::Compare ( __FCBase pObject1,
__FCBase pObject2 
)
inlinevirtual

The virtual callback method to compare 2 objects.

This method is called by __FCCollection::Sort

Parameters
pObject1Pointer to object 1
pObject2Pointer to object 1
Returns
Any of these return values: 0 - pObject1 is equal to pObject2 Below 0 - pObject1 is less than pObject2 Below 1 - pObject1 is greater than pObject2

Reimplemented in __FCNumbersIteratorHandler.

bool FCIteratorHandler::GetLastAbortState ( )
inline

Gets the user abort state of the last iteration process.

Returns
The state of the latest iteration process. true means that the process was aborted by the user.
bool FCIteratorHandler::GetProgressBarAbortable ( )
inline

Gets the current state of the setting for being able the abort the progress bar processing.

Returns
The state
bool FCIteratorHandler::GetSaveAfterIterate ( )
inline

Gets the current state of the "Save after iterate" setting. See SetSaveAfterIterate for more info.

Returns
The current state of the setting
bool FCIteratorHandler::GetUseProgressBar ( )
inline

Gets the current state of the setting for using the progress bar.

Returns
The state
virtual bool FCIteratorHandler::Iterate ( __FCBase pObject)
inlinevirtual

The virtual callback method when iterating through multiple objects. This method is called exactly one time for each object.

Returns
Return true if the iteration process should continue to the next object in the list. Return false if no more objects should be processed.
virtual bool FCIteratorHandler::Match ( __FCBase pObject)
inlinevirtual

The virtual callback method to decide a object match.

Returns
Return true if the object matches, otherwise false.
virtual void FCIteratorHandler::PostProcess ( )
inlinevirtual

A virtual callback that can be used for postprocessing after all objects have been processed.

This method is called even if the list of objects is empty.

Currently supported by FCBrowserNoteEntries.

virtual void FCIteratorHandler::PostProcessIfExist ( )
inlinevirtual

A virtual callback that can be used for postprocessing after all objects have been processed, but only if there has been any objects to iterate.

Currently supported by FCBrowserNoteEntries.

virtual bool FCIteratorHandler::PreProcess ( )
inlinevirtual

A virtual callback that can be used for preprocessing before any objects are processed.

This method is called even if the list of objects is empty.

Returns
Return true if it's ok to continue to iterate through the objects. Return false to don't process any objects.

Currently supported by FCBrowserNoteEntries.

virtual bool FCIteratorHandler::PreProcessIfExist ( )
inlinevirtual

A virtual callback that can be used for preprocessing before any objects are processed, but only if there are objects to iterate.

Returns
Return true if it's ok to continue to iterate through the objects. Return false to don't process any objects.

Currently supported by FCBrowserNoteEntries.

virtual bool FCIteratorHandler::SecondPassIterate ( __FCBase pObject)
inlinevirtual

A second-pass virtual callback method when iterating through multiple objects.

This method can be of use if a second pass is required for auto-loaded/saved data collections.

Currently supported by FCBrowserNoteEntries

Returns
Return true if the iteration process should continue to the next object in the list. Return false if no more objects should be processed. By default, this method returns false - indicating that no data should be processed twice.
void FCIteratorHandler::SetLastAbortState ( bool  value)
inline

For internal use only! Sets the latest abort state.

Parameters
valueThe new value.
void FCIteratorHandler::SetProgressBarAbortable ( bool  value)
inline

Sets the current state of the setting for being able the abort the progress bar processing.

This value value can also be set in the constructor.

void FCIteratorHandler::SetSaveAfterIterate ( bool  value)
inline

Set the state that the iterator wants the caller to automatically save the data after the Iterate call. This feature might NOT be supported by the caller!

Please refer to the documentation for the caller class (browser or collection) to see if the feature is supported.

Parameters
valueTrue to flag that data should be automatically saved.
void FCIteratorHandler::SetUseProgressBar ( bool  value)
inline

Sets the current state of the setting for using the progress bar.

This value value can also be set in the constructor.