* Re: scroll-bar-toolkit-scroll
2002-07-31 5:54 ` scroll-bar-toolkit-scroll Richard Stallman
@ 2002-07-31 11:58 ` Gerd Moellmann
2002-08-01 16:51 ` scroll-bar-toolkit-scroll Richard Stallman
2002-08-09 7:12 ` scroll-bar-toolkit-scroll Stefan Monnier
0 siblings, 2 replies; 16+ messages in thread
From: Gerd Moellmann @ 2002-07-31 11:58 UTC (permalink / raw)
Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 2453 bytes --]
Richard Stallman <rms@gnu.org> writes:
> IIRC, the scroll bar callback is invoked with action information only,
>
> Could you explain what "action information" means?
I meant "user action". In the Motif case, for example the scroll bar
callback in invoked for user action meaning "line down", "page up" etc.
> (I'm assuming you are the expert on this--wasn't it you who
> wrote that code? If I should ask someone else instead, please
> tell me who.)
I wouldn't call myself an expert on this stuff. Stefan, BTW, also
worked on the scroll bar code. He probably knows at least as much
about this as I do.
> See, for instance, the LessTif/Motif callback xm_scroll_callback in
> xterm.c. AFAIK, the callback cannot tell which user actions caused
> the action, i.e. up/down events etc.
>
> I see one "action" is XmCR_DRAG. Can you find out, and tell me,
> exactly when that is given?
The only info I have is a man page. I'll attach it at the end.
> Is it for the down event on the slider, or for an up event after
> sliding the slider, or what?
As I read the man page, XmCR_DRAG is received while the user is
dragging the slider for "each incremental change of position", so it
would be neither up nor down event.
>
> What does a callback with that code signify?
>
> I noticed that xm_scroll_callback calls x_send_scroll_bar_event:
>
> /* Send a client message with message type Xatom_Scrollbar for a
> scroll action to the frame of WINDOW. PART is a value identifying
> the part of the scroll bar that was clicked on. PORTION is the
> amount to scroll of a whole of WHOLE. */
>
> static void
> x_send_scroll_bar_event (window, part, portion, whole)
>
> I don't understand the role of this function in the overall
> implementation of toolkit scroll bars. Could you explain it?
>
> It seems to be sending some sort of X event to Emacs's X window.
> Why is that? What happens when that client message "arrives"
> again? Which part of the code in Emacs handles it then?
> And why not call it directly instead of sending a message
> to the X server?
I've used x_send_scroll_bar_event to "translate" the invocation of the
scroll bar callback to an X event that is handled in XTread_socket
like other events. This seemed to be the easiest way to orderly
produce a scroll bar input event in the kdb queue because I saw no way
to predict when the callback is called (asynchronously).
[-- Attachment #2: XmScrollBar man page --]
[-- Type: text/plain, Size: 44999 bytes --]
XmScrollBar(3) XmScrollBar(3)
N\bNA\bAM\bME\bE
X\bXm\bmS\bSc\bcr\bro\bol\bll\blB\bBa\bar\br -- The ScrollBar widget class
S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
#include <Xm/ScrollBar.h>
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
The ScrollBar widget allows the user to view data that is
too large to be displayed all at once. ScrollBars are usu-
ally 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 X\bXm\bmN\bNt\btr\bra\bav\bve\ber\brs\bsa\bal\blO\bOn\bn default is True. Otherwise, the default
is False.
ScrollBar holds the X\bXm\bmQ\bQT\bTn\bna\bav\bvi\big\bga\bat\bto\bor\br traits.
C\bCl\bla\bas\bss\bse\bes\bs
ScrollBar inherits behavior, resources, and traits from
the C\bCo\bor\bre\be and X\bXm\bmP\bPr\bri\bim\bmi\bit\bti\biv\bve\be classes.
The class pointer is x\bxm\bmS\bSc\bcr\bro\bol\bll\blB\bBa\bar\brW\bWi\bid\bdg\bge\bet\btC\bCl\bla\bas\bss\bs.
The class name is X\bXm\bmS\bSc\bcr\bro\bol\bll\blB\bBa\bar\br.
N\bNe\bew\bw R\bRe\bes\bso\bou\bur\brc\bce\bes\bs
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 .\b.X\bXd\bde\bef\bfa\bau\bul\blt\bts\bs file, remove the X\bXm\bmN\bN or
X\bXm\bmC\bC prefix and use the remaining letters. To specify one
of the defined values for a resource in a .\b.X\bXd\bde\bef\bfa\bau\bul\blt\bts\bs file,
remove the X\bXm\bm 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 X\bXt\btS\bSe\bet\btV\bVa\bal\blu\bue\bes\bs (S), retrieved by using X\bXt\btG\bGe\bet\btV\bVa\bal\blu\bue\bes\bs
(G), or is not applicable (N/A).
+------------------------------------------------------------------------------------------+
| | X\bXm\bmS\bSc\bcr\bro\bol\bll\blB\bBa\bar\br R\bRe\bes\bso\bou\bur\br|\bc\bce\be S\bSe\bet\bt | | |
|N\bNa\bam\bme\be | C\bCl\bla\bas\bss\bs | T\bTy\byp\bpe\be | D\bDe\bef\bfa\bau\bul\blt\bt | A\bAc\bcc\bce\bes\bss\bs |
+-------------------------+------------------------+----------------+-------------+--------+
|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 |
+-------------------------+------------------------+----------------+-------------+--------+
+-------------------------+------------------------+----------------+-------------+--------+
X\bXm\bmN\bNd\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk
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
X\bXm\bmC\bCR\bR_\b_D\bDE\bEC\bCR\bRE\bEM\bME\bEN\bNT\bT.
X\bXm\bmN\bNd\bdr\bra\bag\bgC\bCa\bal\bll\blb\bba\bac\bck\bk
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 X\bXm\bmC\bCR\bR_\b_D\bDR\bRA\bAG\bG.
X\bXm\bmN\bNe\bed\bdi\bit\bta\bab\bbl\ble\be
Specifies how ScrollBar will react to user
input. This resource can be True or False val-
ues, as follows:
T\bTr\bru\bue\be Allows the scrollbar to be sensitive
to user input. This is the default
value.
F\bFa\bal\bls\bse\be Makes the Scale scrollbar insensitive
to user input. The visual is not
greyed out. This value would mostly be
used in X\bXm\bmT\bTH\bHE\bER\bRM\bMO\bOM\bME\bET\bTE\bER\bR mode.
When X\bXm\bmN\bNe\bed\bdi\bit\bta\bab\bbl\ble\be is used on a widget it sets the
dropsite to X\bXm\bmD\bDR\bRO\bOP\bP_\b_S\bSI\bIT\bTE\bE_\b_A\bAC\bCT\bTI\bIV\bVE\bE.
X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\bt
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 X\bXm\bmN\bN-\b-
i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bt and (previous X\bXm\bmN\bNv\bva\bal\blu\bue\be - X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm)
when the slider moves to the end of the Scroll-
Bar with the minimum value, and the lesser of
X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\bt and (X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm- X\bXm\bmN\bNs\bsl\bli\bid\bde\ber\brS\bSi\biz\bze\be -
previous X\bXm\bmN\bNv\bva\bal\blu\bue\be) 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).
X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk
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
X\bXm\bmC\bCR\bR_\b_I\bIN\bNC\bCR\bRE\bEM\bME\bEN\bNT\bT.
X\bXm\bmN\bNi\bin\bni\bit\bti\bia\bal\blD\bDe\bel\bla\bay\by
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).
X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm
Specifies the slider's maximum value. X\bXm\bmN\bNm\bma\bax\bxi\bi-\b-
m\bmu\bum\bm must be greater than X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm.
X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm
Specifies the slider's minimum value. X\bXm\bmN\bNm\bma\bax\bxi\bi-\b-
m\bmu\bum\bm must be greater than X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm.
X\bXm\bmN\bNo\bor\bri\bie\ben\bnt\bta\bat\bti\bio\bon\bn
Specifies whether the ScrollBar is displayed
vertically or horizontally. This resource can
have values of X\bXm\bmV\bVE\bER\bRT\bTI\bIC\bCA\bAL\bL and X\bXm\bmH\bHO\bOR\bRI\bIZ\bZO\bON\bNT\bTA\bAL\bL.
X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk
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
X\bXm\bmC\bCR\bR_\b_P\bPA\bAG\bGE\bE_\b_D\bDE\bEC\bCR\bRE\bEM\bME\bEN\bNT\bT.
X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\bt
Specifies the amount by which the value
increases or decreases when the user takes an
action that moves the slider by one page incre-
ment. The actual change in value is the lesser
of X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\bt and (previous X\bXm\bmN\bNv\bva\bal\blu\bue\be -
X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm) when the slider moves to the end of
the ScrollBar with the minimum value, and the
lesser of X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\bt and (X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm-
X\bXm\bmN\bNs\bsl\bli\bid\bde\ber\brS\bSi\biz\bze\be - previous X\bXm\bmN\bNv\bva\bal\blu\bue\be) 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).
X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk
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
X\bXm\bmC\bCR\bR_\b_P\bPA\bAG\bGE\bE_\b_I\bIN\bNC\bCR\bRE\bEM\bME\bEN\bNT\bT.
X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn
Specifies whether the value for X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm
should be on the right or left side of X\bXm\bmN\bNm\bmi\bin\bni\bi-\b-
m\bmu\bum\bm for horizontal ScrollBars or above or below
X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm for vertical ScrollBars. This
resource can have values of X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP,\b,
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bTT\bTO\bOM\bM,\b, X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT, and
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT. If the ScrollBar is oriented
vertically, the default value is X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bT-\b-
T\bTO\bOM\bM. If the ScrollBar is oriented horizontally,
the default value depends on the X\bXm\bmN\bNl\bla\bay\byo\bou\but\btD\bDi\bir\bre\bec\bc-\b-
t\bti\bio\bon\bn resource of the widget.
X\bXm\bmN\bNr\bre\bep\bpe\bea\bat\btD\bDe\bel\bla\bay\by
Specifies the amount of time in milliseconds to
wait between subsequent slider movements after
the X\bXm\bmN\bNi\bin\bni\bit\bti\bia\bal\blD\bDe\bel\bla\bay\by has been processed. The
value of this resource must be greater than 0
(zero).
X\bXm\bmN\bNs\bsh\bho\bow\bwA\bAr\brr\bro\bow\bws\bs
Specifies whether the arrows are displayed and
how they are to be displayed. This resource can
take the following values:
X\bXm\bmE\bEA\bAC\bCH\bH_\b_S\bSI\bID\bDE\bE
Indicates that one arrow is displayed
on each end of the ScrollBar slider.
This corresponds to a value of True in
previous releases.
X\bXm\bmM\bMA\bAX\bX_\b_S\bSI\bID\bDE\bE
Indicates that both arrows are dis-
played on the X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm side of the
ScrollBar slider.
X\bXm\bmM\bMI\bIN\bN_\b_S\bSI\bID\bDE\bE
Indicates that both arrows are dis-
played on the X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm side of the
ScrollBar slider.
X\bXm\bmN\bNO\bON\bNE\bE Indicates that no arrows are dis-
played. This corresponds to a value of
False in previous releases.
X\bXm\bmE\bEA\bAC\bCH\bH_\b_S\bSI\bID\bDE\bE is the default value.
X\bXm\bmN\bNs\bsl\bli\bid\bde\ber\brM\bMa\bar\brk\bk
Specifies the shape the slider is to be dis-
played in. This resource can take the following
values:
X\bXm\bmE\bET\bTC\bCH\bHE\bED\bD_\b_L\bLI\bIN\bNE\bE
Specifies the slider as an etched
line.
X\bXm\bmN\bNO\bON\bNE\bE Specifies the slider as a foregrounded
rectangle. This is the default for a
regular slider.
X\bXm\bmR\bRO\bOU\bUN\bND\bD_\b_M\bMA\bAR\bRK\bK
Specifies the slider as a shadowed
circle. This is the default when the
slider is a thermometer.
X\bXm\bmT\bTH\bHU\bUM\bMB\bB_\b_M\bMA\bAR\bRK\bK
Specifies the slider as a series of
three etched lines centered in the
middle of the slider.
X\bXm\bmN\bNs\bsl\bli\bid\bdi\bin\bng\bgM\bMo\bod\bde\be
Specifies the mode the slider works in. There
are two possible modes:
X\bXm\bmS\bSL\bLI\bID\bDE\bER\bR Allows the slider to move freely
between the minimum and maximum ends
of the scale. This is the default
value.
X\bXm\bmT\bTH\bHE\bER\bRM\bMO\bOM\bME\bET\bTE\bER\bR
Forces the slider to be anchored to
one side of the trough area.
X\bXm\bmN\bNs\bsl\bli\bid\bde\ber\brS\bSi\biz\bze\be
Specifies the length of the slider between the
values of 1 and (X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm - X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm). The
value is constrained to be within these inclu-
sive bounds. The default value is (X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm -
X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm) divided by 10, with a minimum of 1.
X\bXm\bmN\bNs\bsl\bli\bid\bde\ber\brV\bVi\bis\bsu\bua\bal\bl
Specifies the color of the slider visual. This
resource can take the following values:
X\bXm\bmB\bBA\bAC\bCK\bKG\bGR\bRO\bOU\bUN\bND\bD_\b_C\bCO\bOL\bLO\bOR\bR
Specifies that the slider visual is in
the background color.
X\bXm\bmF\bFO\bOR\bRE\bEG\bGR\bRO\bOU\bUN\bND\bD_\b_C\bCO\bOL\bLO\bOR\bR
Specifies that the slider visual is in
the foreground color.
X\bXm\bmS\bSH\bHA\bAD\bDO\bOW\bWE\bED\bD_\b_B\bBA\bAC\bCK\bKG\bGR\bRO\bOU\bUN\bND\bD
Specifies that the slider visual is in
the background color, with a shadow.
This is the default for a regular
slider.
X\bXm\bmT\bTR\bRO\bOU\bUG\bGH\bH_\b_C\bCO\bOL\bLO\bOR\bR
Specifies that the slider visual is in
the trough color. This is the default
when the slider is a thermometer.
X\bXm\bmN\bNs\bsn\bna\bap\bpB\bBa\bac\bck\bkM\bMu\bul\blt\bti\bip\bpl\ble\be
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 mul-
tiples 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
d\bdr\bra\bag\bgC\bCa\bal\bll\blb\bba\bac\bck\bk 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.
X\bXm\bmN\bNt\bto\boB\bBo\bot\btt\bto\bom\bmC\bCa\bal\bll\blb\bba\bac\bck\bk
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 max-
imum value. The reason passed to the callback
is X\bXm\bmC\bCR\bR_\b_T\bTO\bO_\b_B\bBO\bOT\bTT\bTO\bOM\bM.
X\bXm\bmN\bNt\bto\boT\bTo\bop\bpC\bCa\bal\bll\blb\bba\bac\bck\bk
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 min-
imum value. The reason passed to the callback
is X\bXm\bmC\bCR\bR_\b_T\bTO\bO_\b_T\bTO\bOP\bP.
X\bXm\bmN\bNt\btr\bro\bou\bug\bgh\bhC\bCo\bol\blo\bor\br
Specifies the color of the slider trough. This
color defaults to the color used for selections.
X\bXm\bmN\bNv\bva\bal\blu\bue\be Specifies the slider's position, between X\bXm\bmN\bNm\bmi\bin\bn-\b-
i\bim\bmu\bum\bm and (X\bXm\bmN\bNm\bma\bax\bxi\bim\bmu\bum\bm - X\bXm\bmN\bNs\bsl\bli\bid\bde\ber\brS\bSi\biz\bze\be). The
value is constrained to be within these inclu-
sive bounds. The initial value of this resource
is the larger of 0 (zero) and X\bXm\bmN\bNm\bmi\bin\bni\bim\bmu\bum\bm.
X\bXm\bmN\bNv\bva\bal\blu\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk
Specifies the list of callbacks that is called
when the slider is released after being dragged.
These callbacks are also called in place of X\bXm\bmN\bN-\b-
i\bin\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk, X\bXm\bmN\bNd\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk, X\bXm\bmN\bN-\b-
p\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk, X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk,
X\bXm\bmN\bNt\bto\boT\bTo\bop\bpC\bCa\bal\bll\blb\bba\bac\bck\bk, or X\bXm\bmN\bNt\bto\boB\bBo\bot\btt\bto\bom\bmC\bCa\bal\bll\blb\bba\bac\bck\bk 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 X\bXm\bmC\bCR\bR_\b_V\bVA\bAL\bLU\bUE\bE_\b_C\bCH\bHA\bAN\bNG\bGE\bED\bD.
I\bIn\bnh\bhe\ber\bri\bit\bte\bed\bd R\bRe\bes\bso\bou\bur\brc\bce\bes\bs
ScrollBar inherits behavior and resources from the super-
classes described in the following tables. For a complete
description of each resource, refer to the reference page
for that superclass.
+---------------------------------------------------------------------------------------------------+
| | X\bXm\bmP\bPr\bri\bim\bmi\bit\bti\biv\bve\be|R\bRe\bes\bso\bou\bur\brc\bce\be S\bSe\bet\bt | | |
|N\bNa\bam\bme\be | C\bCl\bla\bas\bss\bs | T\bTy\byp\bpe\be | D\bDe\bef\bfa\bau\bul\blt\bt | A\bAc\bcc\bce\bes\bss\bs |
+------------------------+-----------------------+------------------+----------------------+--------+
|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 |
+------------------------+-----------------------+------------------+----------------------+--------+
+------------------------+-----------------------+------------------+----------------------+--------+
+---------------------------------------------------------------------------------------------------------------+
| | C\bCo\bor\bre\be R\bRe\bes\bso\bou\bur\brc\bce\be S\bSe\be|\bt\bt | | |
|N\bNa\bam\bme\be | C\bCl\bla\bas\bss\bs | T\bTy\byp\bpe\be | D\bDe\bef\bfa\bau\bul\blt\bt | A\bAc\bcc\bce\bes\bss\bs |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|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 |
+------------------------------+-------------------------------+----------------+----------------------+--------+
+------------------------------+-------------------------------+----------------+----------------------+--------+
C\bCa\bal\bll\blb\bba\bac\bck\bk I\bIn\bnf\bfo\bor\brm\bma\bat\bti\bio\bon\bn
A pointer to the following structure is passed to each
callback:
typedef struct
{
int _\br_\be_\ba_\bs_\bo_\bn;
XEvent _\b* _\be_\bv_\be_\bn_\bt;
int _\bv_\ba_\bl_\bu_\be;
int _\bp_\bi_\bx_\be_\bl;
} XmScrollBarCallbackStruct;
_\br_\be_\ba_\bs_\bo_\bn Indicates why the callback was invoked.
_\be_\bv_\be_\bn_\bt Points to the X\bXE\bEv\bve\ben\bnt\bt that triggered the call-
back.
_\bv_\ba_\bl_\bu_\be Contains the new slider location value.
_\bp_\bi_\bx_\be_\bl Is used only for X\bXm\bmN\bNt\bto\boT\bTo\bop\bpC\bCa\bal\bll\blb\bba\bac\bck\bk and X\bXm\bmN\bNt\bto\boB\bBo\bot\bt-\b-
t\bto\bom\bmC\bCa\bal\bll\blb\bba\bac\bck\bk. For horizontal ScrollBars, it con-
tains the _\bx coordinate of where the mouse button
selection occurred. For vertical ScrollBars, it
contains the _\by coordinate.
T\bTr\bra\ban\bns\bsl\bla\bat\bti\bio\bon\bns\bs
X\bXm\bmS\bSc\bcr\bro\bol\bll\blB\bBa\bar\br includes translations from Primitive. The
X\bXm\bmS\bSc\bcr\bro\bol\bll\blB\bBa\bar\br 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 pro-
vided under V\bVi\bir\brt\btu\bua\bal\blB\bBi\bin\bnd\bdi\bin\bng\bgs\bs(3). For a complete descrip-
tion of the format, please refer to the X Toolkit Instrin-
sics Documentation.
~\b~s\bs ~\b~c\bc ~\b~m\bm ~\b~a\ba <\b<B\bBt\btn\bn1\b1D\bDo\bow\bwn\bn>\b>:
Select()
~\b~s\bs ~\b~c\bc ~\b~m\bm ~\b~a\ba <\b<B\bBt\btn\bn1\b1U\bUp\bp>\b>:
Release()
~\b~s\bs ~\b~c\bc ~\b~m\bm ~\b~a\ba B\bBu\but\btt\bto\bon\bn1\b1<\b<P\bPt\btr\brM\bMo\bov\bve\bed\bd>\b>:
Moved()
~\b~s\bs ~\b~c\bc ~\b~m\bm ~\b~a\ba <\b<B\bBt\btn\bn2\b2D\bDo\bow\bwn\bn>\b>:
Select()
~\b~s\bs ~\b~c\bc ~\b~m\bm ~\b~a\ba <\b<B\bBt\btn\bn2\b2U\bUp\bp>\b>:
Release()
~\b~s\bs ~\b~c\bc ~\b~m\bm ~\b~a\ba B\bBu\but\btt\bto\bon\bn2\b2<\b<P\bPt\btr\brM\bMo\bov\bve\bed\bd>\b>:
Moved()
~\b~s\bs c\bc ~\b~m\bm ~\b~a\ba <\b<B\bBt\btn\bn1\b1D\bDo\bow\bwn\bn>\b>:
TopOrBottom()
~\b~s\bs c\bc ~\b~m\bm ~\b~a\ba <\b<B\bBt\btn\bn1\b1U\bUp\bp>\b>:
Release()
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfA\bAc\bct\bti\biv\bva\bat\bte\be>\b>:
PrimitiveParentActivate()
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfC\bCa\ban\bnc\bce\bel\bl>\b>:
CancelDrag()
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfB\bBe\beg\bgi\bin\bnL\bLi\bin\bne\be>\b>:
TopOrBottom()
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfE\bEn\bnd\bdL\bLi\bin\bne\be>\b>:
TopOrBottom()
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfP\bPa\bag\bge\beL\bLe\bef\bft\bt>\b>:
PageUpOrLeft(L\bLe\bef\bft\bt)
:\b:c\bc <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfP\bPa\bag\bge\beU\bUp\bp>\b>:
PageUpOrLeft(L\bLe\bef\bft\bt)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfP\bPa\bag\bge\beU\bUp\bp>\b>:
PageUpOrLeft(U\bUp\bp)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfP\bPa\bag\bge\beR\bRi\big\bgh\bht\bt>\b>:
PageDownOrRight(R\bRi\big\bgh\bht\bt)
:\b:c\bc <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfP\bPa\bag\bge\beD\bDo\bow\bwn\bn>\b>:
PageDownOrRight(R\bRi\big\bgh\bht\bt)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfP\bPa\bag\bge\beD\bDo\bow\bwn\bn>\b>:
PageDownOrRight(D\bDo\bow\bwn\bn)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfH\bHe\bel\blp\bp>\b>:
PrimitiveHelp()
:\b:c\bc <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfU\bUp\bp>\b>:
PageUpOrLeft(U\bUp\bp)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfU\bUp\bp>\b>:
IncrementUpOrLeft(U\bUp\bp)
:\b:c\bc <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfD\bDo\bow\bwn\bn>\b>:
PageDownOrRight(D\bDo\bow\bwn\bn)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfD\bDo\bow\bwn\bn>\b>:
IncrementDownOrRight(D\bDo\bow\bwn\bn)
:\b:c\bc <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfL\bLe\bef\bft\bt>\b>:
PageUpOrLeft(L\bLe\bef\bft\bt)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfL\bLe\bef\bft\bt>\b>:
IncrementUpOrLeft(L\bLe\bef\bft\bt)
:\b:c\bc <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfR\bRi\big\bgh\bht\bt>\b>:
PageDownOrRight(R\bRi\big\bgh\bht\bt)
:\b:<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfR\bRi\big\bgh\bht\bt>\b>:
IncrementDownOrRight(R\bRi\big\bgh\bht\bt)
~\b~s\bs ~\b~m\bm ~\b~a\ba <\b<K\bKe\bey\by>\b>R\bRe\bet\btu\bur\brn\bn:
PrimitiveParentActivate()
s\bs ~\b~m\bm ~\b~a\ba <\b<K\bKe\bey\by>\b>T\bTa\bab\bb:
PrimitivePrevTabGroup()
~\b~m\bm ~\b~a\ba <\b<K\bKe\bey\by>\b>T\bTa\bab\bb:
PrimitiveNextTabGroup()
A\bAc\bct\bti\bio\bon\bn R\bRo\bou\but\bti\bin\bne\bes\bs
The ScrollBar action routines are
CancelDrag():
If the key press occurs during scrolling, can-
cels 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(D\bDo\bow\bwn\bn|\b|R\bRi\big\bgh\bht\bt):
With an argument of D\bDo\bow\bwn\bn, or 0 (zero) for com-
patibility, moves the slider down by one incre-
ment. With an argument of R\bRi\big\bgh\bht\bt, or 1 for com-
patibility, it moves the slider right by one
increment. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bTT\bTO\bOM\bM, movement
toward the right or bottom calls the callbacks
for X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bi-\b-
r\bre\bec\bct\bti\bio\bon\bn is X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP, move-
ment toward the right or bottom calls the call-
backs for X\bXm\bmN\bNd\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. The X\bXm\bmN\bNv\bva\bal\bl-\b-
u\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk is called if the X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\bt-\b-
C\bCa\bal\bll\blb\bba\bac\bck\bk or X\bXm\bmN\bNd\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk is NULL.
IncrementUpOrLeft(U\bUp\bp|\b|L\bLe\bef\bft\bt):
With an argument of U\bUp\bp, or 0 (zero) for
compatibility, moves the slider up by one incre-
ment. With an argument of L\bLe\bef\bft\bt, or 1 for com-
patibility, it moves the slider left by one
increment. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bTT\bTO\bOM\bM, movement to
the left or top calls the callbacks for X\bXm\bmN\bN-\b-
d\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP, movement to the
left or top calls the callbacks for X\bXm\bmN\bNi\bin\bnc\bcr\bre\be-\b-
m\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. The X\bXm\bmN\bNv\bva\bal\blu\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk is
called if the X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk or X\bXm\bmN\bNd\bde\bec\bcr\bre\be-\b-
m\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk 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 call-
backs for X\bXm\bmN\bNd\bdr\bra\bag\bgC\bCa\bal\bll\blb\bba\bac\bck\bk.
PageDownOrRight(D\bDo\bow\bwn\bn|\b|R\bRi\big\bgh\bht\bt):
With an argument of D\bDo\bow\bwn\bn, or 0 (zero) for com-
patibility, moves the slider down by one page
increment. With an argument of R\bRi\big\bgh\bht\bt, or 1 for
compatibility, moves the slider right by one
page increment. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bTT\bTO\bOM\bM, movement
toward the right or bottom calls the callbacks
for X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bs-\b-
i\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP,
movement toward the right or bottom calls the
X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk callbacks. The X\bXm\bmN\bNv\bva\bal\bl-\b-
u\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk is called if the X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\be-\b-
m\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk or X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk is
NULL.
PageUpOrLeft(U\bUp\bp|\b|L\bLe\bef\bft\bt):
With an argument of U\bUp\bp, or 0 (zero) for compati-
bility, moves the slider up by one page incre-
ment. With an argument of L\bLe\bef\bft\bt, or 1 for com-
patibility, it moves the slider left by one page
increment. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bTT\bTO\bOM\bM, movement to
the left or top calls the callbacks for X\bXm\bmN\bN-\b-
p\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bc-\b-
t\bti\bio\bon\bn is X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP, movement
to the left or top calls the X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\bt-\b-
C\bCa\bal\bll\blb\bba\bac\bck\bk callbacks. The X\bXm\bmN\bNv\bva\bal\blu\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk
is called if the X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk or
X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk is NULL.
PrimitiveHelp():
Calls the callbacks for X\bXm\bmN\bNh\bhe\bel\blp\bpC\bCa\bal\bll\blb\bba\bac\bck\bk 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 X\bXm\bmN\bNv\bva\bal\blu\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk are called.
Select(): I\bIn\bn a\bar\brr\bro\bow\bw: Moves the slider by one increment in
the direction of the arrow. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bi-\b-
r\bre\bec\bct\bti\bio\bon\bn is X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bTT\bTO\bOM\bM,
movement toward the right or bottom calls the
callbacks for X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk, and movement
to the left or top calls the callbacks for X\bXm\bmN\bN-\b-
d\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP, movement toward
the right or bottom calls the callbacks for X\bXm\bmN\bN-\b-
d\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk, and movement to the left or
top calls the callbacks for X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\bl-\b-
b\bba\bac\bck\bk. The X\bXm\bmN\bNv\bva\bal\blu\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk is called if
the X\bXm\bmN\bNi\bin\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk or X\bXm\bmN\bNd\bde\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk
is NULL.
I\bIn\bn s\bsc\bcr\bro\bol\bll\bl r\bre\beg\bgi\bio\bon\bn b\bbe\bet\btw\bwe\bee\ben\bn a\ban\bn a\bar\brr\bro\bow\bw a\ban\bnd\bd t\bth\bhe\be
s\bsl\bli\bid\bde\ber\br: Moves the slider by one page increment
in the direction of the arrow. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bs-\b-
i\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bT-\b-
T\bTO\bOM\bM, movement toward the right or bottom calls
the callbacks for X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk, and
movement to the left or top calls the callbacks
for X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bs-\b-
i\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP,
movement toward the right or bottom calls the
callbacks for X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk, and
movement to the left or top calls the callbacks
for X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk. The X\bXm\bmN\bNv\bva\bal\bl-\b-
u\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk is called if the X\bXm\bmN\bNp\bpa\bag\bge\beI\bIn\bnc\bcr\bre\be-\b-
m\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk or X\bXm\bmN\bNp\bpa\bag\bge\beD\bDe\bec\bcr\bre\bem\bme\ben\bnt\btC\bCa\bal\bll\blb\bba\bac\bck\bk is
NULL.
I\bIn\bn s\bsl\bli\bid\bde\ber\br: Activates the interactive dragging of
the slider.
If the button is held down in either the arrows
or the scroll region longer than the X\bXm\bmN\bNi\bin\bni\bi-\b-
t\bti\bia\bal\blD\bDe\bel\bla\bay\by 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 X\bXm\bmN\bNr\bre\bep\bpe\bea\bat\btD\bDe\bel\bla\bay\by.
TopOrBottom():
<\b<C\bCt\btr\brl\bl>\b><\b<B\bBt\btn\bn1\b1D\bDo\bow\bwn\bn>\b> 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 X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_R\bRI\bIG\bGH\bHT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_B\bBO\bOT\bTT\bTO\bOM\bM, movement
toward the right or bottom calls the callbacks
for X\bXm\bmN\bNt\bto\boB\bBo\bot\btt\bto\bom\bmC\bCa\bal\bll\blb\bba\bac\bck\bk, and movement to the
left or top calls the callbacks for X\bXm\bmN\bNt\bto\boT\bTo\bop\bp-\b-
C\bCa\bal\bll\blb\bba\bac\bck\bk. If X\bXm\bmN\bNp\bpr\bro\boc\bce\bes\bss\bsi\bin\bng\bgD\bDi\bir\bre\bec\bct\bti\bio\bon\bn is
X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_L\bLE\bEF\bFT\bT or X\bXm\bmM\bMA\bAX\bX_\b_O\bON\bN_\b_T\bTO\bOP\bP, movement toward
the right or bottom calls the callbacks for X\bXm\bmN\bN-\b-
t\bto\boT\bTo\bop\bpC\bCa\bal\bll\blb\bba\bac\bck\bk, and movement to the left or top
calls the callbacks for X\bXm\bmN\bNt\bto\boB\bBo\bot\btt\bto\bom\bmC\bCa\bal\bll\blb\bba\bac\bck\bk.
The X\bXm\bmN\bNv\bva\bal\blu\bue\beC\bCh\bha\ban\bng\bge\bed\bdC\bCa\bal\bll\blb\bba\bac\bck\bk is called if the
X\bXm\bmN\bNt\bto\boT\bTo\bop\bpC\bCa\bal\bll\blb\bba\bac\bck\bk or X\bXm\bmN\bNt\bto\boB\bBo\bot\btt\bto\bom\bmC\bCa\bal\bll\blb\bba\bac\bck\bk is NULL.
Pressing <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfB\bBe\beg\bgi\bin\bnL\bLi\bin\bne\be>\b> or <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfB\bBe\beg\bgi\bin\bn-\b-
D\bDa\bat\bta\ba>\b> moves the slider to the minimum value and
invokes the X\bXm\bmN\bNt\bto\boT\bTo\bop\bpC\bCa\bal\bll\blb\bba\bac\bck\bk. Pressing
<\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfE\bEn\bnd\bdL\bLi\bin\bne\be>\b> or <\b<K\bKe\bey\by>\b><\b<o\bos\bsf\bfE\bEn\bnd\bdD\bDa\bat\bta\ba>\b> moves the
slider to the maximum value and invokes the X\bXm\bmN\bN-\b-
t\bto\boB\bBo\bot\btt\bto\bom\bmC\bCa\bal\bll\blb\bba\bac\bck\bk.
V\bVi\bir\brt\btu\bua\bal\bl B\bBi\bin\bnd\bdi\bin\bng\bgs\bs
The bindings for virtual keys are vendor specific. For
information about bindings for virtual buttons and keys,
see V\bVi\bir\brt\btu\bua\bal\blB\bBi\bin\bnd\bdi\bin\bng\bgs\bs(3).
R\bRE\bEL\bLA\bAT\bTE\bED\bD
C\bCo\bor\bre\be(3), X\bXm\bmC\bCr\bre\bea\bat\bte\beS\bSc\bcr\bro\bol\bll\blB\bBa\bar\br(3), X\bXm\bmP\bPr\bri\bim\bmi\bit\bti\biv\bve\be(3), X\bXm\bmS\bSc\bcr\bro\bol\bll\bl-\b-
B\bBa\bar\brG\bGe\bet\btV\bVa\bal\blu\bue\bes\bs(3), and X\bXm\bmS\bSc\bcr\bro\bol\bll\blB\bBa\bar\brS\bSe\bet\btV\bVa\bal\blu\bue\bes\bs(3).
XmScrollBar(3)
^ permalink raw reply [flat|nested] 16+ messages in thread