XmScrollBar --- The ScrollBar widget class "XmScrollBar" "widget class" "ScrollBar"
#include <Xm/ScrollBar.h>
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. Classes ScrollBar inherits behavior, resources, and traits 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 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 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. XmNeditable Specifies how ScrollBar will react to user input. This resource can be True or False values, as follows: True Allows the scrollbar to be sensitive to user input. This is the default value. False Makes 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. 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 (zero). 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 (zero). 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 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 (zero). 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 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. 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 (zero). XmNshowArrows Specifies whether the arrows are displayed and how they are to be displayed. This resource can take the following values: XmEACH_SIDE Indicates that one arrow is displayed on each end of the ScrollBar slider. This corresponds to a value of True in previous releases. XmMAX_SIDE Indicates that both arrows are displayed on the XmNmaximum side of the ScrollBar slider. XmMIN_SIDE Indicates that both arrows are displayed on the XmNminimum side of the ScrollBar slider. XmNONE Indicates that no arrows are displayed. This corresponds to a value of False in previous releases. XmEACH_SIDE is the default value. XmNsliderMark Specifies the shape the slider is to be displayed in. This resource can take the following values: XmETCHED_LINE Specifies the slider as an etched line. XmNONE Specifies the slider as a foregrounded rectangle. This is the default for a regular slider. XmROUND_MARK Specifies the slider as a shadowed circle. This is the default when the slider is a thermometer. XmTHUMB_MARK Specifies the slider as a series of three etched lines centered in the middle of the slider. XmNslidingMode Specifies the mode the slider works in. There are two possible modes: XmSLIDER Allows the slider to move freely between the minimum and maximum ends of the scale. This is the default value. XmTHERMOMETER Forces the slider to be anchored to one side of the trough area. 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. XmNsliderVisual Specifies the color of the slider visual. This resource can take the following values: XmBACKGROUND_COLOR Specifies that the slider visual is in the background color. XmFOREGROUND_COLOR Specifies that the slider visual is in the foreground color. XmSHADOWED_BACKGROUND Specifies that the slider visual is in the background color, with a shadow. This is the default for a regular slider. XmTROUGH_COLOR Specifies that the slider visual is in the trough color. This is the default when the slider is a thermometer. XmNsnapBackMultiple Specifies 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. 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. This color defaults to the color used for selections. 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 (zero) 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 superclasses described in the following tables. For a complete description of each resource, refer to the reference page for that superclass. XmPrimitiveResource 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 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 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() :<Key><osfActivate>: PrimitiveParentActivate() :<Key><osfCancel>: CancelDrag() :<Key><osfBeginLine>: TopOrBottom() :<Key><osfEndLine>: TopOrBottom() :<Key><osfPageLeft>: PageUpOrLeft(Left) :c <Key><osfPageUp>: PageUpOrLeft(Left) :<Key><osfPageUp>: PageUpOrLeft(Up) :<Key><osfPageRight>: PageDownOrRight(Right) :c <Key><osfPageDown>: PageDownOrRight(Right) :<Key><osfPageDown>: PageDownOrRight(Down) :<Key><osfHelp>: PrimitiveHelp() :c <Key><osfUp>: PageUpOrLeft(Up) :<Key><osfUp>: IncrementUpOrLeft(Up) :c <Key><osfDown>: PageDownOrRight(Down) :<Key><osfDown>: IncrementDownOrRight(Down) :c <Key><osfLeft>: PageUpOrLeft(Left) :<Key><osfLeft>: IncrementUpOrLeft(Left) :c <Key><osfRight>: PageDownOrRight(Right) :<Key><osfRight>: IncrementDownOrRight(Right) s m a <Key>Return: PrimitiveParentActivate() s m a <Key>Tab: PrimitivePrevTabGroup() m a <Key>Tab: PrimitiveNextTabGroup() Action Routines 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(): <Ctrl><Btn1Down> 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 <Key><osfBeginLine> or <Key><osfBeginData> moves the slider to the minimum value and invokes the XmNtoTopCallback. Pressing <Key><osfEndLine> or <Key><osfEndData> 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(3).
Core(3), XmCreateScrollBar(3), XmPrimitive(3), XmScrollBarGetValues(3), XmScrollBarSetValues(3), XmVaCreateScrollBar(3), and XmVaCreateManagedScrollBar(3). XmScrollBar(3)
Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.
Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.
Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.
Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.
The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.
Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.
Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.
Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.