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

Base class for all UI controls in a dialog. More...

#include <ff_dialogs.h>

Inheritance diagram for FCControl:
__FCBase FCCtrlCheckbox FCCtrlDataList FCCtrlEdit FCCtrlImage FCCtrlLine FCCtrlListBox FCCtrlPopup FCCtrlRadioButton FCCtrlSlider FCCtrlStatic FCCtrlSwitcher FCCtrlTextEditor FCCtrlTree FCCtrlUpDown

Public Types

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_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...
 
 FCControl (twobyte id, const __FCControlTypedPtr &subclassPtr)
 The constructor. More...
 
 FCControl (twobyte id)
 The constructor for external C++ subclasses. More...
 
virtual ~FCControl ()
 Destructor.
 
bool GetPointsMeasurement ()
 Returns if the measurements and positioning is in points or in a system-native unit. More...
 
__FCUserWindowGetParent () const
 Returns the parent window object for the control.
 
bool WindowExists () const
 Returns true if a valid parent window handle (and control handle) is available.
 
HWND _GetWinControlHandle () const
 For internal use only. Returns the handle for the control.
 
virtual void Repaint ()
 Force a visual update of the control. More...
 
int GetControlID () const
 Returns the control ID for the control. More...
 
int GetAssignedID () const
 Gets the connected ID regardless of platform. More...
 
CONTROL_ACTIONS GetAction () const
 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 () const
 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. More...
 
virtual void SetFont (const FCFontInfo *fontInfo)
 Sets the font information for the text of the control. More...
 
virtual FCFontInfoCreateFontInfo () const
 Creates font information from the current text font of the control. More...
 
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 bool AssureWidthForText ()
 Lengthens the width of the control to the extent necessary to display all the text in the control. More...
 
void AssureNoHorizontalOverlap (const FCControl &control, int padding)
 Shift the control right as needed to the extent necessary so that its GetLeft position will accommodate the width of the specified control plus the specified padding. You can call this function with more than one reference control. More...
 
void HorizontallyAlignLeftWith (const FCControl *pControl, double offset=0)
 Specifies a control with which to horizontally align left. All controls set to align with this control align at the location of the one with the largest GetLeft value. This function replaces any previous horizontal alignment options. More...
 
void HorizontallyAlignRightWith (const FCControl *pControl, double offset=0)
 Specifies a control with which to horizontally align right. All controls set to align with this control align at the location of the one with the largest right value (GetLeft + GetWidth). This function replaces any previous horizontal alignment options. More...
 
void HorizontallyAlignRightWithFurthest (double offset=0)
 Specifies that this control should align with the control that extends furthest to the right. Calling this function replaces any other control that has been set for horizontal alignment. More...
 
void DoAutoResizeWidth (std::optional< double > minimumwidth=std::nullopt)
 Sets the autoresize width option for the control. When this value is set, the control calls AssureWidthForText automatically when the window initializes and every time SetText is called while the window is running. More...
 
void StretchToAlignWithRight ()
 Sets a control to stretch its width to align with the furthest right control. More...
 
virtual void SetText (const FCString *pString)
 Sets the text for the control. More...
 
virtual void GetText (FCString *pString) const
 Gets the text of the control. More...
 
void SetLeft (float pos)
 Sets the left position of the control. More...
 
float GetLeft ()
 Returns the left position of the control. More...
 
void SetTop (float pos)
 Sets the top position of the control. More...
 
float GetTop ()
 Returns the top position of the control. More...
 
float GetHeight ()
 Returns the height of the control. More...
 
float GetWidth ()
 Returns the width of the control. More...
 
bool GetVisible ()
 Returns the visibility state of a control. More...
 
void SetWidth (float width)
 Sets the width of the control. More...
 
void SetHeight (float height)
 Sets the height of the control. More...
 
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...
 
bool RedrawImmediate () const
 Redraws the control immediately. Calling this allows your program that has blocked the main thread to show immediate results without relinquishing control back to the operating system. More...
 
- Public Member Functions inherited from __FCBase
virtual const PDKFRAMEWORK_CLASSID GetClassID () const
 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...
 
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...
 
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. 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 __FCBase
 __FCBase ()
 The constructor.
 

Detailed Description

Base class for all UI controls in a dialog.

This class provides basic functionality for all its child classes (such as position, visibility and size), but a control can't be created from the FCControl class alone. Instead, use the child classes.

Todo:
Fix issue where NSButton controls on macOS creep up the window when SetHeight is called during the lifetime of the window.

Requires PDK_FRAMEWORK_DIALOGS to be defined.

Member Enumeration Documentation

◆ CONTROL_ACTIONS

Predefined actions for controls.

These constants is only used for push buttons.

Constructor & Destructor Documentation

◆ FCControl() [1/2]

FCControl::FCControl ( twobyte  id,
const __FCControlTypedPtr &  subclassPtr 
)
inline

The constructor.

Parameters
idA unique value that identifies this control. You can use it in callback handlers to identify the control that is receiving the callback.
subclassPtrSubclasses should pass this for subclassPtr. It allows FCControl to access the correct subtype for the control.

Example

FCCtrlEdit(twobyte id) : FCControl(id, this) // constructor for FCCtrlEdit
{}
Base class for all UI controls in a dialog.
Definition: ff_dialogs.h:1536
Class that handles edit controls.
Definition: ff_dialogs.h:2680

◆ FCControl() [2/2]

FCControl::FCControl ( twobyte  id)
inline

The constructor for external C++ subclasses.

Parameters
idA unique value that identifies this control. You can use it in callback handlers to identify the control that is receiving the callback.

Member Function Documentation

◆ AssureNoHorizontalOverlap()

void FCControl::AssureNoHorizontalOverlap ( const FCControl control,
int  padding 
)
inline

Shift the control right as needed to the extent necessary so that its GetLeft position will accommodate the width of the specified control plus the specified padding. You can call this function with more than one reference control.

AssureNoHorizontalOverlap never reduces the GetLeft position. It either leaves it alone or increases it as needed.

To have an effect, this function must be called before the window is running, It does not work with buttons created using FCCustomWindow::CreateOkButton or FCCustomWindow::CreateCancelButton.

Lua-supported (0.71).

Parameters
controlthe reference control from which to assure no horizontal overlap
paddingadditional padding to assure exists between the reference control and this control

◆ AssureWidthForText()

bool FCControl::AssureWidthForText ( )
virtual

Lengthens the width of the control to the extent necessary to display all the text in the control.

The window must be running. AssureWidthForText never makes a control narrower than it already is. Use DoAutoResizeWidth to request this feature before the window is running.

AssureWidthForText works consistently across macOS and Windows for the following types of controls:

For other control types, the result (if any) is not guaranteed to be consistent or even effective.

Lua-supported (0.71).

Returns
true if success; false if the Window is not running or other error.

Reimplemented in FCCtrlPopup, and FCCtrlComboBox.

◆ ClassName()

const char * FCControl::ClassName ( ) const
inlineoverridevirtual

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

Lua-supported.

Implements __FCBase.

Reimplemented in FCCtrlUpDown, FCCtrlLine, FCCtrlHorizontalLine, FCCtrlVerticalLine, FCCtrlStatic, FCCtrlEdit, FCCtrlPopup, FCCtrlComboBox, FCCtrlTextEditor, FCCtrlDataList, FCCtrlListBox, FCCtrlTree, FCCtrlSwitcher, FCCtrlRadioButton, FCCtrlCheckbox, FCCtrlButton, FCCtrlSlider, and FCCtrlImage.

◆ CreateFontInfo()

FCFontInfo * FCControl::CreateFontInfo ( ) const
virtual

Creates font information from the current text font of the control.

See SetFont for a discussion of the information that is copied and differences between OS platforms. You can call this function before the window is running to get a copy a font you have already set with SetFont. Otherwise, CreateFontInfo returns NULL until the window is running. After the window is running, CreateFontInfo returns a copy of the control's font, irrespective of whether you have ever called SetFont previously.

C++ clients must dispose of the pointer after use. Lua scripts do not need to worry about this.

Lua-supported (0.64).

Returns
Control's text font or NULL if error or if the window is not running and SetFont has never been called.

◆ DoAutoResizeWidth()

void FCControl::DoAutoResizeWidth ( std::optional< double >  minimumwidth = std::nullopt)
inline

Sets the autoresize width option for the control. When this value is set, the control calls AssureWidthForText automatically when the window initializes and every time SetText is called while the window is running.

You can optionally set the minimum width for the control. If you omit it it, the current width of the control (whether explicitly set or the default) becomes the minimum width. A subsequent call to SetWidth overrides any minimum width set here.

Call this function before the window is running. See AssureWidthForText for more information.

Lua-supported (0.71).

Parameters
minimumwidth(optional on both C++ and Lua) if present, set the minumum width to this value

◆ GetAction()

CONTROL_ACTIONS FCControl::GetAction ( ) const
inline

Returns the dialog acction assigned to the control.

Actions is only used for push buttons.

◆ GetAssignedID()

int FCControl::GetAssignedID ( ) const
inline

Gets the connected ID regardless of platform.

Use GetControlID to obtain the ID actually used in the native windowing system.

◆ GetControlID()

int FCControl::GetControlID ( ) const
inline

Returns the control ID for the control.

On Windows and Cocoa, this is the ID itself.

This implementation is for legacy reasons (Carbon). On current platforms, there is no difference between this method and GetAssignedID.

Lua-supported

Returns
If the control hasn't been added correctly to the dialog collection, -1 is returned.

◆ GetEnable()

bool FCControl::GetEnable ( ) const
virtual

Returns the enable/grayed state of the control (if user input should be allowed or not).

Technical: This version is virtual, so child classes can override with custom functionality. (If child classes overwrite, this implementation must be called if WindowExists() returns false.)

Lua-supported

◆ GetHeight()

float FCControl::GetHeight ( )

Returns the height of the control.

Lua-supported.

◆ GetLeft()

float FCControl::GetLeft ( )

Returns the left position of the control.

Lua-supported.

◆ GetPointsMeasurement()

bool FCControl::GetPointsMeasurement ( )
inline

Returns if the measurements and positioning is in points or in a system-native unit.

This is set automatically.

◆ GetText()

void FCControl::GetText ( FCString pString) const
virtual

Gets the text of the control.

Lua-supported.

◆ GetTop()

float FCControl::GetTop ( )

Returns the top position of the control.

Lua-supported.

◆ GetVisible()

bool FCControl::GetVisible ( )

Returns the visibility state of a control.

Lua-supported.

◆ GetWidth()

float FCControl::GetWidth ( )

Returns the width of the control.

Lua-supported.

◆ HorizontallyAlignLeftWith()

void FCControl::HorizontallyAlignLeftWith ( const FCControl pControl,
double  offset = 0 
)
inline

Specifies a control with which to horizontally align left. All controls set to align with this control align at the location of the one with the largest GetLeft value. This function replaces any previous horizontal alignment options.

To have an effect, this function must be called before the window is running, It does not work with buttons created using FCCustomWindow::CreateOkButton or FCCustomWindow::CreateCancelButton.

Lua-supported (0.71)

Parameters
pControlthe control to align with: if NULL, then alignment is disabled
offset(optional for C++ and Lua) an amount to offset from the alignment point; default is 0

◆ HorizontallyAlignRightWith()

void FCControl::HorizontallyAlignRightWith ( const FCControl pControl,
double  offset = 0 
)
inline

Specifies a control with which to horizontally align right. All controls set to align with this control align at the location of the one with the largest right value (GetLeft + GetWidth). This function replaces any previous horizontal alignment options.

To have an effect, this function must be called before the window is running, It does not work with buttons created using FCCustomWindow::CreateOkButton or FCCustomWindow::CreateCancelButton.

Lua-supported (0.71)

Parameters
pControlthe control to align with: if NULL, then alignment is disabled
offset(optional for C++ and Lua) an amount to offset from the alignment point; default is 0

◆ HorizontallyAlignRightWithFurthest()

void FCControl::HorizontallyAlignRightWithFurthest ( double  offset = 0)
inline

Specifies that this control should align with the control that extends furthest to the right. Calling this function replaces any other control that has been set for horizontal alignment.

To have an effect, this function must be called before the window is running.

Lua-supported (0.71)

Parameters
offset(optional for C++ and Lua) an amount to offset from the alignment point; default is 0

◆ MoveAbsolute()

void FCControl::MoveAbsolute ( float  x,
float  y 
)

Moves the control in absolute coordinates.

Lua-supported (0.63).

Parameters
xPosition for the left side.
yPosition for the top side.

◆ MoveRelative()

void FCControl::MoveRelative ( float  horizmove,
float  vertmove 
)

Moves the control relatively to the current position.

This function only works after the window is running, so Lua scripts must use it in callbacks from FCCustomLuaWindow.

Lua-supported (0.63).

Parameters
horizmoveUnits that the control should be moved horizontally. Positive is to the right.
vertmoveUnits that the control should be moved vertically. Positive is downwards.

◆ RedrawImmediate()

bool FCControl::RedrawImmediate ( ) const

Redraws the control immediately. Calling this allows your program that has blocked the main thread to show immediate results without relinquishing control back to the operating system.

This function may introduce a very small delay that can slightly affect benchmark timings, so use it sparingly when benchmarking.

Lua-supported (0.68)

Returns
true if the control was redrawn, false if the window is not active or there was an error.

◆ Repaint()

virtual void FCControl::Repaint ( )
inlinevirtual

Force a visual update of the control.

Currently only implemented on Windows, but can be overridden in child classes.

Reimplemented in FCCtrlTree.

◆ ResizeRelative()

void FCControl::ResizeRelative ( float  horizresize,
float  vertresize 
)
virtual

Resizes the control relatively to the current size. Top left corner will stay fixed.

Todo:
Resizing vertically does not always work correctly for FCCtrlButton controls on macOS.

Lua-supported (0.63).

Parameters
horizresizeUnits that the control should be resized horizontally.
vertresizeUnits that the control should be resized vertically.

◆ SetAction()

void FCControl::SetAction ( CONTROL_ACTIONS  action)
inline

Sets the dialog acction assigned to the control.

Actions is only used for push buttons.

◆ SetBold()

void FCControl::SetBold ( bool  state)
virtual

Sets the boldface appearance for the control.

This is a legacy function. It does not work with Windows HiDPI awareness if the DPI changes. New code should use CreateFontInfo followed by SetFont.

◆ SetEnable()

void FCControl::SetEnable ( bool  state)
virtual

Sets the enable/grayed state of the control (if user input should be allowed or not).

Technical: This version is virtual, so child classes can override with custom functionality. (If child classes overwrite, this implementation must be called if WindowExists() returns false.)

Lua-supported

◆ SetFont()

void FCControl::SetFont ( const FCFontInfo fontInfo)
virtual

Sets the font information for the text of the control.

The following information is set:

  • Font Family Name
  • Size
  • Bold State
  • Italic State
  • StrikeOut State (Windows only)
  • Underline State (Windows only)

Note that for macOS you must use the font family name (e.g., "Helvetica") rather than a name that contains the style (e.g., "Helvetica Bold"). It is recommended to do the same for Windows. Also, bold, italic, or combined only works on macOS if the font family contains a font with that style or combination of styles.

Some controls on macOS react differently to custom fonts than their counterparts on Windows. Nevertheless, you can at least count on fairly consistent cross-platform behavior with FCCtrlStatic, FCCtrlEdit, and FCCtrlTextEditor.

Lua-supported (0.63)

Parameters
fontInfoThe FCFontInfo instance containing the new font information.

◆ SetHeight()

void FCControl::SetHeight ( float  height)

Sets the height of the control.

Warning
If you call this function while the window is running, always call SetTop afterwards. This works around an issue on macOS where calling SetHeight while the window is running causes buttons and popups to creep up the window.

Lua-supported.

◆ SetKeyboardFocus()

void FCControl::SetKeyboardFocus ( )
virtual

Sets the keyboard focus to the control.

This version is virtual, so child classes can override with custom functionality.

Lua-supported (0.61)

◆ SetLeft()

void FCControl::SetLeft ( float  pos)

Sets the left position of the control.

Lua-supported.

◆ SetText()

void FCControl::SetText ( const FCString pString)
virtual

Sets the text for the control.

Lua-supported.

Parameters
pStringA NULL value clears the control text. Otherwise, the pointer to a FCString object.

◆ SetTop()

void FCControl::SetTop ( float  pos)

Sets the top position of the control.

Lua-supported.

◆ SetVisible()

void FCControl::SetVisible ( bool  bShow)
virtual

Sets the visibility of the control.

This version is virtual, so child classes can override with custom functionality.

Lua-supported

◆ SetWidth()

void FCControl::SetWidth ( float  width)

Sets the width of the control.

Lua-supported.

◆ StretchToAlignWithRight()

void FCControl::StretchToAlignWithRight ( )
inline

Sets a control to stretch its width to align with the furthest right control.

To have an effect, this function must be called before the window is running.

Lua-supported (0.71)