[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]
Motif 2.1 Programmer's Reference
XmScrollBar
The ScrollBar widget class
Format
#include <Xm/ScrollBar.h>
DESCRIPTION
The ScrollBar widget allows the user to view data that is too large to be
displayed all at once. ScrollBars are usually located inside a ScrolledWindow
and adjacent to the widget that contains the data to be viewed. When the user
interacts with the ScrollBar, the data within the other widget scrolls.
A ScrollBar consists of two arrows placed at each end of a rectangle. The
rectangle is called the scroll region. A smaller rectangle, called the slider,
is placed within the scroll region. The data is scrolled by clicking either
arrow, selecting on the scroll region, or dragging the slider. When an arrow
is selected, the slider within the scroll region is moved in the direction of
the arrow by an amount supplied by the application. If the mouse button is
held down, the slider continues to move at a constant rate.
The ratio of the slider size to the scroll region size typically
corresponds to the relationship between the size of the visible data and the
total size of the data. For example, if 10 percent of the data is visible, the
slider typically occupies 10 percent of the scroll region. This provides the
user with a visual clue to the size of the invisible data.
If the ScrollBar parent is an automatic ScrolledWindow, the XmNtraversalOn
default is True. Otherwise, the default is False.
ScrollBar holds the XmQTnavigator traits.
ScrollBar inherits behavior, resources, and traits from the Core and
XmPrimitive classes.
The class pointer is xmScrollBarWidgetClass.
The class name is XmScrollBar.
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).
XmScrollBar Resource Set |
Name |
Class |
Type |
Default |
Access |
XmNdecrementCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNdragCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNeditable |
XmCEditable |
Boolean |
True |
CSG |
XmNincrement |
XmCIncrement |
int |
1 |
CSG |
XmNincrementCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNinitialDelay |
XmCInitialDelay |
int |
250 ms |
CSG |
XmNmaximum |
XmCMaximum |
int |
100 |
CSG |
XmNminimum |
XmCMinimum |
int |
0 |
CSG |
XmNorientation |
XmCOrientation |
unsigned char |
XmVERTICAL |
CSG |
XmNpageDecrementCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNpageIncrement |
XmCPageIncrement |
int |
10 |
CSG |
XmNpageIncrementCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNprocessingDirection |
XmCProcessingDirection |
unsigned char |
dynamic |
CSG |
XmNrepeatDelay |
XmCRepeatDelay |
int |
50 ms |
CSG |
XmNshowArrows |
XmCShowArrows |
XtEnum |
XmEACH_SIDE |
CSG |
XmNsliderSize |
XmCSliderSize |
int |
dynamic |
CSG |
XmNsliderMark |
XmCSliderMark |
XtEnum |
dynamic |
CSG |
XmNsliderVisual |
XmCSliderVisual |
XtEnum |
XmSHADOWED |
CSG |
XmNslidingMode |
XmCSlidingMode |
XtEnum |
XmSLIDER |
CSG |
XmNsnapBackMultiple |
XmCSnapBackMultiple |
unsigned short |
MaxValue |
CSG |
XmNtoBottomCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNtoTopCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNtroughColor |
XmCTroughColor |
Pixel |
dynamic |
CSG |
XmNvalue |
XmCValue |
int |
dynamic |
CSG |
XmNvalueChangedCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNdecrementCallbackSpecifies the list of callbacks that is called when the user takes an
action that moves the ScrollBar by one increment and the value decreases. The
reason passed to the callback is XmCR_DECREMENT.
XmNdragCallbackSpecifies the list of callbacks that is called on each incremental change
of position when the slider is being dragged. The reason sent by the callback
is XmCR_DRAG.
XmNeditableSpecifies how ScrollBar will react to user input. This resource can be
True or False values, as follows:
TrueAllows the scrollbar to be sensitive to user input. This is the default
value.
FalseMakes the Scale scrollbar insensitive to user input. The visual is not
greyed out. This value would mostly be used in XmTHERMOMETER mode.
When XmNeditable is used on a widget it sets the dropsite to
XmDROP_SITE_ACTIVE.
XmNincrementSpecifies the amount by which the value increases or decreases when the
user takes an action that moves the slider by one increment. The actual change
in value is the lesser of XmNincrement and (previous XmNvalue -
XmNminimum) when the slider moves to the end of the ScrollBar with the minimum
value, and the lesser of XmNincrement and (XmNmaximum-
XmNsliderSize - previous XmNvalue) when the slider moves to the end
of the ScrollBar with the maximum value. The value of this resource must be
greater than 0 (zero).
XmNincrementCallbackSpecifies the list of callbacks that is called when the user takes an
action that moves the ScrollBar by one increment and the value increases. The
reason passed to the callback is XmCR_INCREMENT.
XmNinitialDelaySpecifies the amount of time in milliseconds to wait before starting
continuous slider movement while a button is pressed in an arrow or the scroll
region. The value of this resource must be greater than 0 (zero).
XmNmaximumSpecifies the slider's maximum value. XmNmaximum must be greater than
XmNminimum.
XmNminimumSpecifies the slider's minimum value. XmNmaximum must be greater than
XmNminimum.
XmNorientationSpecifies whether the ScrollBar is displayed vertically or horizontally.
This resource can have values of XmVERTICAL and XmHORIZONTAL.
XmNpageDecrementCallbackSpecifies the list of callbacks that is called when the user takes an
action that moves the ScrollBar by one page increment and the value decreases.
The reason passed to the callback is XmCR_PAGE_DECREMENT.
XmNpageIncrementSpecifies the amount by which the value increases or decreases when the
user takes an action that moves the slider by one page increment. The actual
change in value is the lesser of XmNpageIncrement and (previous
XmNvalue - XmNminimum) when the slider moves to the end of the
ScrollBar with the minimum value, and the lesser of XmNpageIncrement and
(XmNmaximum- XmNsliderSize - previous XmNvalue) when the
slider moves to the end of the ScrollBar with the maximum value. The value of
this resource must be greater than 0 (zero).
XmNpageIncrementCallbackSpecifies the list of callbacks that is called when the user takes an
action that moves the ScrollBar by one page increment and the value increases.
The reason passed to the callback is XmCR_PAGE_INCREMENT.
XmNprocessingDirectionSpecifies whether the value for XmNmaximum should be on the right or left
side of XmNminimum for horizontal ScrollBars or above or below XmNminimum for
vertical ScrollBars. This resource can have values of XmMAX_ON_TOP,
XmMAX_ON_BOTTOM, XmMAX_ON_LEFT
, and XmMAX_ON_RIGHT. If the ScrollBar is
oriented vertically, the default value is XmMAX_ON_BOTTOM. If the ScrollBar is
oriented horizontally, the default value depends on the XmNlayoutDirection
resource of the widget.
XmNrepeatDelaySpecifies the amount of time in milliseconds to wait between subsequent
slider movements after the XmNinitialDelay has been processed. The value of
this resource must be greater than 0 (zero).
XmNshowArrowsSpecifies whether the arrows are displayed and how they are to be
displayed. This resource can take the following values:
XmEACH_SIDEIndicates that one arrow is displayed on each end of the ScrollBar slider.
This corresponds to a value of True in previous releases.
XmMAX_SIDEIndicates that both arrows are displayed on the XmNmaximum side of the
ScrollBar slider.
XmMIN_SIDEIndicates that both arrows are displayed on the XmNminimum side of the
ScrollBar slider.
XmNONEIndicates that no arrows are displayed. This corresponds to a value of
False in previous releases.
XmEACH_SIDE is the default value.
XmNsliderMarkSpecifies the shape the slider is to be displayed in. This resource can
take the following values:
XmETCHED_LINESpecifies the slider as an etched line.
XmNONESpecifies the slider as a foregrounded rectangle. This is the default for
a regular slider.
XmROUND_MARKSpecifies the slider as a shadowed circle. This is the default when the
slider is a thermometer.
XmTHUMB_MARKSpecifies the slider as a series of three etched lines centered in the
middle of the slider.
XmNslidingModeSpecifies the mode the slider works in. There are two possible
modes:
XmSLIDERAllows the slider to move freely between the minimum and maximum ends of
the scale. This is the default value.
XmTHERMOMETERForces the slider to be anchored to one side of the trough area.
XmNsliderSizeSpecifies the length of the slider between the values of 1 and
(XmNmaximum - XmNminimum). The value is constrained to be within
these inclusive bounds. The default value is (XmNmaximum -
XmNminimum) divided by 10, with a minimum of 1.
XmNsliderVisualSpecifies the color of the slider visual. This resource can take the
following values:
XmBACKGROUND_COLORSpecifies that the slider visual is in the background color.
XmFOREGROUND_COLORSpecifies that the slider visual is in the foreground color.
XmSHADOWED_BACKGROUNDSpecifies that the slider visual is in the background color, with a
shadow. This is the default for a regular slider.
XmTROUGH_COLORSpecifies that the slider visual is in the trough color. This is the
default when the slider is a thermometer.
XmNsnapBackMultipleSpecifies the distance over which the scrollbar slider snaps back to its
original position when the user drags the mouse outside the ScrollBar edge.
This distance is defined in terms of multiples of the width of the slider. For
example, a multiple of 0 (zero) causes the slider to snap back as soon as the
pointer moves out of the ScrollBar frame, a multiple of 1 causes the slider to
snap back as soon as the pointer moves beyond 1 ScrollBar width of the
ScrollBar edge. Whenever the slider snaps back, the ScrollBar
dragCallback
is called if there is one.
The default value is large enough to prevent unwanted snapBack activity if
the mouse is moved within the boundaries of any reasonable screen. To reset
the default, set this resource to a large value, such as 10000.
XmNtoBottomCallbackSpecifies the list of callbacks that is called when the user takes an
action that moves the slider to the end of the ScrollBar with the maximum
value. The reason passed to the callback is XmCR_TO_BOTTOM.
XmNtoTopCallbackSpecifies the list of callbacks that is called when the user takes an
action that moves the slider to the end of the ScrollBar with the minimum
value. The reason passed to the callback is XmCR_TO_TOP.
XmNtroughColorSpecifies the color of the slider trough. This color defaults to the color
used for selections.
XmNvalueSpecifies the slider's position, between XmNminimum and
(XmNmaximum - XmNsliderSize). The value is constrained to be within
these inclusive bounds. The initial value of this resource is the larger of 0
(zero) and XmNminimum.
XmNvalueChangedCallbackSpecifies the list of callbacks that is called when the slider is released
after being dragged. These callbacks are also called in place of
XmNincrementCallback, XmNdecrementCallback, XmNpageIncrementCallback,
XmNpageDecrementCallback, XmNtoTopCallback, or XmNtoBottomCallback when one of
these callback lists would normally be called but the value of the
corresponding resource is NULL. The reason passed to the callback is
XmCR_VALUE_CHANGED.
ScrollBar 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.
XmPrimitive Resource Set |
Name |
Class |
Type |
Default |
Access |
XmNbottomShadowColor |
XmCBottomShadowColor |
Pixel |
dynamic |
CSG |
XmNbottomShadowPixmap |
XmCBottomShadowPixmap |
Pixmap |
XmUNSPECIFIED_PIXMAP |
CSG |
XmNconvertCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNforeground |
XmCForeground |
Pixel |
dynamic |
CSG |
XmNhelpCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNhighlightColor |
XmCHighlightColor |
Pixel |
dynamic |
CSG |
XmNhighlightOnEnter |
XmCHighlightOnEnter |
Boolean |
False |
CSG |
XmNhighlightPixmap |
XmCHighlightPixmap |
Pixmap |
dynamic |
CSG |
XmNhighlightThickness |
XmCHighlightThickness |
Dimension |
dynamic |
CSG |
XmNlayoutDirection |
XmCLayoutDirection |
XmDirection |
dynamic |
CG |
XmNnavigationType |
XmCNavigationType |
XmNavigationType |
XmSTICKY_TAB_GROUP |
CSG |
XmNpopupHandlerCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNshadowThickness |
XmCShadowThickness |
Dimension |
2 |
CSG |
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 |
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 |
A pointer to the following structure is passed to each callback:
typedef struct
{
int
reason;
XEvent
* event;
int
value;
int
pixel;
} XmScrollBarCallbackStruct;
reasonIndicates why the callback was invoked.
eventPoints to the XEvent that triggered the callback.
valueContains the new slider location value.
pixelIs used only for XmNtoTopCallback and XmNtoBottomCallback. For horizontal
ScrollBars, it contains the x coordinate of where the mouse button
selection occurred. For vertical ScrollBars, it contains the y
coordinate.
XmScrollBar includes translations from Primitive. The XmScrollBar
translations are described in the following list.
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.
s c m a
Btn1Down:Select()
s c m a
Btn1Up:Release()
s c m a Button1
PtrMoved:Moved()
s c m a
Btn2Down:Select()
s c m a
Btn2Up:Release()
s c m a Button2
PtrMoved:Moved()
s c m a
Btn1Down:TopOrBottom()
s c m a
Btn1Up:Release()
:
KeyosfActivate:PrimitiveParentActivate()
:
KeyosfCancel:CancelDrag()
:
KeyosfBeginLine:TopOrBottom()
:
KeyosfEndLine:TopOrBottom()
:
KeyosfPageLeft:PageUpOrLeft( Left)
:c
KeyosfPageUp:PageUpOrLeft( Left)
:
KeyosfPageUp:PageUpOrLeft( Up)
:
KeyosfPageRight:PageDownOrRight( Right)
:c
KeyosfPageDown:PageDownOrRight( Right)
:
KeyosfPageDown:PageDownOrRight( Down)
:
KeyosfHelp:PrimitiveHelp()
:c
KeyosfUp:PageUpOrLeft( Up)
:
KeyosfUp:IncrementUpOrLeft( Up)
:c
KeyosfDown:PageDownOrRight( Down)
:
KeyosfDown:IncrementDownOrRight( Down)
:c
KeyosfLeft:PageUpOrLeft( Left)
:
KeyosfLeft:IncrementUpOrLeft( Left)
:c
KeyosfRight:PageDownOrRight( Right)
:
KeyosfRight:IncrementDownOrRight( Right)
s m a
KeyReturn
:PrimitiveParentActivate()
s m a
KeyTab
:PrimitivePrevTabGroup()
m a
KeyTab
:PrimitiveNextTabGroup()
The ScrollBar action routines are
CancelDrag() :If the key press occurs during scrolling, cancels the scroll and returns
the slider to its previous location in the scrollbar, otherwise, and if the
parent is a manager, it passes the event to the parent.
IncrementDownOrRight( Down|Right) :With an argument of Down
, or 0 (zero) for compatibility, moves
the slider down by one increment. With an argument of Right
, or 1
for compatibility, it moves the slider right by one increment. If
XmNprocessingDirection is XmMAX_ON_RIGHT or XmMAX_ON_BOTTOM, movement toward
the right or bottom calls the callbacks for XmNincrementCallback. If
XmNprocessingDirection is XmMAX_ON_LEFT or XmMAX_ON_TOP, movement toward the
right or bottom calls the callbacks for XmNdecrementCallback. The
XmNvalueChangedCallback is called if the XmNincrementCallback or
XmNdecrementCallback is NULL.
IncrementUpOrLeft( Up|Left) :With an argument of Up
, or 0 (zero) for compatibility, moves
the slider up by one increment. With an argument of Left
, or 1 for
compatibility, it moves the slider left by one increment. If
XmNprocessingDirection is XmMAX_ON_RIGHT or XmMAX_ON_BOTTOM, movement to the
left or top calls the callbacks for XmNdecrementCallback. If
XmNprocessingDirection is XmMAX_ON_LEFT or XmMAX_ON_TOP, movement to the left
or top calls the callbacks for XmNincrementCallback. The
XmNvalueChangedCallback is called if the XmNincrementCallback or
XmNdecrementCallback is NULL.
Moved() :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.
PageDownOrRight( Down|Right) :With an argument of Down
, or 0 (zero) for compatibility, moves
the slider down by one page increment. With an argument of Right
,
or 1 for compatibility, moves the slider right by one page increment. If
XmNprocessingDirection is XmMAX_ON_RIGHT or XmMAX_ON_BOTTOM, movement toward
the right or bottom calls the callbacks for XmNpageIncrementCallback. If
XmNprocessingDirection is XmMAX_ON_LEFT or XmMAX_ON_TOP, movement toward the
right or bottom calls the XmNpageDecrementCallback callbacks. The
XmNvalueChangedCallback is called if the XmNpageIncrementCallback or
XmNpageDecrementCallback is NULL.
PageUpOrLeft( Up|Left) :With an argument of Up
, or 0 (zero) for compatibility, moves
the slider up by one page increment. With an argument of Left
, or 1
for compatibility, it moves the slider left by one page increment. If
XmNprocessingDirection is XmMAX_ON_RIGHT or XmMAX_ON_BOTTOM, movement to the
left or top calls the callbacks for XmNpageDecrementCallback. If
XmNprocessingDirection is XmMAX_ON_LEFT or XmMAX_ON_TOP, movement to the left
or top calls the XmNpageIncrementCallback callbacks. The
XmNvalueChangedCallback is called if the XmNpageIncrementCallback or
XmNpageDecrementCallback is NULL.
PrimitiveHelp() :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.
PrimitiveNextTabGroup() :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.
PrimitiveParentActivate() :If the parent is a manager, passes the event to the parent.
PrimitivePrevTabGroup() :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.
Release() :If the button press occurs within the slider and the slider position is
changed, the callbacks for XmNvalueChangedCallback are called.
Select() :In arrow
: Moves the slider by one increment in the
direction of the arrow. If XmNprocessingDirection is XmMAX_ON_RIGHT or
XmMAX_ON_BOTTOM, movement toward the right or bottom calls the callbacks for
XmNincrementCallback, and movement to the left or top calls the callbacks for
XmNdecrementCallback. If XmNprocessingDirection is XmMAX_ON_LEFT or
XmMAX_ON_TOP, movement toward the right or bottom calls the callbacks for
XmNdecrementCallback, and movement to the left or top calls the callbacks for
XmNincrementCallback. The XmNvalueChangedCallback is called if the
XmNincrementCallback or XmNdecrementCallback is NULL.
In scroll region between an arrow and the slider
: Moves
the slider by one page increment in the direction of the arrow. If
XmNprocessingDirection is XmMAX_ON_RIGHT or XmMAX_ON_BOTTOM, movement toward
the right or bottom calls the callbacks for XmNpageIncrementCallback, and
movement to the left or top calls the callbacks for XmNpageDecrementCallback.
If XmNprocessingDirection is XmMAX_ON_LEFT or XmMAX_ON_TOP, movement toward
the right or bottom calls the callbacks for XmNpageDecrementCallback, and
movement to the left or top calls the callbacks for XmNpageIncrementCallback.
The XmNvalueChangedCallback is called if the XmNpageIncrementCallback or
XmNpageDecrementCallback is NULL.
In slider
: Activates the interactive dragging of the
slider.
If the button is held down in either the arrows or the scroll region longer
than the XmNinitialDelay resource, the slider is moved again by the same
increment and the same callbacks are called. After the initial delay has been
used, the time delay changes to the time defined by the resource
XmNrepeatDelay.
TopOrBottom() :CtrlBtn1Down in an arrow or in the scroll region between an arrow and the
slider moves the slider as far as possible in the direction of the arrow. If
XmNprocessingDirection is XmMAX_ON_RIGHT or XmMAX_ON_BOTTOM, movement toward
the right or bottom calls the callbacks for XmNtoBottomCallback, and movement
to the left or top calls the callbacks for XmNtoTopCallback. If
XmNprocessingDirection is XmMAX_ON_LEFT or XmMAX_ON_TOP, movement toward the
right or bottom calls the callbacks for XmNtoTopCallback, and movement to the
left or top calls the callbacks for XmNtoBottomCallback. The
XmNvalueChangedCallback is called if the XmNtoTopCallback or
XmNtoBottomCallback is NULL. Pressing KeyosfBeginLine or KeyosfBeginData moves
the slider to the minimum value and invokes the XmNtoTopCallback. Pressing
KeyosfEndLine or KeyosfEndData moves the slider to the maximum value and
invokes the XmNtoBottomCallback.
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see
VirtualBindings
(3).
RELATED
Core
(3), XmCreateScrollBar
(3),
XmPrimitive
(3), XmScrollBarGetValues
(3), and
XmScrollBarSetValues
(3).
[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]