Index Index for
Section 3X
Index Alphabetical
listing for X
Bottom of page Bottom of
page

XmScrollBar(3X)

OSF/Motif

NAME

XmScrollBar - The ScrollBar widget class

SYNOPSIS

#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. Classes ScrollBar inherits behavior and resources from the Core and XmPrimitive classes. The class pointer is xmScrollBarWidgetClass. The class name is XmScrollBar. 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). XmScrollBar Resource Set XmNdecrementCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNdragCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNincrement Class: XmCIncrement Default: 1 Type: int Access: CSG XmNincrementCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNinitialDelay Class: XmCInitialDelay Default: 250 ms Type: int Access: CSG XmNmaximum Class: XmCMaximum Default: dynamic Type: int Access: CSG XmNminimum Class: XmCMinimum Default: 0 Type: int Access: CSG XmNorientation Class: XmCOrientation Default: XmVERTICAL Type: unsigned char Access: CSG XmNpageDecrementCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNpageIncrement Class: XmCPageIncrement Default: 10 Type: int Access: CSG XmNpageIncrementCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNprocessingDirection Class: XmCProcessingDirection Default: dynamic Type: unsigned char Access: CSG XmNrepeatDelay Class: XmCRepeatDelay Default: 50 ms Type: int Access: CSG XmNshowArrows Class: XmCShowArrows Default: True Type: Boolean Access: CSG XmNsliderSize Class: XmCSliderSize Default: dynamic Type: int Access: CSG XmNtoBottomCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNtoTopCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNtroughColor Class: XmCTroughColor Default: dynamic Type: Pixel Access: CSG XmNvalue Class: XmCValue Default: dynamic Type: int Access: CSG XmNvalueChangedCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNdecrementCallback Specifies 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. XmNdragCallback Specifies 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. XmNincrement Specifies 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. XmNincrementCallback Specifies 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. XmNinitialDelay Specifies 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. XmNmaximum Specifies the slider's maximum value. ScrollBars contained within ScrolledWindows have a maximum equal to the size of ScrollBar (that is, the height if it is vertical, or the width if it is horizontal). XmNmaximum must be greater than XmNminimum. XmNminimum Specifies the slider's minimum value. XmNmaximum must be greater than XmNminimum. XmNorientation Specifies whether the ScrollBar is displayed vertically or horizontally. This resource can have values of XmVERTICAL and XmHORIZONTAL. XmNpageDecrementCallback Specifies 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. XmNpageIncrement Specifies 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. XmNpageIncrementCallback Specifies 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. XmNprocessingDirection Specifies 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 XmScrollBar is oriented vertically, the default value is XmMAX_ON_BOTTOM. If the XmScrollBar is oriented horizontally, the default value may depend on the value of the XmNstringDirection resource. XmNrepeatDelay Specifies 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. XmNshowArrows Specifies whether the arrows are displayed. XmNsliderSize Specifies 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. XmNtoBottomCallback Specifies 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. XmNtoTopCallback Specifies 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. XmNtroughColor Specifies the color of the slider trough. XmNvalue Specifies 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 and XmNminimum. XmNvalueChangedCallback Specifies 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. Inherited Resources ScrollBar inherits behavior and resources from the following superclasses. For a complete description of each resource, refer to the man page for that superclass. XmPrimitive Resource Set XmNbottomShadowColor Class: XmCBottomShadowColor Default: dynamic Type: Pixel Access: CSG XmNbottomShadowPixmap Class: XmCBottomShadowPixmap Default: XmUNSPECIFIED_PIXMAP Type: Pixmap Access: CSG XmNforeground Class: XmCForeground Default: dynamic Type: Pixel Access: CSG XmNhelpCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNhighlightColor Class: XmCHighlightColor Default: dynamic Type: Pixel Access: CSG XmNhighlightOnEnter Class: XmCHighlightOnEnter Default: False Type: Boolean Access: CSG XmNhighlightPixmap Class: XmCHighlightPixmap Default: dynamic Type: Pixmap Access: CSG XmNhighlightThickness Class: XmCHighlightThickness Default: dynamic Type: Dimension Access: CSG XmNnavigationType Class: XmCNavigationType Default: XmSTICKY_TAB_GROUP Type: XmNavigationType Access: CSG XmNshadowThickness Class: XmCShadowThickness Default: 2 Type: Dimension Access: CSG XmNtopShadowColor Class: XmCTopShadowColor Default: dynamic Type: Pixel Access: CSG XmNtopShadowPixmap Class: XmCTopShadowPixmap Default: dynamic Type: Pixmap Access: CSG XmNtraversalOn Class: XmCTraversalOn Default: dynamic Type: Boolean Access: CSG XmNunitType Class: XmCUnitType Default: dynamic Type: unsigned char Access: CSG XmNuserData Class: XmCUserData Default: NULL Type: XtPointer Access: CSG Core Resource Set XmNaccelerators Class: XmCAccelerators Default: dynamic Type: XtAccelerators Access: CSG XmNancestorSensitive Class: XmCSensitive Default: dynamic Type: Boolean Access: G XmNbackground Class: XmCBackground Default: dynamic Type: Pixel Access: CSG XmNbackgroundPixmap Class: XmCPixmap Default: XmUNSPECIFIED_PIXMAP Type: Pixmap Access: CSG XmNborderColor Class: XmCBorderColor Default: XtDefaultForeground Type: Pixel Access: CSG XmNborderPixmap Class: XmCPixmap Default: XmUNSPECIFIED_PIXMAP Type: Pixmap Access: CSG XmNborderWidth Class: XmCBorderWidth Default: 0 Type: Dimension Access: CSG XmNcolormap Class: XmCColormap Default: dynamic Type: Colormap Access: CG XmNdepth Class: XmCDepth Default: dynamic Type: int Access: CG XmNdestroyCallback Class: XmCCallback Default: NULL Type: XtCallbackList Access: C XmNheight Class: XmCHeight Default: dynamic Type: Dimension Access: CSG XmNinitialResourcesPersistent Class: XmCInitialResourcesPersistent Default: True Type: Boolean Access: C XmNmappedWhenManaged Class: XmCMappedWhenManaged Default: True Type: Boolean Access: CSG XmNscreen Class: XmCScreen Default: dynamic Type: Screen * Access: CG XmNsensitive Class: XmCSensitive Default: True Type: Boolean Access: CSG XmNtranslations Class: XmCTranslations Default: dynamic Type: XtTranslations Access: CSG XmNwidth Class: XmCWidth Default: dynamic Type: Dimension Access: CSG XmNx Class: XmCPosition Default: 0 Type: Position Access: CSG XmNy Class: XmCPosition Default: 0 Type: Position Access: CSG Callback Information A pointer to the following structure is passed to each callback: typedef struct { int reason; XEvent * event; int value; int pixel; } XmScrollBarCallbackStruct; reason Indicates why the callback was invoked. event Points to the XEvent that triggered the callback. value Contains the new slider location value. pixel Is 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. Translations XmScrollBar includes translations from Primitive. The XmScrollBar translations are listed below. These translations may not directly correspond to a translation table. BSelect Press: Select() BSelect Release:Release() BSelect Press Moved:Moved() BDrag Press: Select() BDrag Release: Release() BDrag Press Moved:Moved() MCtrl BSelect Press:TopOrBottom() MCtrl BSelect Release:Release() KUp: IncrementUpOrLeft(0) MCtrl KUp: PageUpOrLeft(0) KDown: IncrementDownOrRight(0) MCtrl KDown: PageDownOrRight(0) KLeft: IncrementUpOrLeft(1) MCtrl KLeft: PageUpOrLeft(1) KRight: IncrementDownOrRight(1) MCtrl KRight: PageDownOrRight(1) KPageUp: PageUpOrLeft(0) KPageDown: PageDownOrRight(0) KPageLeft: PageUpOrLeft(1) KPageRight: PageDownOrRight(1) KBeginLine: TopOrBottom() KEndLine: TopOrBottom() KBeginData: TopOrBottom() KEndData: TopOrBottom() KNextField: PrimitiveNextTabGroup() KPrevField: PrimitivePrevTabGroup() KActivate: PrimitiveParentActivate() KCancel: CancelDrag() KHelp: PrimitiveHelp() Action Routines The ScrollBar action routines are described below: 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(0|1): With an argument of 0, moves the slider down by one increment. With an argument of 1, 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(0|1): With an argument of 0, moves the slider up by one increment. With an argument of 1, 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(0|1): With an argument of 0, moves the slider down by one page increment. With an argument of 1, 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 callbacks for XmNpageDecrementCallback. The XmNvalueChangedCallback is called if the XmNpageIncrementCallback or XmNpageDecrementCallback is NULL. PageUpOrLeft(0|1): With an argument of 0, moves the slider up by one page increment. With an argument of 1, 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 callbacks for XmNpageIncrementCallback. 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 the 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 the 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 the 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(): MCtrl BSelect Press 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 KBeginLine or KBeginData moves the slider to the minimum value and invokes the XmNtoTopCallback. Pressing KEndLine or KEndData moves the slider to the maximum value and invokes the XmNtoBottomCallback. Virtual Bindings The bindings for virtual keys are vendor specific. For information about bindings for virtual buttons and keys, see VirtualBindings(3X).

SEE ALSO

Core(3X), XmCreateScrollBar(3X), XmPrimitive(3X), XmScrollBarGetValues(3X), XmScrollBarSetValues(3X)

Index Index for
Section 3X
Index Alphabetical
listing for X
Top of page Top of
page