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

A tree UI control. More...

#include <ff_dialogs.h>

Inheritance diagram for FCCtrlTree:
FCControl __FCBase

Public Member Functions

 FCCtrlTree (twobyte id)
 The constructor.
 
virtual const char * ClassName ()
 Returns the name of the class, for diagnostic purposes. This method MUST be overwritten in each child class. More...
 
FCTreeNodeAddNode (FCTreeNode *pParentNode, bool isContainer, FCString *pText)
 Adds a node to the tree. More...
 
FCTreeNodeInsertNodeAt (FCTreeNode *pParentNode, FCString *pText, int index)
 Inserts a node to a branch in the tree, at a given index. More...
 
bool DeleteNode (FCTreeNode *pNode)
 Deletes a node from the tree, both visually and internally. More...
 
bool SwapNodes (FCTreeNode *pNode1, FCTreeNode *pNode2)
 Swaps the locations of 2 nodes. The nodes must belong to the same parent. More...
 
void ExpandNode (FCTreeNode *pNode)
 Expands a container node visually. More...
 
void CollapseNode (FCTreeNode *pNode)
 Collapses a container node visually. More...
 
bool IsNodeAttached (FCTreeNode *pNode2Find, FCTreeNode *pBaseNode)
 Returns true if the specified node is connected to a specific container node. More...
 
FCTreeNodeFindUserDataNode (void *userdata, FCTreeNode *pBaseNode)
 Finds the first node that contains specific userdata.
 
FCTreeNodeGetSelectedNode ()
 Returns the selected node of the tree. More...
 
int CalcRootIndex (FCTreeNode *pNode)
 Returns the 0-based root index of a tree node. More...
 
int CalcNodeIndex (FCTreeNode *pNode, FCTreeNode *pParentNode)
 Returns the 0-based subindex of a tree node in a container. More...
 
void SetFontSize (int size)
 Sets the font size of the tree control. More...
 
bool SetSelectedNode (FCTreeNode *pNode)
 Selects a specific node in the tree. If the node is currently out of view, the node is brought into view. More...
 
void Clear ()
 Removes all items from the tree control. More...
 
void ExpandAllContainers ()
 Expand all container nodes in the tree. More...
 
void CollapseAllContainers ()
 Collapses all container nodes in the tree. More...
 
int GetRootCount ()
 Returns the number of container nodes in the tree. More...
 
FCTreeNodeGetRootItemAt (int index)
 Returns the root node at the 0-based index position. More...
 
int GetRootIndexOf (FCTreeNode *pNode)
 Returns the index of a node that appears at root level. More...
 
virtual void Repaint ()
 Overridden version of the repaint method.
 
- Public Member Functions inherited from FCControl
 FCControl (twobyte id)
 The constructor. More...
 
virtual ~FCControl ()
 Destructor.
 
bool GetPointsMeasurement ()
 Returns if the measurements and positioning is in points or in a system-native unit. More...
 
__FCUserWindowGetParent ()
 Returns the parent window object for the control.
 
bool WindowExists ()
 Returns true if a valid parent window handle (and control handle) is available.
 
HWND _GetWinControlHandle ()
 For internal use only. Returns to handle for the control.
 
int GetControlID ()
 Returns the control ID for the control. More...
 
int GetAssignedID ()
 Gets the connected ID regardless of platform. More...
 
CONTROL_ACTIONS GetAction ()
 Returns the dialog acction assigned to the control. More...
 
void SetAction (CONTROL_ACTIONS action)
 Sets the dialog acction assigned to the control. More...
 
virtual void SetEnable (bool state)
 Sets the enable/grayed state of the control (if user input should be allowed or not). More...
 
virtual bool GetEnable ()
 Returns the enable/grayed state of the control (if user input should be allowed or not). More...
 
virtual void SetVisible (bool bShow)
 Sets the visibility of the control. More...
 
virtual void SetBold (bool state)
 Sets the boldface appearance for the control.
 
virtual void SetKeyboardFocus ()
 Sets the keyboard focus to the control. More...
 
void SetTextAndResize (FCString *pString)
 Cocoa only: Sets the text and resizes the view inside a NSScrollView.
 
virtual void SetText (FCString *pString)
 Sets the text for the control. More...
 
virtual void GetText (FCString *pString)
 Gets the text of the control.
 
void SetLeft (float pos)
 Sets the left position of the control.
 
float GetLeft ()
 Returns the left position of the control.
 
void SetTop (float pos)
 Sets the top position of the control.
 
float GetTop ()
 Returns the top position of the control.
 
float GetHeight ()
 Returns the height of the control.
 
float GetWidth ()
 Returns the width of the control.
 
bool GetVisible ()
 Returns the visibility state of a control.
 
void SetWidth (float width)
 Sets the width of the control.
 
void SetHeight (float height)
 Sets the height of the control.
 
void MoveRelative (float horizmove, float vertmove)
 Moves the control relatively to the current position. More...
 
void MoveAbsolute (float x, float y)
 Moves the control in absolute coordinates. More...
 
virtual void ResizeRelative (float horizresize, float vertresize)
 Resizes the control relatively to the current size. Top left corner will stay fixed. 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 FCControl
enum  CONTROL_ACTIONS { ACTION_NONE = 0, ACTION_OK = 1, ACTION_CLOSE = 2, ACTION_CANCEL = 3 }
 Predefined actions for controls. More...
 
- 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

A tree UI control.

The contents of a tree is created by adding/linking FCTreeNode objects. Nodes are added with AddNode method. The full tree is starting from an imaginary root node that is invisible. Nodes can be either containers or child items. Containers can include multiple child items. Currently, containers can only appear on root level.

On Windows, it's a native treeview control. On Mac-Cocoa, it's a NSOutlineView control.

Programmatically created controls of this class defaults to a width of 150 points and a height of 170 points.

The added FCTreeNode objects are owned by the FCCtrlTree control.

Member Function Documentation

FCTreeNode * FCCtrlTree::AddNode ( FCTreeNode pParentNode,
bool  isContainer,
FCString pText 
)

Adds a node to the tree.

The method can add both container nodes and child nodes. The container nodes must be at root level, however.

It's the caller's resposibility to delete added/linked nodes from the heap after processing. However, the cleanup must be made after the items have been unlinked from the tree control.

    Lua-supported.

    \param [in] pParentNode The pointer to the parent node object. This
    parameter must be NULL for container nodes.

    \param [in] isContainer True if the added node should be a container (that can
    contain child items). False if the added node should be a child item.

    \param [in] pText Pointer to the #FCString object that contains the node's
    text. This can not be NULL.

    \return A pointer to the added object, or NULL on error.
int FCCtrlTree::CalcNodeIndex ( FCTreeNode pNode,
FCTreeNode pParentNode 
)

Returns the 0-based subindex of a tree node in a container.

Lua-supported.

Parameters
[in]pNodeThe node to get the index for.
[in]pParentNodeThe parent container node. If NULL, the root node will be assumed.
Returns
-1 if the node isn't found, otherwise the 0-based index.
int FCCtrlTree::CalcRootIndex ( FCTreeNode pNode)

Returns the 0-based root index of a tree node.

Lua-supported.

Parameters
[in]pNodeThe node on the root level to calculate retrieve the index for.
Returns
-1 if the node isn't found on the root level, otherwise the 0-based index.
virtual const char* FCCtrlTree::ClassName ( )
inlinevirtual

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

Lua-supported.

Reimplemented from FCControl.

void FCCtrlTree::Clear ( )

Removes all items from the tree control.

Lua-supported.

void FCCtrlTree::CollapseAllContainers ( )

Collapses all container nodes in the tree.

Lua-supported.

void FCCtrlTree::CollapseNode ( FCTreeNode pNode)

Collapses a container node visually.

Lua-supported.

Parameters
[in]pNodeThe FCTreeNode object to collapse.
bool FCCtrlTree::DeleteNode ( FCTreeNode pNode)

Deletes a node from the tree, both visually and internally.

Returns
False on input error. True if the node was deleted.
void FCCtrlTree::ExpandAllContainers ( )

Expand all container nodes in the tree.

Lua-supported.

void FCCtrlTree::ExpandNode ( FCTreeNode pNode)

Expands a container node visually.

Lua-supported.

int FCCtrlTree::GetRootCount ( )
inline

Returns the number of container nodes in the tree.

Lua-supported.

Returns
The total number of nodes in the root container.
int FCCtrlTree::GetRootIndexOf ( FCTreeNode pNode)
inline

Returns the index of a node that appears at root level.

Lua-supported.

Parameters
[in]pNodeAn object that appears at root level.
Returns
-1 if not found. Otherwise, the 0-based index.
FCTreeNode* FCCtrlTree::GetRootItemAt ( int  index)
inline

Returns the root node at the 0-based index position.

Lua-supported.

Parameters
index[in] The 0-based index in the root container.
Returns
NULL if the index is out of range.
FCTreeNode * FCCtrlTree::GetSelectedNode ( )

Returns the selected node of the tree.

Lua-supported.

Returns
The FCTreeNode object that is selected. NULL if no node was selected.
FCTreeNode * FCCtrlTree::InsertNodeAt ( FCTreeNode pParentNode,
FCString pText,
int  index 
)

Inserts a node to a branch in the tree, at a given index.

This method doesn't support insert containers to the root.

Parameters
[in]pParentNodeThe container node that should be the parent for the new node.
[in]index0-based index. 0 will insert the node first in the branch. An index equal or larger to the number of available nodes in the branch will add the node last. A value below 0 will return NULL.
[in]pTextThe text for the inserted node.
Returns
A pointer to the inserted node. NULL on error.
bool FCCtrlTree::IsNodeAttached ( FCTreeNode pNode2Find,
FCTreeNode pBaseNode 
)

Returns true if the specified node is connected to a specific container node.

Lua-supported.

Parameters
[in]pNode2FindThe child node to find.
[in]pBaseNodeThe container node where the node should be find. If NULL, the root node will scanned.
Returns
True if the node was found in the container node.
void FCCtrlTree::SetFontSize ( int  size)
inline

Sets the font size of the tree control.

Can be called on any platform, but works only on Cocoa. This has to be called BEFORE tree items are added.

bool FCCtrlTree::SetSelectedNode ( FCTreeNode pNode)

Selects a specific node in the tree. If the node is currently out of view, the node is brought into view.

Lua-supported.

Parameters
[in]pNodeThe node to select.
Returns
True if the node was selected.
bool FCCtrlTree::SwapNodes ( FCTreeNode pNode1,
FCTreeNode pNode2 
)

Swaps the locations of 2 nodes. The nodes must belong to the same parent.

Lua-supported.

Parameters
[in]pNode1Pointer to the first FCTreeNode object.
[in]pNode2Pointer to the second FCTreeNode object.
Returns
True on success.