PtNumericFloat

Floating-point numeric widget

Class hierarchy:

PtWidgetPtBasicPtContainerPtCompoundPtNumericPtNumericFloat

For more information, see the diagram of the widget hierarchy.

PhAB icon:

PtNumericFloat button in PhAB

Public header:

<photon/PtNumericFloat.h>

Description:

The PtNumericFloat class is a numeric widget that lets you enter floating-point values between given minimum and maximum values. You can also use an incorporated PtScrollbar to increase or decrease the value by a set amount.


PtNumericFloat example


A PtNumericFloat widget.

In addition, you can use the resources defined by PtNumeric to add prefix and suffix strings, and use comma separators. You can use Pt_ARG_NUMERIC_PRECISION to specify the precision of the number (i.e. the number of decimal places, for example, 1,000.00).

PtNumericFloat defines several resources with a C type of double * and a Pt type of Struct. Remember that you can't set and get them as if they were scalar values. Here's how to set the widget's value:

double number = 5.55;

PtSetResource (ABW_base_float, Pt_ARG_NUMERIC_VALUE,
               &number, 0);

Here's how to get the value:

double *number;

PtGetResource (ABW_base_float, Pt_ARG_NUMERIC_VALUE,
               &number, 0);
printf ("Value is %f\n", *number);

Note: PtNumericFloat isn't included in the shared ph library because it uses floating-point operations. If you use it in a non-PhAB application, link with the static library. For more information, see Compiling and linking a non-PhAB application in the Programming Photon without PhAB chapter of the Photon Programmer's Guide.

New resources:

Resource C type Pt type Default
Pt_ARG_NUMERIC_INCREMENT double * Struct 1.0
Pt_ARG_NUMERIC_MAX double * Struct 1000000.00
Pt_ARG_NUMERIC_MIN double * Struct -1000000.00
Pt_ARG_NUMERIC_PRECISION int Scalar 2
Pt_ARG_NUMERIC_VALUE double * Struct 0.0
Pt_CB_NUMERIC_CHANGED PtCallback_t * Link NULL

Pt_ARG_NUMERIC_INCREMENT

C type Pt type Default
double * Struct 1.0

The value by which to increase or decrease the value when the up/down buttons are pressed.

Pt_ARG_NUMERIC_MAX

C type Pt type Default
double * Struct 1000000.00

The maximum value for the widget.

Pt_ARG_NUMERIC_MIN

C type Pt type Default
double * Struct -1000000.00

The minimum value for the widget.

Pt_ARG_NUMERIC_PRECISION

C type Pt type Default
int Scalar 2

The precision or number of displayed decimal places of the widget's current value.

Pt_ARG_NUMERIC_VALUE

C type Pt type Default
double * Struct 0.0

The current value of the widget.

Pt_CB_NUMERIC_CHANGED

C type Pt type Default
PtCallback_t * Link NULL

A list of PtCallback_t structures that define the callbacks invoked when the widget's value changes.

If the widget has the Pt_CALLBACKS_ACTIVE bit set in its Pt_ARG_FLAGS resource, these callbacks are also invoked when your application changes the Pt_ARG_NUMERIC_VALUE with a call to PtSetResource() or PtSetResources(), or if the Pt_ARG_NUMERIC_VALUE is changed indirectly by a change to Pt_ARG_NUMERIC_MIN or Pt_ARG_NUMERIC_MAX.

Each callback is passed a PtCallbackInfo_t structure that contains at least the following members:

reason
Pt_CB_NUMERIC_CHANGED
reason_subtype
A subtype that indicates why the callback was invoked:
event
A pointer to a PhEvent_t structure that describes the event that caused the callback to be invoked, or NULL if there isn't an event.
cbdata
A pointer to a PtNumericFloatCallback_t structure that contains at least:

These callbacks should return Pt_CONTINUE.

Exported subordinate children:

Unless the resources are already defined in PtNumericFloat, the PtNumericFloat class uses the resources of its exported subordinate child, PtScrollbar.

The PtNumericFloat class “inherits” all the resources of its exported subordinate child. Where PtNumericFloat and its exported subordinate child both define resources having the same name, the resource defined in PtNumericFloat takes precedence.

Inherited resources:

If the widget modifies an inherited resource, the “Default override” column indicates the new value. This modification affects any subclasses of the widget.

Resource Inherited from Default override
Pt_ARG_ANCHOR_FLAGS PtWidget Not used by this class.
Pt_ARG_ANCHOR_OFFSETS PtWidget Not used by this class.
Pt_ARG_AREA PtWidget
Pt_ARG_ARM_COLOR PtButton
Pt_ARG_ARM_FILL PtButton Pg_GRAY
Pt_ARG_ARM_IMAGE PtButton
Pt_ARG_BANDWIDTH_THRESHOLD PtBasic Not used by this class.
Pt_ARG_BASIC_FLAGS PtBasic
Pt_ARG_BEVEL_WIDTH PtWidget 0
Pt_ARG_BITMAP_CURSOR PtWidget
Pt_ARG_BEVEL_COLOR PtBasic
Pt_ARG_BEVEL_CONTRAST PtBasic
Pt_ARG_COLOR PtBasic
Pt_ARG_CONTAINER_FLAGS PtContainer Not used by this class.
Pt_ARG_CONTRAST PtBasic
Pt_ARG_CURSOR_COLOR PtWidget
Pt_ARG_CURSOR_OVERRIDE PtContainer
Pt_ARG_CURSOR_TYPE PtWidget
Pt_ARG_DARK_BEVEL_COLOR PtBasic
Pt_ARG_DARK_FILL_COLOR PtBasic
Pt_ARG_DATA PtWidget
Pt_ARG_DIM PtWidget
Pt_ARG_EFLAGS PtWidget
Pt_ARG_EXTENT PtWidget
Pt_ARG_FILL_COLOR PtBasic Pg_TRANSPARENT
Pt_ARG_FILL_PATTERN PtBasic
Pt_ARG_FLAGS PtWidget 0
Pt_ARG_GRID_LAYOUT_DATA PtWidget
Pt_ARG_HEIGHT PtWidget
Pt_ARG_HELP_TOPIC PtWidget
Pt_ARG_HIGHLIGHT_ROUNDNESS PtBasic
Pt_ARG_INLINE_COLOR PtBasic
Pt_ARG_LAYOUT_DATA PtWidget
Pt_ARG_LIGHT_BEVEL_COLOR PtBasic
Pt_ARG_LIGHT_FILL_COLOR PtBasic
Pt_ARG_MARGIN_HEIGHT PtBasic 0
Pt_ARG_MARGIN_WIDTH PtBasic 0
Pt_ARG_MAXIMUM_DIM PtWidget
Pt_ARG_MINIMUM_DIM PtWidget
Pt_ARG_NUMERIC_FLAGS PtNumeric
Pt_ARG_NUMERIC_PREFIX PtNumeric
Pt_ARG_NUMERIC_SPACING PtNumeric
Pt_ARG_NUMERIC_SUFFIX PtNumeric
Pt_ARG_NUMERIC_UPDOWN_WIDTH PtNumeric
Pt_ARG_OUTLINE_COLOR PtBasic
Pt_ARG_POINTER PtWidget
Pt_ARG_POS PtWidget
Pt_ARG_RESIZE_FLAGS PtWidget
Pt_ARG_ROW_LAYOUT_DATA PtWidget
Pt_ARG_STYLE PtBasic
Pt_ARG_TEXT_FLAGS PtText
Pt_ARG_TEXT_FONT PtLabel
Pt_ARG_TITLE PtContainer
Pt_ARG_TITLE_FONT PtContainer
Pt_ARG_TRANS_PATTERN PtBasic
Pt_ARG_USER_DATA PtWidget
Pt_ARG_WIDTH PtWidget
Pt_CB_ACTIVATE PtBasic See below.
Pt_CB_ARM PtBasic
Pt_CB_BALLOONS PtContainer Not used by this class.
Pt_CB_BLOCKED PtWidget
Pt_CB_CHILD_ADDED_REMOVED PtContainer
Pt_CB_DESTROYED PtWidget
Pt_CB_DISARM PtBasic
Pt_CB_DND PtWidget
Pt_CB_FILTER PtWidget
Pt_CB_GOT_FOCUS PtBasic
Pt_CB_HOTKEY PtWidget
Pt_CB_IS_DESTROYED PtWidget
Pt_CB_LOST_FOCUS PtBasic
Pt_CB_MENU PtBasic
Pt_CB_OUTBOUND PtWidget
Pt_CB_RAW PtWidget
Pt_CB_REALIZED PtWidget
Pt_CB_REPEAT PtBasic
Pt_CB_RESIZE PtContainer
Pt_CB_UNREALIZED PtWidget

Pt_CB_ACTIVATE

If cbinfo->reason_subtype is Pt_NUMERIC_ACTIVATE, the callback was invoked because you changed the value and pressed Enter while in PtNumericFloat's text field.