XmSpinBox(library call) UNIX System V XmSpinBox(library call)
NAME
XmSpinBox - The SpinBox widget class
SYNOPSIS
#include <Xm/SpinB.h>
DESCRIPTION
SpinBox allows the user to select a value from a ring of
related but mutually exclusive choices which are displayed
in sequence. The SpinBox always has an increment arrow, a
decrement arrow, and one or more other children. The
choices are displayed, one at a time, in a traversable text
child ( XmText or XmTextField. The user clicks <Btn1> on an
arrow to display the next (or previous) item in the ring of
choices. By pressing and holding <Btn1> on an arrow, the
user continuously cycles through the choices.
The traversable children in a SpinBox can be of type
XmNUMERIC or XmSTRING, as defined by the
XmNspinBoxChildTypeconstraint resource. The ring of choices
for numeric children is defined by minimum, maximum,
incremental, and decimal point values. The ring of choices
for string children is defined in an array of compound
strings.
The application programmer can include multiple traversable
children in the SpinBox. For example, a SpinBox might
consist of a pair of arrows and month, day, and year text
fields. The arrows only spin the child that currently has
focus.
Arrow size is specified by the SpinBox resource
XmNarrowSize. This value sets both width and height of each
arrow in pixels.
The programmer can display SpinBox arrows in one of several
layouts, as specified by the XmNarrowLayoutresource:
XmARROWS_BEGINNING
Places a pair of left and right arrows before the
children.
XmARROWS_END
Places a pair of left and right arrows after the
children.
XmARROWS_SPLIT
Places one arrow on each side of the children.
XmARROWS_FLAT_BEGINNING
Places a pair of arrows side by side before the
XmSpinBoxchildren.
Page 1 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
XmARROWS_FLAT_BEGINNING
Places a pair of arrows side by side after the
XmSpinBoxchildren.
Positions for XmARROWS_BEGINNINGand XmARROWS_END are
dependent on the VendorShell resource XmNlayoutDirection.
When layout direction is left-to-right, beginning arrows are
positioned to the left of the children. When layout
direction is right-to-left, beginning arrows are positioned
to the right.
The actions of the arrows are determined by the VendorShell
resource XmNlayoutDirection. For left-to-right layouts, the
right arrow is the increment arrow and the left arrow is the
decrement arrow. For right-to-left layouts, the right arrow
is the decrement arrow and the left arrow is the increment
arrow.
For a numeric type child, the increment arrow increases the
displayed value by the incremental value up to the maximum.
The decrement arrow decreases the displayed value by the
given incremental value down to the minimum.
The increment arrow for a string type child moves toward the
last entry of the array of compound strings (by increasing
the SpinBox constraint resource XmNposition). The decrement
arrow moves toward the first entry of the compound string
array.
The programmer can also control the sensitivity of each
arrow in the SpinBox. Sensitive arrows spin choices;
insensitive arrows do not spin choices. Arrow sensitivity
is set for the SpinBox widget by using the
XmNdefaultArrowSensitivity resource, but it can be modified
on a per child basis by using the XmNarrowSensitivity
constraint resource.
SpinBox provides two callbacks to application programmers.
(In addition, the callbacks of the SpinBox's children may be
invoked.) Each of these callbacks receives a pointer to
XmSpinBoxCallbackStruct. The XmNmodifyVerifyCallback
procedures are called before a new choice is displayed. The
XmNvalueChangedCallback procedures are called after a new
choice is displayed.
XmNmodifyVerifyCallback tells the application what the new
position will be in the ring of choices. This callback can
be used to make the SpinBox stop at the upper and lower
limits or go to a different, nonconsecutive choice. The
application allows the change in position by leaving the
doit member set to True. The application can spin to a
position other than the next consecutive position by leaving
Page 2 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
doit set to True and by changing the position member to the
desired position. When doit is set to False by an
application, there is no change in the choice displayed.
After a new choice is displayed, the XmNvalueChangedCallback
procedure is called. The application can use this procedure
to perform tasks when specific values are reached or when
boundaries are crossed. For example, if the user spins from
January back to December, the application could change to
the previous year. If the user spins from December to
January, the application could change to the next year.
SpinBox dimensions can be set using the Core resources
XmNheight and XmNwidth. If dimensions are not specified, the
SpinBox size is determined by the sizes of its arrows and
children. The SpinBox will attempt to grow so that the
arrows and all children are visible.
SpinBox uses the XmQTaccessTextualtrait and holds the
XmQTnavigator trait.
Classes
SpinBox inherits behavior, resources, and traits from the
Core, Composite, Constraint, and XmManager classes.
The class pointer is xmSpinBoxWidgetClass.
The class name is XmSpinBox.
New Resources
The following table defines a set of widget resources used
by the programmer to specify data. The programmer 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, remove the XmN or
XmCprefix and use the remaining letters. To specify one of
the defined values for a resource in a .Xdefaults file,
remove the Xm prefix and use the remaining letters (in
either lowercase or uppercase, but include any underscores
between words). The codes in the access column indicate
whether 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).
XmSpinBox Resource
Set
Name Class Type Default Access
XmNarrowLayout XmCArrowLayout unsigned char XmARROWS_BEGINNING CSG
XmNarrowOrientation XmCArrowOrientation unsigned char XmARROWS_VERTICAL CSG
XmNarrowSize XmCArrowSize Dimension 16 CSG
XmNdefaultArrowSensitivity XmCDefaultArrowSensitivity unsigned char XmARROWS_SENSITIVE CSG
Page 3 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
XmNdetailShadowThickness XmCDetailShadowThickness Dimension 2 CSG
XmNinitialDelay XmCInitialDelay unsigned int 250 ms CSG
XmNmarginHeight XmCMarginHeight Dimension dynamic CSG
XmNmarginWidth XmCMarginWidth Dimension dynamic CSG
XmNmodifyVerifyCallback XmCCallback XtCallbackList NULL C
XmNrepeatDelay XmCRepeatDelay unsigned int 200 ms CSG
XmNspacing XmCSpacing Dimension dynamic CSG
XmNvalueChangedCallback XmCCallback XtCallbackList NULL C
XmNarrowLayout
Specifies placement of the two arrows in the
widget. Possible layouts are as follows:
XmARROWS_BEGINNING
Places left and right arrows beside each
other, before the child(ren).
Positioning for this layout is dependent
on the VendorShell resource
XmNlayoutDirection.
XmARROWS_END
Places left and right arrows beside each
other, after the child(ren).
Positioning for this layout is dependent
on the VendorShell resource
XmNlayoutDirection.
XmARROWS_FLAT_BEGINNING
Places a pair of arrows side by side
before the XmSpinBoxchildren.
Positioning for this layout is dependent
on the VendorShell resource
XmNlayoutDirection.
XmARROWS_FLAT_END
Places a pair of arrows side by side
after the XmSpinBoxchildren. Positioning
for this layout is dependent on the
VendorShell resource XmNlayoutDirection.
XmARROWS_SPLIT
Places a left arrow on the left side and
a right arrow on the right side of the
child(ren).
XmNarrowSize
Specifies both the width and height of the arrow
in pixels.
XmNdefaultArrowSensitivity
Specifies the default sensitivity of the arrows in
the widget. Insensitive arrows change color,
Page 4 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
cannot be depressed, and perform no action. (This
resource may be overridden by the constraint
resource XmNarrowSensitivity for individual
traversable text children of the SpinBox.)
Possible default sensitivity values are as
follows:
XmARROWS_SENSITIVE
Both arrows are sensitive.
XmARROWS_DECREMENT_SENSITIVE
Only the decrement arrow (as determined
by XmNlayoutDirection) is sensitive. The
increment arrow is insensitive.
XmARROWS_INCREMENT_SENSITIVE
Only the increment arrow (as determined
by XmNlayoutDirection) is sensitive. The
decrement arrow is insensitive.
XmARROWS_INSENSITIVE
Both arrows are insensitive.
XmNdetailShadowThickness
Specifies the thickness of the inside arrow
shadows. The default thickness is 2 pixels.
XmNinitialDelay
Specifies how long, in milliseconds, the mouse
button must be held down before automatic spinning
begins. In other words, when the user selects the
increment or decrement arrow and keeps it
depressed, this delay occurs before the choices
start spinning. If XmNinitialDelay is 0, then
XmNrepeatDelayis used as the initial delay.
XmNmarginHeight
Specifies the amount of blank space between the
top edge of the SpinBox widget and the first item
in each column, and the bottom edge of the SpinBox
widget and the last item in each column.
XmNmarginWidth
Specifies the amount of blank space between the
left edge of the SpinBox widget and the first item
in each row, and the right edge of the SpinBox
widget and the last item in each row.
XmNmodifyVerifyCallback
This callback is called before the SpinBox
position changes (see the Constraint resource
XmNposition). The application can use this
Page 5 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
callback to set the next position, change SpinBox
resources, or cancel 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 doit member is
set to False, nothing happens. Otherwise the
position changes. Reasons sent by the callback are
XmCR_SPIN_NEXT, XmCR_SPIN_PRIOR, XmCR_SPIN_FIRST,
or XmCR_SPIN_LAST.
XmNrepeatDelay
When the user selects and keeps an arrow button
depressed by pressing and holding <Btn1>, spinning
begins. After the time specified in
XmNinitialDelay elapses, the SpinBox position
changes automatically until the arrow button is
released. The XmNrepeatDelay resource specifies
the delay in milliseconds between each automatic
change. If XmNrepeatDelay is set to 0 (zero),
automatic spinning is turned off and
XmNinitialDelayis ignored.
XmNspacing
Specifies the horizontal and vertical spacing
between items contained within the SpinBox widget.
XmNvalueChangedCallback
This is called n+1 times for n SpinBox position
changes (see the Constraint resource XmNposition).
Reasons sent by the callback are XmCR_OK,
XmCR_SPIN_NEXT, XmCR_SPIN_PRIOR, XmCR_SPIN_FIRST,
or XmCR_SPIN_LAST. Other members are detailed in
the callback structure description.
XmSpinBox Constraint
Resource Set
Name Class Type Default Access
XmNarrowSensitivity XmCArrowSensitivity unsigned char XmARROWS_DEFAULT_SENSITIVITY CSG
XmNdecimalPoints XmCDecimalPoints short 0 CSG
XmNincrementValue XmCIncrementValue int 1 CSG
XmNmaximumValue XmCMaximumValue int 10 CSG
XmNminimumValue XmCMinimumValue int 0 CSG
XmNnumValues XmCNumValues int 0 CSG
XmNposition XmCPosition int 0 CSG
XmNpositionType XmCPositionType char XmPOSITION_VALUE CG
XmNspinBoxChildType XmSpinBoxChildType unsigned char XmSTRING CG
XmNvalues XmCValues XmStringTable NULL CSG
XmNarrowSensitivity
Specifies the sensitivity of the arrows for a
SpinBox child. By using this resource in the
definition of a SpinBox child, the application
programmer can override the default SpinBox
Page 6 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
sensitivity (set by XmNdefaultArrowSensitivity)
for a particular child. This allows each
traversable child to have a different arrow
sensitivity. The arrow sensitivity values are as
follows:
XmARROWS_SENSITIVE
Both arrows are sensitive.
XmARROWS_DECREMENT_SENSITIVE
Only the decrement arrow (as determined
by XmNlayoutDirection) is sensitive.
XmARROWS_INCREMENT_SENSITIVE
Only the increment arrow (as determined
by XmNlayoutDirection) is sensitive.
XmARROWS_INSENSITIVE
Both arrows are insensitive.
XmARROWS_DEFAULT_SENSITIVITY
Use the sensitivity specified in the
XmNdefaultArrowSensitivity resource.
XmNdecimalPoints
Specifies the number of decimal places used when
displaying the value of a SpinBox numeric type
child. If the number of decimal places specified
is greater than the number of digits in a
displayed value, the value is padded with 0
(zeros). For example, when XmNinitialValue is 1
and XmNmaximumValue is 1000 and XmNdecimalPoints
is 3, the range of values displayed in the SpinBox
is 0.001 to 1.000. This is used only when
XmNspinBoxChildType is XmNUMERIC.
XmNincrementValue
Specifies the amount by which to increment or
decrement a SpinBox numeric type child. This is
used only when XmNspinBoxChildType is XmNUMERIC.
XmNmaximumValue
Specifies the highest possible value for a numeric
SpinBox. This is used only when
XmNspinBoxChildTypeis XmNUMERIC.
XmNminimumValue
Specifies the lowest possible value for a numeric
SpinBox. This is used only when
XmNspinBoxChildTypeis XmNUMERIC.
XmNnumValues
Page 7 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
Specifies the number of strings in XmNvalues. The
application must change this value when strings
are added or removed from XmNvalues. This is used
only when XmNspinBoxChildTypeis XmSTRING.
XmNposition
Specifies the position of the currently displayed
item. The interpritation of XmNposition is
dependent upon the value of the XmNpositionType
resource.
When XmNpositionType is XmPOSITION_INDEX the
XmNposition value is interpreted as follows: For
XmSpinBox children of type XmNUMERIC, the
XmNposition resource is interpreted as an index
into an array of items. The minimum allowable
value for XmNposition is 0. The maximum allowable
value for XmNpositionis (XmNmaximumValue-
XmNminimumValue)/XmNincrementValue. The value
display by the XmSpinBox child is
XmNminimumValue+(XmNposition*XmNincrementValue).
For XmSpinBox children of type XmSTRING, the
XmNposition resource is interpreted as an index
into an array of XmNnumValues items. The minimum
allowable value for XmNposition is 0. The maximum
allowable value for XmNpositionis XmNnumValues -
1. The value displayed by the XmSpinBox is the
XmNposition'th value in the XmNvalues array.
When XmNpositionType is XmPOSITION_VALUE the
XmNposition value is interpreted as follows:
For XmSpinBox children of type XmNUMERIC, the
XmNposition resource is interpreted as the actual
value to be displayed. The minimum allowable value
for XmNposition is XmNminimumValue. The maximum
allowable value for XmNposition is
XmNmaximumValue. The value displayed by the
XmSpinBox child is XmNposition. For XmSpinBox
children of type XmSTRING, the interpretation is
the same for XmPOSITION_VALUE as for
XmPOSITION_INDEX.
Position values falling outside the specified
range are invalid. When an application assigns a
value to XmNposition which is less than the
minimum, XmNposition is set to the minimum and an
error message is displayed. When an application
assigns a value to XmNposition which is greater
than the maximum, XmNposition is set to the
maximum and an error message is displayed.
Page 8 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
XmNpositionType
Specifies how values the XmNposition resource are
to be interpreted. Valid values include
XmPOSITION_INDEXand XmPOSITION_VALUE.
XmNspinBoxChildType
Specifies the type of data displayed in the child:
XmNUMERIC The SpinBox choice range is defined by
numeric minimum, maximum, and
incremental values.
XmSTRING The SpinBox choices are alphanumeric.
XmNvalues Specifies the array of XmStrings to be displayed
in a SpinBox string type child. The application
must change XmNnumValues when strings are added to
or removed from XmNvalues. This is used only when
XmNspinBoxChildType is XmSTRING.
Inherited Resources
SpinBox inherits behavior and resources from the
superclasses described in the following tables. For a
complete description of each resource, refer to the
reference page for that superclass.
XmManager Resource
Set
Name Class Type Default Access
XmNbottomShadowColor XmCBottomShadowColor Pixel dynamic CSG
XmNbottomShadowPixmap XmCBottomShadowPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNforeground XmCForeground Pixel dynamic CSG
XmNhelpCallback XmCCallback XtCallbackList NULL C
XmNhighlightColor XmCHighlightColor Pixel dynamic CSG
XmNhighlightPixmap XmCHighlightPixmap Pixmap dynamic CSG
XmNinitialFocus XmCInitialFocus Widget dynamic CSG
XmNlayoutDirection XmCLayoutDirection XmDirection dynamic CG
XmNnavigationType XmCNavigationType XmNavigationType XmTAB_GROUP CSG
XmNpopupHandlerCallback XmCCallback XtCallbackList NULL C
XmNshadowThickness XmCShadowThickness Dimension 0 CSG
XmNstringDirection XmCStringDirection XmStringDirection dynamic CG
XmNtopShadowColor XmCTopShadowColor Pixel dynamic CSG
XmNtopShadowPixmap XmCTopShadowPixmap Pixmap dynamic CSG
XmNtraversalOn XmCTraversalOn Boolean True 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 NULL CSG
Page 9 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
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_PIXMAP CSG
XmNborderColor XmCBorderColor Pixel XtDefaultForeground CSG
XmNborderPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
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
XmNinitialResourcesPersistent XmCInitialResourcesPersistent Boolean True C
XmNmappedWhenManaged XmCMappedWhenManaged Boolean True CSG
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
A pointer to the following structure is passed to each
callback:
typedef struct
{
int reason;
XEvent * event;
Widget widget;
Boolean doit;
int position;
XmString value;
Boolean crossed_boundary;
} XmSpinBoxCallbackStruct;
reason Indicates why the callback was invoked. Reasons
may be the following:
XmCR_OK Spinning has stopped because the SpinBox
arrow has been disarmed. XmCR_OK is
either the last or only call.
XmCR_SPIN_NEXT
The increment arrow has been armed and
position is increasing. Further
callbacks will come. For a numeric type
child, the values displayed are
approaching the maximum. For a string
SpinBox, the values displayed are
Page 10 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
approaching the last entry in the array
of XmString s.
XmCR_SPIN_PRIOR
The decrement arrow has been armed and
position is decreasing. Further
callbacks will come. For a numeric type
child, the values displayed are
approaching the minimum. For a string
type child, the values displayed are
approaching the first entry in the array
of XmStrings.
XmCR_SPIN_FIRST
The begin data (<osfBeginData>) key
sequence has been pressed. The SpinBox
is at its first position, displaying the
lowest value or the first entry in the
array of XmStrings.
XmCR_SPIN_LAST
The end data (<osfEndData>) key sequence
has been pressed. The SpinBox is at its
last position, displaying the highest
value or the last entry in the array of
XmStrings.
event Points to the XEvent that triggered this callback.
widget Specifies the child widget affected by this
callback.
doit When the callback is XmNmodifyVerifyCallback, doit
indicates whether or not an action will be
performed before the SpinBox position changes. If
the callback leaves doit set to True (the
default), the spinning action is performed. If the
callback sets doit to False, the spinning action
is not performed. When the callback is
XmNvalueChangedCallback, doit is ignored.
position Specifies the next value of the SpinBox position
(same as XmNposition). This is an output field for
the XmNmodifyVerifyCallback, which may change the
next position as dictated by the needs of an
application.
value Specifies the new XmString value in the text child
widget. The user program must copy this string if
it is to be used outside the callback routine.
crossed_boundary
Page 11 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
Specifies whether or not the SpinBox has crossed
the upper or lower boundary (the last or first
compound string, or the maximum or minimum value).
The crossed_boundary value is True if the SpinBox
has just crossed a boundary, and False if it has
not.
Translations
The XmSpinBox translations are as follows:
The following key names are listed in the X standard key
event translation table syntax. This format is the one used
by Motif to specify the widget actions corresponding to a
given key. A brief overview of the format is provided under
VirtualBindings(3). For a complete description of the
format, please refer to the X Toolkit Instrinsics
Documentation.
<Btn1Down>:
SpinBArm()
<Btn1Up>: SpinBDisarm()
:<Key><osfUp> :
SpinBPrior()
:<Key><osfDown> :
SpinBNext()
:<Key><osfLeft> :
SpinBLeft()
:<Key><osfRight> :
SpinBRight()
:<Key><osfBeginData> :
SpinBFirst()
:<Key><osfEndData> :
SpinBLast()
Accelerators
The XmNaccelerators resource of a SpinBox are added to each
traversable text child. The default XmNaccelerators are
defined in the following list. The bindings for <Key><osfUp>
and <Key><osfDown> cannot be changed.
<Key> <osfUp>:
SpinBPrior()
<Key> <osfDown>:
SpinBNext()
Page 12 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
<KeyUp> <osfUp>:
SpinBDisarm()
<KeyUp> <osfDown>:
SpinBDisarm()
<Key> <osfLeft>:
SpinBLeft()
<Key> <osfRight>:
SpinBRight()
<KeyUp> <osfLeft>:
SpinBDisarm()
<KeyUp> <osfRight>:
SpinBDisarm()
<Key> <osfBeginData>:
SpinBFirst()
<Key> <osfEndData>:
SpinBLast()
Action Routines
The XmSpinBox action routines are as follows:
SpinBArm():
Visually arms the SpinBox by drawing the armed
arrow so that it appears to be depressed. This
action is initiated when the user presses <Btn1>
while the pointer is within the boundaries of
either the increment or decrement arrow. The arrow
remains visually armed as long as <Btn1> remains
depressed.
If the time period specified by XmNrepeatDelay is
not greater than zero milliseconds, nothing else
happens while <Btn1> remains depressed.
If the time period specified by XmNrepeatDelay is
greater than zero milliseconds, and the arrow is
disarmed before the time period specified by
XmNinitialDelay has elapsed, nothing else happens
in this action.
If the time period specified by XmNrepeatDelay is
greater than zero milliseconds, and the arrow is
still armed after the time period specified by
XmNinitialDelay has elapsed, the following occurs:
o The reason member of the SpinBox callback
Page 13 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
structure, XmSpinBoxCallbackStruct, is set
to XmCR_SPIN_NEXTif the increment arrow is
armed, or to XmCR_SPIN_PRIOR if the
decrement arrow is armed.
o The position member is set to the next
position.
o The doit member is set to True.
o XmNmodifyVerifyCallback, if it exists, is
invoked. The application may change the
value of position and doit. If the
application sets doit to False, nothing else
happens until the XmNrepeatDelay period has
elapsed, or until <Btn1> is released.
If doit remains set to True, the following occurs:
o The value of XmNpositionis changed to the
value of position in the SpinBox callback
structure.
o The text corresponding to the new position
is displayed in the traversable text child
that currently has focus.
o The reason member of the SpinBox callback
structure is set to XmCR_SPIN_NEXT if the
increment arrow is armed, or XmCR_SPIN_PRIOR
if the decrement arrow is armed.
o The position member is set to the current
(new) value of XmNposition.
o XmNvalueChangedCallback, if it exists, is
called. SpinBox ignores any changes to
position or doit members made by
XmNvalueChangedCallback.
These events are repeated each time the
XmNrepeatDelay period elapses and the arrow
remains armed.
SpinBDisarm():
Visually disarms the SpinBox by drawing the
previously armed arrow so that it no longer
appears to be depressed.
If the time period specified by XmNrepeatDelay is
not greater than zero milliseconds, or the time
period specified by XmNinitialDelay has not
Page 14 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
elapsed, the following then occurs:
o The reason member of the SpinBox callback
structure, XmSpinBoxCallbackStruct, is set
to XmCR_SPIN_NEXTif the increment arrow is
armed, or to XmCR_SPIN_PRIOR if the
decrement arrow is armed.
o The position member is set to the next
position.
o The doit member is set to True.
o The XmNmodifyVerifyCallback, if there is
one, is invoked. The application may change
the value of position and doit. If the
application sets doit to False, nothing else
happens until the XmNrepeatDelayperiod has
elapsed, or until <Btn1> is released.
If doit remains set to True, the following occurs:
o The value of XmNpositionis changed to the
value of position in the SpinBox callback
structure.
o The text corresponding to the new position
is displayed in the traversable text child
that currently has focus.
o The reason member of the SpinBox callback
structure is set to XmCR_SPIN_NEXT if the
increment arrow is armed, or XmCR_SPIN_PRIOR
if the decrement arrow is armed.
o The position member is set to the current
(new) value of XmNposition.
o XmNvalueChangedCallback, if it exists, is
called. SpinBox ignores any changes to
position or doit members made by an
XmNvalueChangedCallback.
If an XmNvalueChangedCallbackprocedure is issued
after the button has been armed, regardless of the
value of XmNrepeatDelay or whether the
XmNinitialDelay has expired:
o The reason member of the SpinBox callback
structure is set to XmCR_OK.
o The position member is set to the current
Page 15 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
value of XmNposition.
o XmNvalueChangedCallback, if it exists, is
called.
SpinBFirst():
The following occurs:
o The reason member of the SpinBox callback
structure, XmSpinBoxCallbackStruct, is set
to XmCR_SPIN_FIRST.
o The position member is set to the first (0)
position.
o The doit member is set to True.
o XmNmodifyVerifyCallback, if it exists, is
invoked. The application may change the
value of position and doit. If the
application sets doit to False, nothing else
happens until the XmNrepeatDelayperiod has
elapsed, or until <Btn1> is released.
If doit remains set to True, the following occurs:
o The value of XmNpositionis changed to the
value of position in the SpinBox callback
structure.
o The text corresponding to the new position
is displayed in the traversable text child
that currently has focus.
o The reason member of the SpinBox callback
structure is set to XmCR_SPIN_FIRST.
o The position member is set to the current
(new) value of XmNposition.
o XmNvalueChangedCallback, if it exists, is
called.
o The reason member of the SpinBox callback
structure is set to XmCR_OK.
o The position member is set to the current
(new) XmNpositionvalue.
o The XmNvalueChangedCallbackis called again.
SpinBox ignores any changes to position or
doit members made by
Page 16 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
XmNvalueChangedCallback.
SpinBLast():
The following occurs:
o The reason member of the SpinBox callback
structure, XmSpinBoxCallbackStruct, is set
to XmCR_SPIN_LAST.
o The position member is set to the last
position.
o The doit member is set to True.
o XmNmodifyVerifyCallback, if it exists, is
invoked. The application may change the
value of position and doit. If the
application sets doit to False, nothing else
happens until the XmNrepeatDelayperiod has
elapsed, or until <Btn1> is released.
If doit remains set to True, the following occurs:
o The value of XmNpositionis changed to the
value of position in the SpinBox callback
structure.
o The text corresponding to the new position
is displayed in the traversable text child
that currently has focus.
o The reason member of the SpinBox callback
structure is set to XmCR_SPIN_LAST.
o The position member is set to the current
(new) value XmNposition.
o XmNvalueChangedCallback, if it exists, is
called.
o The reason member of the SpinBox callback
structure is set to XmCR_OK.
o The position member is set to the current
(new) of XmNposition.
o XmNvalueChangedCallbackis called again.
SpinBox ignores any changes to the position
or doit members made by
XmNvalueChangedCallback.
SpinBLeft():
Page 17 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
If the VendorShell resource XmNlayoutDirection is
left-to-right, the SpinBPrior action is invoked.
Otherwise, the SpinBNext action is invoked.
SpinBNext():
Visually arms the SpinBox by drawing the increment
arrow so that it appears to be depressed. The
following occurs:
o The reason member of the SpinBox callback
structure, XmSpinBoxCallbackStruct, is set
to XmCR_SPIN_NEXT.
o The position member is set to the next
position.
o The doit member is set to True.
o XmNmodifyVerifyCallback, if it exists, is
invoked. The application may change the
value of position and doit. If the
application sets doit to False, nothing else
happens until the XmNrepeatDelayperiod has
elapsed, or until <Btn1> is released.
If doit remains set to True, the following occurs:
o The value of XmNpositionis changed to the
value of position in the SpinBox callback
structure.
o The text corresponding to the new position
is displayed in the traversable text child
that currently has focus.
o The reason member of the SpinBox callback
structure is set to XmCR_SPIN_NEXT.
o The position member is set to the current
(new) value of XmNposition.
o XmNvalueChangedCallback, if it exists, is
called.
o The reason member of the SpinBox callback
structure is set to XmCR_OK.
o The position member is set to the current
(new) XmNposition.
o The XmNvalueChangedCallbackis called again.
SpinBox ignores any changes to position or
Page 18 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
doit members made by
XmNvalueChangedCallback.
SpinBPrior():
Visually arms the SpinBox by drawing the decrement
arrow so that it appears to be depressed. The
following occurs:
o The reason member of the SpinBox callback
structure, XmSpinBoxCallbackStruct, is set
to XmCR_SPIN_PRIOR.
o The position member is set to the next
position.
o The doit member is set to True.
o XmNmodifyVerifyCallback, if it exists, is
invoked. The application may change the
value of position and doit. If the
application sets doit to False, nothing else
happens until the XmNrepeatDelayperiod has
elapsed, or until <Btn1> is released.
If doit remains set to True, the following occurs:
o The value of XmNpositionis changed to the
value of position in the SpinBox callback
structure.
o The text corresponding to the new position
is displayed in the traversable text child
that currently has focus.
o The reason member of the SpinBox callback
structure is set to XmCR_SPIN_PRIOR.
o The position member is set to the current
(new) value of XmNposition.
o XmNvalueChangedCallback, if it exists, is
called.
o The reason member of the SpinBox callback
structure is set to XmCR_OK.
o The position member is set to the current
(new) value of XmNposition.
o XmNvalueChangedCallbackis called again.
SpinBox ignores any changes to position or
doit members made by
Page 19 (printed 7/20/06)
XmSpinBox(library call) UNIX System V XmSpinBox(library call)
XmNvalueChangedCallback.
SpinBRight():
If the VendorShell resource XmNlayoutDirection is
left-to-right, the SpinBNext action is invoked.
Otherwise, the SpinBPrior action is invoked.
RELATED
Composite(3), Constraint(3), Core(3), XmCreateSpinBox(3),
XmManager(3), and XmString(3).
Page 20 (printed 7/20/06)