CRM64Pro GDK v0.18.0
A free cross-platform game development kit built on top of SDL 3.0
Loading...
Searching...
No Matches
CRM64Pro::WidgetNumberEditfinal

NumberEdit widget for numeric text input. More...

Detailed Description

NumberEdit widget for numeric text input.

Extends WidgetTextEdit with numeric parsing, range clamping, optional step snapping and integer/float modes.

Inheritance diagram for CRM64Pro::WidgetNumberEdit:

Public Member Functions

bool info (Sint32 iMode=0) override
 Request NumberEdit widget information.
Sint32 setText (const string &sText)
 Set the text.
Sint32 setValue (float fValue)
 Set the numeric value.
float getValue () const
 Get the current numeric value.
Sint32 setRange (float fMin, float fMax)
 Set the allowed numeric range.
Sint32 getRange (float *fMin, float *fMax) const
 Get the current numeric range.
Sint32 setStep (float fStep)
 Set the optional numeric step.
float getStep () const
 Get the numeric step.
Sint32 allowFloat (bool bEnabled=true)
 Enable or disable floating-point input.
bool isFloatAllowed () const
 Check whether floating-point input is enabled.
Public Member Functions inherited from CRM64Pro::WidgetTextEdit
bool info (Sint32 iMode=0) override
 Request TextEdit widget information.
Sint32 setSize (Sint32 iWidth, Sint32 iHeight) override
 Set the text edit size.
bool setMargin (Sint32 iTop, Sint32 iRight, Sint32 iBottom, Sint32 iLeft) override
 Set text-edit content margins.
bool setText (const string &sText)
 Set the text content.
bool getText (string &sText) const
 Get the text content.
Sint32 getCursorLine () const
 Get the current cursor line.
Sint32 setScroll (Sint32 iUnits, bool *bChanged=nullptr)
 Modify the text-edit scroll.
bool getScroll (Sint32 *iUnits) const
 Get the current text-edit scroll.
bool getVisibleItems (Sint32 *iUnits) const
 Get the visible text-edit area.
Sint32 setFont (Sint32 idFont, eWidgetState eWS=WS_DEFAULT) override
 Set the text-edit font.
Sint32 setMultiline (bool bEnable=true)
 Enable or disable multiline editing.
bool isMultiline () const
 Check whether multiline editing is enabled.
Sint32 setReadOnly (bool bEnable=true)
 Enable or disable read-only mode.
bool isReadOnly () const
 Check whether read-only mode is enabled.
Sint32 appendText (const string &sText)
 Append text to the current stream/cursor position.
Sint32 getLineCount () const
 Get the total number of lines.
string getLine (Sint32 iLineIndex) const
 Get a specific line of text.
Sint32 appendLine (const string &sText)
 Add a new line at the bottom.
Sint32 setLine (Sint32 iLineIndex, const string &sText)
 Replace a specific line.
Sint32 insertLine (Sint32 iLineIndex, const string &sText)
 Insert a new line at a specific index.
Sint32 removeLine (Sint32 iLineIndex)
 Remove a specific line.
Public Member Functions inherited from CRM64Pro::Widget
const string & getName () const
 Get the widget name.
Sint32 getID () const
 Get the widget ID.
eWidgetType getType () const
 Get the widget type.
bool disable ()
 Disable a widget.
bool enable ()
 Enable a widget.
bool show ()
 Show a widget.
bool hide ()
 Hide a widget.
eGeneralStatus status () const
 Get the widget status.
bool setFeatures (eWidgetFeature eWF, bool bEnable)
 Set widget feature flags.
eWidgetFeature getFeatures () const
 Get widget feature flags.
Sint32 getWidth () const
 Get the widget width.
Sint32 getHeight () const
 Get the widget height.
Sint32 setPosition (const Position &rPosX=Position(PH_CENTER), const Position &rPosY=Position(PH_CENTER))
 Set the position.
const PositiongetPositionX () const
 Get the widget X position.
const PositiongetPositionY () const
 Get the widget Y position.
bool getMargin (Sint32 *iTop, Sint32 *iRight, Sint32 *iBottom, Sint32 *iLeft)
 Get the margins.
bool setAlphaMod (Uint8 iAlpha)
 Set alpha modulation used for rendering this widget.
Uint8 getAlphaMod () const
 Get alpha modulation used for rendering this widget.
eWidgetState getState () const
 Get the widget state.
Sint32 getFont (eWidgetState eWS=WS_NORMAL) const
 Get the font.
Sint32 setBorderWidth (Sint32 iWidth, eWidgetState eWS=WS_DEFAULT)
 Set the border width.
Sint32 getBorderWidth (eWidgetState eWS=WS_NORMAL) const
 Get the border width.
Sint32 setBorderCorner (Sint32 iRad, eWidgetState eWS=WS_DEFAULT)
 Set the border corner radius.
Sint32 getBorderCorner (eWidgetState eWS=WS_NORMAL) const
 Get the border corner radius.
Sint32 setBorderColor (Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, eWidgetState eWS=WS_DEFAULT)
 Set the border color.
Sint32 getBorderColor (Uint8 *iR, Uint8 *iG, Uint8 *iB, Uint8 *iA, eWidgetState eWS=WS_NORMAL) const
 Get the effective border color.
Sint32 setBackgroundColor (Uint8 iR, Uint8 iG, Uint8 iB, eWidgetState eWS=WS_DEFAULT)
 Set the background color.
Sint32 getBackgroundColor (Uint8 *iR, Uint8 *iG, Uint8 *iB, eWidgetState eWS=WS_NORMAL) const
 Get the effective background color.
Sint32 setSelectionColor (Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA, eWidgetState eWS=WS_DEFAULT)
 Set the selection highlight color.
Sint32 getSelectionColor (Uint8 *iR, Uint8 *iG, Uint8 *iB, Uint8 *iA, eWidgetState eWS=WS_NORMAL) const
 Get the effective selection highlight color.
Sint32 resetSkin (eWidgetState eWS=WS_DEFAULT)
 Clear custom skin overrides and custom background resources.
Uint32 getSkinOverrideMask (eWidgetState eWS=WS_NORMAL) const
 Get the custom skin override mask for one state.
Sint32 clearBackground (eWidgetState eWS=WS_DEFAULT)
 Clear custom background resources for one state.
Sint32 setBackgroundImage (const string &sCDCFile, const string &sName, eWidgetState eWS=WS_NORMAL)
 Set the background image.
Sint32 setBackgroundImage (Sint32 idCDC, const string &sName, eWidgetState eWS=WS_NORMAL)
 Set the background image.
Sint32 setBackgroundImage (Sint32 idImage, eWidgetState eWS=WS_NORMAL)
 Set the background image.
Sint32 getBackgroundImage (eWidgetState eWS=WS_NORMAL) const
 Get the background image.
Sint32 setBackgroundSprite (const string &sCDCFile, const string &sName, eWidgetState eWS=WS_DEFAULT, Sint32 iAnim=0)
 Set the background sprite.
Sint32 setBackgroundSprite (Sint32 idCDC, const string &sName, eWidgetState eWS=WS_DEFAULT, Sint32 iAnim=0)
 Set the background sprite.
Sint32 setBackgroundSprite (Sint32 idSprite, eWidgetState eWS=WS_DEFAULT, Sint32 iAnim=0)
 Set the background sprite.
Sint32 getBackgroundSprite (eWidgetState eWS=WS_NORMAL, Sint32 *iAnim=nullptr) const
 Get the background sprite.
bool setOnAction (function< void(Widget &)> fnCallback)
 Set a callback fired when the widget triggers an action.
bool setOnHoverEnter (function< void(Widget &)> fnCallback)
 Set a callback fired when the widget starts being hovered.
bool setOnHoverExit (function< void(Widget &)> fnCallback)
 Set a callback fired when mouse hover exits the widget.
bool setOnPressed (function< void(Widget &)> fnCallback)
 Set a callback fired when the widget is pressed.
bool setOnFocusLost (function< void(Widget &)> fnCallback)
 Set a callback fired when the widget loses focus.
bool setOnValueCommitted (function< void(Widget &)> fnCallback)
 Set a callback fired when an edit widget commits a changed value.
bool setOnSelectionChanged (function< void(Widget &)> fnCallback)
 Set a callback fired when a selection widget changes selection.
bool setOnValueChanged (function< void(Widget &)> fnCallback)
 Set a callback fired when a live value widget changes value.
bool setOnToggled (function< void(Widget &)> fnCallback)
 Set a callback fired when a toggle widget changes state.
Sint32 setTooltip (const string &sText)
 Set the tooltip text.
const string & getTooltip () const
 Get the tooltip text.
Sint32 setTooltipTTL (Sint32 iMS)
 Set the tooltip auto-hide time.
Sint32 getTooltipTTL () const
 Get the tooltip auto-hide time.
Sint32 setTooltipFollowCursor (bool bEnable=true)
 Set whether the tooltip follows the cursor.
bool isTooltipFollowingCursor () const
 Check whether the tooltip follows the cursor.
bool setTooltipBackgroundColor (Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA)
 Set the widget-local tooltip background color override.
bool getTooltipBackgroundColor (Uint8 *iR, Uint8 *iG, Uint8 *iB, Uint8 *iA) const
 Get the effective tooltip background color.
bool setTooltipBorderColor (Uint8 iR, Uint8 iG, Uint8 iB, Uint8 iA)
 Set the widget-local tooltip border color override.
bool getTooltipBorderColor (Uint8 *iR, Uint8 *iG, Uint8 *iB, Uint8 *iA) const
 Get the effective tooltip border color.
Sint32 setTooltipFontName (const string &sFontName)
 Set the widget-local tooltip font name override.
Sint32 setTooltipFont (Sint32 idFont)
 Set the widget-local runtime tooltip font id override.
Sint32 getTooltipFont () const
 Get the effective tooltip font id.
Uint32 getTooltipOverrideMask () const
 Get the widget-local tooltip style override mask.
Sint32 resetTooltipStyle ()
 Reset widget-local tooltip style overrides.

Member Function Documentation

◆ info()

bool CRM64Pro::WidgetNumberEdit::info ( Sint32 iMode = 0)
overridevirtual

Request NumberEdit widget information.

Writes information to the default log.

Parameters
iModecurrently forwarded to the common widget info path.
Returns
true on success, or false on failure.

Reimplemented from CRM64Pro::Widget.

◆ setText()

Sint32 CRM64Pro::WidgetNumberEdit::setText ( const string & sText)

Set the text.

Sanitizes the incoming text according to the current numeric mode and commits it as the new numeric value. NumberEdit inherits TextEdit keyboard focus, mouse selection, clipboard shortcuts, and undo/redo behavior.

Parameters
sTextText to parse as a number.
Returns
0 on success, or a negative error code on failure.

◆ setValue()

Sint32 CRM64Pro::WidgetNumberEdit::setValue ( float fValue)

Set the numeric value.

Parameters
fValueNumeric value to assign. It is clamped to the current range.
Returns
0 on success, or a negative error code on failure.

◆ getValue()

float CRM64Pro::WidgetNumberEdit::getValue ( ) const

Get the current numeric value.

Returns
Current committed numeric value.

◆ setRange()

Sint32 CRM64Pro::WidgetNumberEdit::setRange ( float fMin,
float fMax )

Set the allowed numeric range.

Parameters
fMinMinimum allowed value.
fMaxMaximum allowed value.
Returns
0 on success, or a negative error code on failure.
Note
If fMin is greater than fMax, the values are normalized by swapping them.

◆ getRange()

Sint32 CRM64Pro::WidgetNumberEdit::getRange ( float * fMin,
float * fMax ) const

Get the current numeric range.

Parameters
fMinPointer to receive the minimum value, or nullptr to skip.
fMaxPointer to receive the maximum value, or nullptr to skip.
Returns
0 on success, or a negative error code on failure.

◆ setStep()

Sint32 CRM64Pro::WidgetNumberEdit::setStep ( float fStep)

Set the optional numeric step.

When greater than zero, committed values are snapped to the nearest step relative to the current minimum.

Parameters
fStepStep size. Use 0 to disable snapping.
Returns
0 on success, or a negative error code on failure.

◆ getStep()

float CRM64Pro::WidgetNumberEdit::getStep ( ) const

Get the numeric step.

Returns
Current step size, or 0 when snapping is disabled.

◆ allowFloat()

Sint32 CRM64Pro::WidgetNumberEdit::allowFloat ( bool bEnabled = true)

Enable or disable floating-point input.

Integer mode is the default. When enabled, one decimal point is accepted and committed values keep their fractional part.

Parameters
bEnabledtrue to allow floating-point input, false to force integer mode.
Returns
0 on success, or a negative error code on failure.

◆ isFloatAllowed()

bool CRM64Pro::WidgetNumberEdit::isFloatAllowed ( ) const

Check whether floating-point input is enabled.

Returns
true when floating-point input is enabled, or false when this widget is operating in integer mode.