Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

DtCreateSpinBox(3)

DtSpinBoxAddItem(3X)

DtSpinBoxDeletePos(3X)

DtSpinBoxSetItem(3X)

Composite(3X)

Core(3X)

XmManager(3X)

XmText(3X)

XmTextField(3X)

XtGetValues(3Xt)

XtSetValues(3Xt)

DtSpinButtonSetItem(3X)

DtSpinBox(3)  —  Subroutines

CDE

NAME

DtSpinBox − the SpinBox widget class

SYNOPSIS

#include <Dt/SpinBox.h>

DESCRIPTION

The DtSpinBox widget is a user interface control to increment and decrement an arbitrary TextField.  For example, it can be used to cycle through the months of the year or days of the month. 

Widget subclassing is not supported for the DtSpinBox widget class. 

Classes

The DtSpinBox widget inherits behavior and resources from the Core, Composite and XmManager classes. 

The class pointer is dtSpinBoxWidgetClass. 

The class name is DtSpinBoxWidget. 

New Resources

The following table defines a set of widget resources used by the application to specify data.  The application can also set the resource values for the inherited classes to set attributes for this widget.  To reference a resource by name or by class in a .Xdefaults file, the application must remove the DtN or DtC prefix and use the remaining letters.  To specify one of the defined values for a resource in a .Xdefaults file, the application must remove the Dt prefix and use the remaining letters (in either lower case or upper case, but including any underscores between words).  The codes in the access column indicate if the given resource can be set at creation time (C), set by using XtSetValues (S), retrieved by using XtGetValues (G), or is not applicable (N/A). 

DtSpinBox Resource Set:

Name Class Type Default Access
DtNarrowLayout DtCArrowLayout unsigned char DtARROWS_END CSG
DtNarrowSensitivity DtCArrowSensitivity unsigned char DtARROWS- CSG
   _SENSITIVE
DtNdecimalPoints DtCDecimalPoints short 0 CSG
DtNincrementValue DtCIncrementValue int 1 CSG
DtNinitialDelay DtCInitialDelay unsigned int 250 CSG
DtNmaximumValue DtCMaximumValue int 10 CSG
DtNminimumValue DtCMinimumValue int 0 CSG
DtNmodifyVerifyCallback DtCCallback XtCallbackList NULL C
DtNnumValues DtCNumValues int 0 CSG
DtNposition DtCPosition int 0 CSG
DtNrepeatDelay DtCRepeatDelay unsigned int 200 CSG
DtNspinBoxChildType DtCSpinBoxChildType unsigned char XmSTRING CG
DtNvalueChangedCallback DtCCallback XtCallbackList NULL C
DtNvalues DtCValues XmStringTable NULL CSG

DtNarrowLayout
Specifies the style and position of the SpinBox arrows. The following values are supported:

DtARROWS_FLAT_BEGINNING
The arrows are placed side by side to the right of the TextField.

DtARROWS_FLAT_END
The arrows are placed side by side to the left of the TextField.

DtARROWS_SPLIT
The down arrow is on the left and the up arrow is on the right of the TextField.

DtARROWS_BEGINNING
The arrows are stacked and placed on the left of the TextField.

DtARROWS_END
The arrows are stacked and placed on the right of the TextField.

DtNarrowSensitivity
Specifies the sensitivity of the arrows in the DtSpinBox. The following values are supported:

DtARROWS_SENSITIVE
Both arrows are active to user selection.

DtARROWS_DECREMENT_SENSITIVE
The down arrow is active and the up arrow is inactive to user selection.

DtARROWS_INCREMENT_SENSITIVE
The up arrow is active and the down arrow is inactive to user selection.

DtARROWS_INSENSITIVE
Both arrows are inactive to user selection.

DtNdecimalPoints
Specifies the position of the radix character within the numeric value when DtNspinBoxChildType is DtNUMERIC.  This resource is used to allow for floating point values in the DtSpinBox widget. 

DtNincrementValue
Specifies the amount to increment or decrement the DtNposition when the DtNspinBoxChildType is DtNUMERIC.  When the Up action is activated, the DtNincrementValue is added to the DtNposition value; when the Down action is activated, the DtNincrementValue is subtracted from the DtNposition value.  When DtNspinBoxChildType is DtSTRING, this resource is ignored. 

DtNinitialDelay
Specifies the amount of time in milliseconds before the Arrow buttons will begin to spin continuously.

DtNnumValues
Specifies the number of items in the DtNvalues list when the DtNspinBoxChildType resource is DtSTRING.  The value of this resource must be a positive integer.  The DtNnumValues is maintained by the DtSpinBox widget when items are added or deleted from the DtNvalues list.  When DtNspinBoxChildType is not DtSTRING, this resource is ignored. 

DtNvalues
Supplies the list of strings to cycle through when the DtNspinButtonChildType resource is DtSTRING.  When DtNspinBoxChildType is not DtSTRING, this resource is ignored. 

DtNmaximumValue
Specifies the upper bound on the DtSpinBox’s range when DtNspinBoxChildType is DtNUMERIC. 

DtNminimumValue
Specifies the lower bound on the DtSpinBox’s range when DtNspinBoxChildType is DtNUMERIC. 

DtNmodifyVerifyCallback
Specifies the callback to be invoked just before the DtSpinBox position changes. The application can use this callback to implement new application-related logic (including setting new position spinning to, or canceling the impending action). For example, this callback can be used to stop the spinning just before wrapping at the upper and lower position boundaries. If the application sets the doit member of the DtSpinBoxCallbackStruct to False, nothing happens.  Otherwise, the position changes.  Reasons sent by the callback are DtCR_SPIN_NEXT, or DtCR_SPIN_PRIOR. 

DtNposition
The DtNposition resource has a different value based on the DtNspinBoxChildType resource.  When DtNspinBoxChildType is DtSTRING, the DtNposition is the index into the DtNvalues list for the current item.  When the DtNspinBoxChildType resource is DtNUMERIC, the DtNposition is the integer value of the DtSpinBox that falls within the range of DtNmaximumValue and DtNminimumValue. 

DtNrepeatDelay
Specifies the number of milliseconds between repeated calls to the DtNvalueChangedCallback while the user is spinning the DtSpinBox. 

DtNspinBoxChildType
Specifies the style of the DtSpinBox. The following values are supported:

DtSTRING
The child is a string value that is specified through the DtNvalues resource and incremented and decremented by changing the DtNposition resource. 

DtNUMERIC
The child is a numeric value that is specified through the DtNposition resource and incremented according to the DtNincrementValue resource. 

DtNvalueChangedCallback
Specifies the callback to be invoked whenever the value of the DtNposition resource is changed through the use of the spinner arrows.  The DtNvalueChangedCallback passes the DtSpinBoxCallbackStruct call_data structure. 

Inherited Resources

The DtSpinBox widget inherits behavior and resources from the following named superclasses.  For a complete description of each resource, see the man page for that superclass. 

XmManager Resource Set:

Name Class Type Default Access
XmNbottom- XmCBottom- Pixel dynamic CSG
   ShadowColor    ShadowColor


XmNbottom- XmCBottom- Pixmap XmUNSPECIFIED- CSG
   ShadowPixmap    ShadowPixmap    _PIXMAP
XmNforeground XmCForeground Pixel dynamic CSG
XmNhelpCallback XmCCallback XtCallbackList NULL C
XmNhighlightColor XmCHighlightColor Pixel dynamic CSG
XmNhighlightPixmap XmCHighlightPixmap Pixmap dynamic CSG
XmNinitialFocus XmCInitialFocus Widget NULL CSG
XmNnavigationType XmCNavigationType XmNavigationType dynamic CSG
XmNshadowThickness XmCShadowThickness Dimension dynamic CSG
XmNstringDirection XmCStringDirection XmStringDirection dynamic CG
XmNtopShadowColor XmCTopShadowColor Pixel dynamic CSG
XmNtopShadowPixmap XmCTopShadowPixmap Pixmap dynamic CSG
XmNtraversalOn XmCTraversalOn Boolean dynamic CSG
XmNunitType XmCUnitType unsigned char dynamic CSG
XmNuserData XmCUserData XtPointer NULL CSG

Composite Resource Set:

Name Class Type Default Access
XmNchildren XmCReadOnly WidgetList NULL G
XmNinsertPosition XmCInsertPosition XtOrderProc default procedure CSG
XmNnumChildren XmCReadOnly Cardinal 0 G

Core Resource Set

Name Class Type Default Access
XmNaccelerators XmCAccelerators XtAccelerators dynamic CSG
XmNancestorSensitive XmCSensitive Boolean dynamic G
XmNbackground XmCBackground Pixel dynamic CSG
XmNbackgroundPixmap XmCPixmap Pixmap XmUNSPECIFIED- CSG
   _PIXMAP
XmNborderColor XmCBorderColor Pixel XtDefaultForeground CSG
XmNborderPixmap XmCPixmap Pixmap XmUNSPECIFIED- CSG
   _PIXMAP
XmNborderWidth XmCBorderWidth Dimension 0 CSG
XmNcolormap XmCColormap Colormap dynamic CG
XmNdepth XmCDepth int dynamic CG
XmNdestroyCallback XmCCallback XtCallbackList NULL C
XmNheight XmCHeight Dimension dynamic CSG
XmNinitialResources- XmCInitialResources- Boolean True C
   Persistent    Persistent


XmNmappedWhen- XmCMappedWhen- Boolean True CSG
   Managed    Managed


XmNscreen XmCScreen Screen ∗ dynamic CG
XmNsensitive XmCSensitive Boolean True CSG
XmNtranslations XmCTranslations XtTranslations dynamic CSG
XmNwidth XmCWidth Dimension dynamic CSG
XmNx XmCPosition Position 0 CSG
XmNy XmCPosition Position 0 CSG

Callback Information

A pointer to the following structure is passed to each DtSpinBox callback:

typedef struct {
int reason;
XEvent∗event;
Widgetwidget;
Booleandoit;
intposition;
XmStringvalue;
Booleancrossed_boundary;
} DtSpinBoxCallbackStruct;

The reason argument indicates why the callback was invoked.  There are three possible reasons for this callback to be issued.  The reason is DtCR_OK when this is the first call to the callback at the beginning of a spin or if it is a single activation of the spin arrows.  If the DtSpinBox is in the process of being continuously spun, then the reason will be DtCR_SPIN_NEXT or DtCR_SPIN_PRIOR, depending on the arrow that is spinning. 

The event argument points to the XEvent that triggered the callback.  It can be NULL when the DtSpinBox is continuously spinning. 

The widget argument is the widget identifier for the text widget that has been affected by the spin. 

The doit argument is set only when the call_data comes from the DtNmodifyVerifyCallback.  It indicates that the action that caused the callback to be called should be performed.  The action is not performed if doit is set to False. 

The position argument is the new value of the DtNposition resource as a result of the spin. 

The value argument is the new XmString value displayed in the Text widget as a result of the spin.  The application must copy this string if it is used beyond the scope of the call_data structure. 

The crossed_boundary argument is True when the spinbox cycles.  This is the case when a DtNspinBoxChildType of DtSTRING wraps from the first item to the last or the last item to the first.  In the case of the DtNspinBoxChildType of DtNUMERIC, the boundary is crossed when the DtSpinBox cycles from the maximum value to the minimum or vice versa. 

SEE ALSO

DtCreateSpinBox(3), DtSpinBoxAddItem(3X), DtSpinBoxDeletePos(3X), DtSpinBoxSetItem(3X), Composite(3X), Core(3X), XmManager(3X), XmText(3X), XmTextField(3X), XtGetValues(3Xt), XtSetValues(3Xt) DtSpinButtonSetItem(3X); Composite, Core, XmManager, XmText, XmTextField, in the X/Open CAE Specification, X/Open Motif Toolkit API; XtGetValues, XtSetValues in the X/Open CAE Specification, X/Open Window Management: X Toolkit Intrinsics. 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026