all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: gerd.moellmann@t-online.de (Gerd Moellmann)
Cc: emacs-devel@gnu.org
Subject: Re: scroll-bar-toolkit-scroll
Date: 31 Jul 2002 13:58:22 +0200	[thread overview]
Message-ID: <86d6t4glcx.fsf@gerd.free-bsd.org> (raw)
In-Reply-To: <200207310554.g6V5slG16493@aztec.santafe.edu>

[-- 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)

  reply	other threads:[~2002-07-31 11:58 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-29  1:12 scroll-bar-toolkit-scroll Richard Stallman
2002-07-29 10:51 ` scroll-bar-toolkit-scroll Gerd Moellmann
2002-07-30  0:59   ` scroll-bar-toolkit-scroll Richard Stallman
2002-07-30  9:12     ` scroll-bar-toolkit-scroll Gerd Moellmann
2002-07-31  5:54       ` scroll-bar-toolkit-scroll Richard Stallman
2002-07-31 11:58         ` Gerd Moellmann [this message]
2002-08-01 16:51           ` scroll-bar-toolkit-scroll Richard Stallman
2002-08-02 10:19             ` scroll-bar-toolkit-scroll Gerd Moellmann
2002-08-09  7:07             ` scroll-bar-toolkit-scroll Stefan Monnier
2002-08-09  7:12           ` scroll-bar-toolkit-scroll Stefan Monnier
2002-08-12 17:07             ` scroll-bar-toolkit-scroll Richard Stallman
2002-08-12 17:14               ` scroll-bar-toolkit-scroll Stefan Monnier
2002-08-13 22:46                 ` scroll-bar-toolkit-scroll Richard Stallman
2002-08-14 22:25                   ` scroll-bar-toolkit-scroll Stefan Monnier
2002-08-15 19:54                     ` scroll-bar-toolkit-scroll Richard Stallman
2002-08-16 16:10                       ` scroll-bar-toolkit-scroll Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86d6t4glcx.fsf@gerd.free-bsd.org \
    --to=gerd.moellmann@t-online.de \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.