Scale is used by an application to indicate a
value from within a range of values, and it allows the user to input or modify
a value from the same range.
A Scale has an elongated rectangular region similar to a
ScrollBar. A slider inside this region
indicates the current value along the Scale. The user can also
modify the Scale's value by moving the slider within the
rectangular region of the Scale. A Scale can also include a label set
located outside the Scale region.
These can indicate the relative value at various positions
along the scale.
A Scale can be either input/output or output only. An input/output
Scale's value can be set by the application and also
modified by the user with the slider. An output-only Scale
is used strictly as an indicator of the current value of something
and cannot be modified interactively by the user.
The Core resource XmNsensitive specifies whether the user can
interactively modify the Scale's value.
The user can specify resources in a resource file for the automatically
created gadget that contains the title of the Scale widget. The name of the
gadget is ``Title''.
Classes
Scale inherits behavior and resources from
Core, Composite, Constraint, and XmManager classes.
The class pointer is xmScaleWidgetClass.
The class name is XmScale.
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 ``XmC'' prefix 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 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).
XmScale resource set
Name
Class
Type
Default
Access
XmNdecimalPoints
XmCDecimalPoints
short
0
CSG
XmNdragCallback
XmCCallback
XtCallbackList
NULL
C
XmNfontList
XmCFontList
XmFontList
dynamic
CSG
XmNhighlightOnEnter
XmCHighlightOnEnter
Boolean
False
CSG
XmNhighlightThickness
XmCHighlightThickness
Dimension
2
CSG
XmNmaximum
XmCMaximum
int
100
CSG
XmNminimum
XmCMinimum
int
0
CSG
XmNorientation
XmCOrientation
unsigned char
XmVERTICAL
CSG
XmNprocessingDirection
XmCProcessingDirection
unsigned char
dynamic
CSG
XmNscaleHeight
XmCScaleHeight
Dimension
0
CSG
XmNscaleMultiple
XmCScaleMultiple
int
dynamic
CSG
XmNscaleWidth
XmCScaleWidth
Dimension
0
CSG
XmNshowValue
XmCShowValue
Boolean
False
CSG
XmNtitleString
XmCTitleString
XmString
NULL
CSG
XmNvalue
XmCValue
int
dynamic
CSG
XmNvalueChangedCallback
XmCCallback
XtCallbackList
NULL
C
XmNdecimalPoints
Specifies the number of decimal points to shift the slider value when
displaying it. For example, a slider value of 2,350
and an XmdecimalPoints
value of 2 results in a display value of 23.50.
The value must not be negative.
XmNdragCallback
Specifies the list of callbacks that is called
when the slider position changes as the slider is being
dragged. The reason sent by the callback is XmCR_DRAG.
XmNfontList
Specifies the font list to use for the title text string specified by
XmNtitleString, and the label displayed when XmNshowValue
is True. If this value is NULL at initialization, the
font list is initialized by looking up the parent hierarchy of the
widget for an ancestor that is a subclass of the XmBulletinBoard,
VendorShell, or XmMenuShell widget class. If such an ancestor is
found, the font list is initialized to the XmNlabelFontList
of the ancestor widget. If no such ancestor is found, the default
is implementation dependent. Refer to
XmFontList(X3mot)
for more
information on the creation and structure of a font list.
XmNhighlightOnEnter
Specifies whether the highlighting rectangle is drawn when the cursor moves
into the widget.
If the shell's focus policy is XmEXPLICIT, this resource is
ignored, and the widget is highlighted when it has the focus.
If the shell's focus policy
is XmPOINTER and if this resource is
True, the highlighting rectangle is drawn when the cursor moves into
the widget.
If the shell's focus policy is XmPOINTER and if this resource is
False, the highlighting rectangle is not drawn when the cursor moves
into the widget.
The default is False.
XmNhighlightThickness
Specifies the size of the
slider's border drawing rectangle used for enter window and
traversal highlight drawing.
XmNmaximum
Specifies the slider's maximum value.
XmNmaximum must be greater than XmNminimum.
XmNminimum
Specifies the slider's minimum value.
XmNmaximum must be greater than XmNminimum.
XmNorientation
Displays Scale vertically or horizontally.
This resource can have values of XmVERTICAL and
XmHORIZONTAL.
XmNprocessingDirection
Specifies whether the value for XmNmaximum is on the right or
left side of XmNminimum for horizontal Scales
or above or below XmNminimum for vertical Scales.
This resource can have values of XmMAX_ON_TOP,
XmMAX_ON_BOTTOM, XmMAX_ON_LEFT, and
XmMAX_ON_RIGHT.
If the XmScale is oriented vertically, the default value is
XmMAX_ON_TOP.
If the XmScale is oriented horizontally, the default value
may depend on the value of the XmNstringDirection resource.
XmNscaleHeight
Specifies the height of the slider area.
The value should be in the specified unit type (the default is pixels).
If no value is specified a default height is computed.
XmNscaleMultiple
Specifies the amount to move the slider when the user takes an action
that moves the slider by a multiple increment.
The default is (XmNmaximumXmNminimum) divided by 10,
with a minimum of 1.
XmNscaleWidth
Specifies the width of the slider area.
The value should be in the specified unit type (the default is pixels).
If no value is specified a default width is computed.
XmNshowValue
Specifies whether a label for the current slider
value should be displayed next to the slider. If the value is True, the
current slider value is displayed.
XmNtitleString
Specifies the title text string to appear in the Scale widget window.
XmNvalue
Specifies the slider's current position along the scale,
between XmNminimum and XmNmaximum.
The value is constrained to be within these inclusive bounds.
The initial value of this resource is the larger of 0 and XmNminimum.
XmNvalueChangedCallback
Specifies the list of callbacks that is called
when the value of the slider has changed. The reason
sent by the callback is XmCR_VALUE_CHANGED.
Inherited resources
Scale inherits behavior and resources from the following
superclasses. For a complete description of each resource, refer to the
man 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
NULL
CSG
XmNnavigationType
XmCNavigationType
XmNavigationType
XmTAB_GROUP
CSG
XmNshadowThickness
XmCShadowThickness
Dimension
2
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
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 information
A pointer to the following structure is passed to each callback:
typedef struct
{
int reason;
XEvent * event;
int value;
} XmScaleCallbackStruct;
reason
Indicates why the callback was invoked
event
Points to the XEvent that triggered the callback
value
Is the new slider value
Behavior
XmScale behavior is described below:
BSelect Press or BDrag Press:
(in region between an end of the Scale and the slider): Moves the
slider by one multiple increment in the direction of the end of the
Scale and calls the XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_RIGHT or
XmMAX_ON_BOTTOM, movement toward the right or
bottom increments the Scale value,
and movement toward the left or top decrements the Scale value.
If XmNprocessingDirection is XmMAX_ON_LEFT or
XmMAX_ON_TOP, movement toward the right or
bottom decrements the Scale value,
and movement toward the left or top increments the Scale value.
If the button is held down longer than a delay period, the slider is
moved again by the same increment and the same callbacks are called.
(in slider): Activates the interactive dragging of the slider.
BSelect Motion or BDrag Motion:
If the button press occurs within the slider, the subsequent motion
events move the slider to the position of the pointer and call the
callbacks for XmNdragCallback.
BSelect Release or BDrag Release:
If the button press occurs within the slider and the slider position
is changed, the callbacks for XmNvalueChangedCallback are called.
MCtrl BSelect Press:
(in region between an end of the Scale and the slider): Moves the
slider to that end of the Scale and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_RIGHT or
XmMAX_ON_BOTTOM,
movement toward the right or bottom increments the Scale value,
and movement toward
the left or top
decrements
the Scale value.
If XmNprocessingDirection is XmMAX_ON_LEFT or
XmMAX_ON_TOP, movement toward the right or
bottom decrements the Scale value,
and movement toward the left or top increments the Scale value.
KUp:
For vertical Scales,
moves the slider up one increment and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_TOP, movement toward
the top increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_BOTTOM, movement toward
the top decrements the Scale value.
KDown:
For vertical Scales,
moves the slider down one increment and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_BOTTOM, movement toward
the bottom increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_TOP, movement toward
the bottom decrements the Scale value.
KLeft:
For horizontal Scales,
moves the slider one increment to the left and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_LEFT, movement toward
the left increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_RIGHT, movement toward
the left decrements the Scale value.
KRight:
For horizontal Scales,
moves the slider one increment to the right and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_RIGHT, movement toward
the right increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_LEFT, movement toward
the right decrements the Scale value.
MCtrl KUp or KPageUp:
For vertical Scales,
moves the slider up one multiple increment and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_TOP, movement toward
the top increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_BOTTOM, movement toward
the top decrements the Scale value.
MCtrl KDown or KPageDown:
For vertical Scales,
moves the slider down one multiple increment and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_BOTTOM, movement toward
the bottom increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_TOP, movement toward
the bottom decrements the Scale value.
MCtrl KLeft or KPageLeft:
For horizontal Scales,
moves the slider one multiple increment to the left and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_LEFT, movement toward
the left increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_RIGHT, movement toward
the left decrements the Scale value.
MCtrl KRight or KPageRight:
For horizontal Scales,
moves the slider one multiple increment to the right and calls the
XmNvalueChangedCallback callbacks.
If XmNprocessingDirection is XmMAX_ON_RIGHT, movement toward
the right increments the Scale value.
If XmNprocessingDirection is XmMAX_ON_LEFT, movement toward
the right decrements the Scale value.
KBeginLine or KBeginData:
Moves the slider to the minimum value and calls the
XmNvalueChangedCallback callbacks.
KEndLine or KEndData:
Moves the slider to the maximum value and calls the
XmNvalueChangedCallback callbacks.
KNextField:
Traverses to the first item in the next tab group. If
the current tab group is the last entry in the tab group list, it
wraps to the beginning of the tab group list.
KPrevField:
Traverses to the first item in the previous tab group.
If the beginning of the tab group list is reached, it wraps to the end
of the tab group list.
KHelp:
Calls the callbacks for XmNhelpCallback if any exist.
If there are no help
callbacks for this widget, this action calls the help callbacks
for the nearest ancestor that has them.
Virtual bindings
The bindings for virtual keys are vendor specific.
For information about bindings for virtual buttons and keys, see
VirtualBindings(X3mot).