


XmList(3X)							   XmList(3X)
OSF/Motif							    OSF/Motif



NAME
  XXmmLLiisstt - The List widget class

SYNOPSIS


  ##iinncclluuddee <<XXmm//LLiisstt..hh>>

DESCRIPTION
  List allows a	user to	select one or more items from a	group of choices.
  Items	are selected from the list in a	variety	of ways, using both the
  pointer and the keyboard.  List operates on an array of compound strings
  that are defined by the application.	Each compound string becomes an	item
  in the List, with the	first compound string becoming the item	in position
  1, the second	becoming the item in position 2, and so	on.

  The size of the List is set by specifying the	number of items	that are
  visible.  If the number of visible items is not specified, the height	of
  the list controls the	number of visible items.  Each item assumes the
  height of the	tallest	element	in the list.  To create	a list that allows
  the user to scroll easily through a large number of items, use the
  XXmmCCrreeaatteeSSccrroolllleeddLLiisstt convenience function.

  To select items, move	the pointer or cursor to the desired item and press
  the BBSSeelleecctt mouse button or the key defined as KKSSeelleecctt.  There are several
  styles of selection behavior,	and they all highlight the selected item or
  items	by displaying them in inverse colors.  An appropriate callback is
  invoked to notify the	application of the user's choice.  The application
  then takes whatever action is	required for the specified selection.  When a
  List is insensitive, all of the list items are displayed in a	stippled fill
  pattern.

  Selection

  Each list has	one of four selection models:

    oo++  Single Select

    oo++  Browse Select

    oo++  Multiple	Select

    oo++  Extended	Select

  In Single Select and Browse Select, at most one item is selected at a	time.
  In Single Select, pressing BBSSeelleecctt on	an item	toggles	its selection state
  and deselects	any other selected item.  In Browse Select, pressing BBSSeelleecctt
  on an	item selects it	and deselects any other	selected item; dragging
  BBSSeelleecctt moves	the selection as the pointer is	moved.	Releasing BBSSeelleecctt on
  an item moves	the location cursor to that item.


  In Multiple Select, any number of items can be selected at a time.  Press-
  ing BBSSeelleecctt on an item toggles its selection state but does not deselect
  any other selected items.

  In Extended Select, any number of items can be selected at a time, and the
  user can easily select ranges	of items.  Pressing BBSSeelleecctt on an item
  selects it and deselects any other selected item.  Dragging BBSSeelleecctt or
  pressing or dragging BBEExxtteenndd following a BBSSeelleecctt action selects all items
  between the item under the pointer and the item on which BBSSeelleecctt was
  pressed.  This action	also deselects any other selected items	outside	that
  range.

  Extended Select also allows the user to select and deselect discontiguous
  ranges of items.  Pressing BBTTooggggllee on	an item	toggles	its selection state
  but does not deselect	any other selected items.  Dragging BBTTooggggllee or press-
  ing or dragging BBEExxtteenndd following a BBTTooggggllee action sets the selection	state
  of all items between the item	under the pointer and the item on which	BBTToogg--
  ggllee was pressed to the state of the item on which BBTTooggggllee was	pressed.
  This action does not deselect	any other selected items outside that range.

  All selection	operations available from the mouse are	also available from
  the keyboard.	 List has two keyboard selection modes,	Normal Mode and	Add
  Mode.	 In Normal Mode, navigation operations and KKSSeelleecctt select the item at
  the location cursor and deselect any other selected items.  In Add Mode,
  navigation operations	have no	effect on selection, and KKSSeelleecctt toggles the
  selection state of the item at the location cursor without deselecting any
  other	selected items,	except in Single Select.

  Single and Multiple Select use Add Mode, and Browse Select uses Normal
  Mode.

  Extended Select can use either mode; the user	changes	modes by pressing
  KKAAddddMMooddee.  In	Extended Select	Normal Mode, pressing KKSSeelleecctt has the same
  effect as pressing BBSSeelleecctt; KKEExxtteenndd and shifted navigation have the same
  effect as pressing BBEExxtteenndd following a BBSSeelleecctt action.  In Extended Select
  Add Mode, pressing KKSSeelleecctt has the same effect as pressing BBTTooggggllee; KKEExxtteenndd
  and shifted navigation have the same effect as pressing BBEExxtteenndd following a
  BBTTooggggllee action.

  Normal Mode is indicated by a	solid location cursor, and Add Mode is indi-
  cated	by a dashed location cursor.

  Classes

  List inherits	behavior and resources from CCoorree and XXmmPPrriimmiittiivvee classes.

  The class pointer is xxmmLLiissttWWiiddggeettCCllaassss.

  The class name is XXmmLLiisstt.

  New Resources

  The following	table defines a	set of widget resources	used by	the program-
  mer to specify data.	The programmer can also	set the	resource values	for
  the inherited	classes	to set attributes for this widget.  To reference a
  resource by name or by class in a .Xdefaults file, remove the	XXmmNN or XXmmCC
  prefix and use the remaining letters.	 To specify one	of the defined values
  for a	resource in a .Xdefaults file, remove the XXmm prefix and	use the
  remaining letters (in	either lowercase or uppercase, but include any under-
  scores between words).  The codes in the access column indicate if the
  given	resource can be	set at creation	time (C), set by using XXttSSeettVVaalluueess
  (S), retrieved by using XXttGGeettVVaalluueess (G), or is not applicable	(N/A).

			      XXmmLLiisstt RReessoouurrccee SSeett
      ___________________________________________________________________
      NNaammee				DDeeffaauulltt			   AAcccceessss
	    CCllaassss			      TTyyppee
      ___________________________________________________________________
      ___________________________________________________________________
      XmNautomaticSelection		False			   CSG
	    XmCAutomaticSelection	       Boolean
      ___________________________________________________________________
      XmNbrowseSelectionCallback	NULL			   C
	    XmCCallback			       XtCallbackList
      ___________________________________________________________________
      XmNdefaultActionCallback		NULL			   C
	    XmCCallback			       XtCallbackList
      ___________________________________________________________________
      XmNdoubleClickInterval		dynamic			   CSG
	    XmCDoubleClickInterval	       int
      ___________________________________________________________________
      XmNextendedSelectionCallback	NULL			   C
	    XmCCallback			       XtCallbackList
      ___________________________________________________________________
      XmNfontList			dynamic			   CSG
	    XmCFontList			       XmFontList
      ___________________________________________________________________
      XmNitemCount			0			   CSG
	    XmCItemCount		       int
      ___________________________________________________________________
      XmNitems				NULL			   CSG
	    XmCItems			       XmStringTable
      ___________________________________________________________________
      XmNlistMarginHeight		0			   CSG
	    XmCListMarginHeight		       Dimension
      ___________________________________________________________________
      XmNlistMarginWidth		0			   CSG
	    XmCListMarginWidth		       Dimension
      ___________________________________________________________________
      XmNlistSizePolicy			XmVARIABLE		   CG
	    XmCListSizePolicy		       unsigned	char
      ___________________________________________________________________
      XmNlistSpacing			0			   CSG
	    XmCListSpacing		       Dimension
      ___________________________________________________________________
      XmNmultipleSelectionCallback	NULL			   C
	    XmCCallback			       XtCallbackList
      ___________________________________________________________________
      XmNscrollBarDisplayPolicy		XmAS_NEEDED		   CSG
	    XmCScrollBarDisplayPolicy	       unsigned	char
      ___________________________________________________________________
      XmNselectedItemCount		0			   CSG
	    XmCSelectedItemCount	       int
      ___________________________________________________________________
      XmNselectedItems			NULL			   CSG
	    XmCSelectedItems		       XmStringTable
      ___________________________________________________________________
      XmNselectionPolicy		XmBROWSE_SELECT		   CSG
	    XmCSelectionPolicy		       unsigned	char
      ___________________________________________________________________
      XmNsingleSelectionCallback	NULL			   C
	    XmCCallback			       XtCallbackList
      ___________________________________________________________________
      XmNstringDirection		dynamic			   CSG
	    XmCStringDirection		       XmStringDirection
      ___________________________________________________________________
      XmNtopItemPosition		1			   CSG
	    XmCTopItemPosition		       int
      ___________________________________________________________________
      XmNvisibleItemCount		dynamic			   CSG
	    XmCVisibleItemCount		       int
      ___________________________________________________________________

  XXmmNNaauuttoommaattiiccSSeelleeccttiioonn
	    Invokes XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk or XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallll--
	    bbaacckk when BSelect is pressed and the items that are	shown as
	    selected change if the value is True and the selection mode	is
	    either XXmmBBRROOWWSSEE__SSEELLEECCTT or XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT	respectively.  If
	    False, no selection	callbacks are invoked until the	user releases
	    the	mouse button.  See the Behavior	section	for further details
	    on the interaction of this resource	with the selection modes.

  XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk
	    Specifies a	list of	callbacks that is called when an item is
	    selected in	the browse selection mode.  The	reason is
	    XXmmCCRR__BBRROOWWSSEE__SSEELLEECCTT.

  XXmmNNddeeffaauullttAAccttiioonnCCaallllbbaacckk
	    Specifies a	list of	callbacks that is called when an item is dou-
	    ble	clicked	or KKAAccttiivvaattee is	pressed.  The reason is
	    XXmmCCRR__DDEEFFAAUULLTT__AACCTTIIOONN.

  XXmmNNddoouubblleeCClliicckkIInntteerrvvaall
	    If a button	click is followed by another button click within the
	    time span specified	by this	resource (in milliseconds), the	but-
	    ton	clicks are considered a	double-click action, rather than two
	    single-click actions.  The value must not be negative.  The
	    default value is the display's multi-click time.

  XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk
	    Specifies a	list of	callbacks that is called when items are
	    selected using the extended	selection mode.	 The reason is
	    XXmmCCRR__EEXXTTEENNDDEEDD__SSEELLEECCTT.

  XXmmNNffoonnttLLiisstt
	    Specifies the font list associated with the	list items.  This is
	    used in conjunction	with the XXmmNNvviissiibblleeIItteemmCCoouunntt resource to
	    determine the height of the	List widget.  If this value is NULL
	    at initialization, the font	list is	initialized by looking up the
	    parent hierarchy of	the widget for an ancestor that	is a subclass
	    of the XmBulletinBoard or VendorShell widget class.	 If such an
	    ancestor is	found, the font	list is	initialized to the
	    XXmmNNtteexxttFFoonnttLLiisstt of the ancestor widget.  If	no such	ancestor is
	    found, the default is implementation dependent.  Refer to
	    XXmmFFoonnttLLiisstt((33XX)) for more information	on a font list structure.

  XXmmNNiitteemmCCoouunntt
	    Specifies the total	number of items.  The value must be the
	    number of items in XXmmNNiitteemmss	and must not be	negative.  It is
	    automatically updated by the list whenever an item is added	to or
	    deleted from the list.

  XXmmNNiitteemmss  Points to an array of compound strings that	are to be displayed
	    as the list	items.	Refer to XXmmSSttrriinngg((33XX)) for more information on
	    the	creation and structure of compound strings.  XXttGGeettVVaalluueess for
	    this resource returns the list items themselves, not a copy	of
	    the	list items.  The application must not free the returned
	    items.

  XXmmNNlliissttMMaarrggiinnHHeeiigghhtt
	    Specifies the height of the	margin between the list	border and
	    the	items.







  XXmmNNlliissttMMaarrggiinnWWiiddtthh
	    Specifies the width	of the margin between the list border and the
	    items.



  XXmmNNlliissttSSiizzeePPoolliiccyy
	    Controls the reaction of the List when an item grows horizontally
	    beyond the current size of the list	work area.  If the value is
	    XXmmCCOONNSSTTAANNTT,	the list viewing area does not grow, and a horizontal
	    ScrollBar is added for a ScrolledList.  If this resource is	set
	    to XXmmVVAARRIIAABBLLEE, the List grows to match the size of the longest
	    item, and no horizontal ScrollBar appears.

	    When the value of this resource is XXmmRREESSIIZZEE__IIFF__PPOOSSSSIIBBLLEE, the List
	    attempts to	grow or	shrink to match	the width of the widest	item.
	    If it cannot grow to match the widest size,	a horizontal
	    ScrollBar is added for a ScrolledList if the longest item is
	    wider than the list	viewing	area.

	    The	size policy must be set	at the time the	List widget is
	    created.  It cannot	be changed at a	later time through XXttSSeett--
	    VVaalluueess.

  XXmmNNlliissttSSppaacciinngg
	    Specifies the spacing between list items.  This spacing increases
	    by the value of the	XXmmNNhhiigghhlliigghhttTThhiicckknneessss resource in Primitive.

  XXmmNNmmuullttiipplleeSSeelleeccttiioonnCCaallllbbaacckk
	    Specifies a	list of	callbacks that is called when an item is
	    selected in	multiple selection mode. The reason is
	    XXmmCCRR__MMUULLTTIIPPLLEE__SSEELLEECCTT.

  XXmmNNssccrroollllBBaarrDDiissppllaayyPPoolliiccyy
	    Controls the display of vertical ScrollBars	in a ScrolledList.
	    When the value of this resource is XXmmAASS__NNEEEEDDEEDD, a vertical
	    ScrollBar is displayed only	when the number	of items in the	List
	    exceeds the	number of Visible items.  When the value is XXmmSSTTAATTIICC,
	    a vertical ScrollBar is always displayed.

  XXmmNNsseelleecctteeddIItteemmCCoouunntt
	    Specifies the number of strings in the selected items list.	 The
	    value must be the number of	items in XXmmNNsseelleecctteeddIItteemmss and must
	    not	be negative.

  XXmmNNsseelleecctteeddIItteemmss
	    Points to an array of compound strings that	represents the list
	    items that are currently selected, either by the user or by	the
	    application.  XXttGGeettVVaalluueess for this resource	returns	the list
	    items themselves, not a copy of the	list items.  The application
	    must not free the returned items.

	    Setting XXmmNNsseelleecctteeddIItteemmss selects those list	items that exactly
	    match items	in the given XXmmNNsseelleecctteeddIItteemmss list.  There may be
	    additional items in	XXmmNNsseelleecctteeddIItteemmss that do not match items in
	    the	list.  These items remain until	XXmmNNsseelleecctteeddIItteemmss is updated.
	    If XXmmNNiitteemmss	is changed such	that the list now contains items
	    matching previously	unmatched items	in XXmmNNsseelleecctteeddIItteemmss, those
	    new	items will also	appear selected.

	    Any	user interaction with the list that causes at least one	item
	    to be selected or deselected and any call to XXmmLLiissttDDeesseelleeccttAAllllII--
	    tteemmss, XXmmLLiissttDDeesseelleeccttAAllllIItteemmss, XXmmLLiissttDDeesseelleeccttPPooss, XXmmLLiissttSSeelleecc--
	    ttIItteemm, XXmmLLiissttSSeelleeccttPPooss, or XXmmLLiissttUUppddaatteeSSeelleecctteeddLLiisstt	cause
	    XXmmNNsseelleecctteeddIItteemmss to	be updated immediately to exactly reflect the
	    visual state of the	list.  Calls to	any other XXmmLLiisstt functions do
	    not	affect XXmmNNsseelleecctteeddIItteemmss.

  XXmmNNsseelleeccttiioonnPPoolliiccyy
	    Defines the	interpretation of the selection	action.	 This can be
	    one	of the following:

	      oo++
	      XXmmSSIINNGGLLEE__SSEELLEECCTT-allows only single selections

	      oo++
	      XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT-allows multiple	selections

	      oo++
	      XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT-allows extended	selections

	      oo++
	      XXmmBBRROOWWSSEE__SSEELLEECCTT"-allows "drag and	browse"	functionality

  XXmmNNssiinngglleeSSeelleeccttiioonnCCaallllbbaacckk
	    Specifies a	list of	callbacks that is called when an item is
	    selected in	single selection mode. The reason is
	    XXmmCCRR__SSIINNGGLLEE__SSEELLEECCTT.

  XXmmNNssttrriinnggDDiirreeccttiioonn
	    Specifies the initial direction to draw the	string.	 The values
	    are	XXmmSSTTRRIINNGG__DDIIRREECCTTIIOONN__LL__TTOO__RR and XXmmSSTTRRIINNGG__DDIIRREECCTTIIOONN__RR__TTOO__LL.  The
	    value of this resource is determined at creation time.  If the
	    widget's parent is a manager, this value is	inherited from the
	    widget's parent, otherwise it is set to
	    XXmmSSTTRRIINNGG__DDIIRREECCTTIIOONN__LL__TTOO__RR.

  XXmmNNttooppIItteemmPPoossiittiioonn
	    Specifies the position of the item that is the first visible item
	    in the list.  Setting this resource	is equivalent to calling the
	    XXmmLLiissttSSeettPPooss function.  The	position of the	first item in the
	    list is 1; the position of the second item is 2; and so on.	 A
	    position of	0 specifies the	last item in the list.	The value
	    must not be	negative.

  XXmmNNvviissiibblleeIItteemmCCoouunntt
	    Specifies the number of items that can fit in the visible space
	    of the list	work area.  The	List uses this value to	determine its
	    height.  The value must be greater than 0.

  Inherited Resources

  List inherits	behavior and resources from the	following superclasses.	 For
  a complete description of each resource, refer to the	man page for that
  superclass.

			   XXmmPPrriimmiittiivvee RReessoouurrccee	SSeett
	______________________________________________________________
	NNaammee			      DDeeffaauulltt			AAcccceessss
	      CCllaassss			    TTyyppee
	______________________________________________________________
	______________________________________________________________
	XmNbottomShadowColor	      dynamic			CSG
	      XmCBottomShadowColor	     Pixel
	______________________________________________________________
	XmNbottomShadowPixmap	      XmUNSPECIFIED_PIXMAP	CSG
	      XmCBottomShadowPixmap	     Pixmap
	______________________________________________________________
	XmNforeground		      dynamic			CSG
	      XmCForeground		     Pixel
	______________________________________________________________
	XmNhelpCallback		      NULL			C
	      XmCCallback		     XtCallbackList
	______________________________________________________________
	XmNhighlightColor	      dynamic			CSG
	      XmCHighlightColor		     Pixel
	______________________________________________________________
	XmNhighlightOnEnter	      False			CSG
	      XmCHighlightOnEnter	     Boolean
	______________________________________________________________
	XmNhighlightPixmap	      dynamic			CSG
	      XmCHighlightPixmap	     Pixmap
	______________________________________________________________
	XmNhighlightThickness	      2				CSG
	      XmCHighlightThickness	     Dimension
	______________________________________________________________
	XmNnavigationType	      XmTAB_GROUP		CSG
	      XmCNavigationType		     XmNavigationType
	______________________________________________________________
	XmNshadowThickness	      2				CSG
	      XmCShadowThickness	     Dimension
	______________________________________________________________
	XmNtopShadowColor	      dynamic			CSG
	      XmCTopShadowColor		     Pixel
	______________________________________________________________
	XmNtopShadowPixmap	      dynamic			CSG
	      XmCTopShadowPixmap	     Pixmap
	______________________________________________________________
	XmNtraversalOn		      True			CSG
	      XmCTraversalOn		     Boolean
	______________________________________________________________
	XmNunitType		      dynamic			CSG
	      XmCUnitType		     unsigned char
	______________________________________________________________
	XmNuserData		      NULL			CSG
	      XmCUserData		     XtPointer
	______________________________________________________________

			      CCoorree RReessoouurrccee SSeett
     ____________________________________________________________________
     NNaammee				   DDeeffaauulltt		   AAcccceessss
	   CCllaassss				 TTyyppee
     ____________________________________________________________________
     ____________________________________________________________________
     XmNaccelerators			   dynamic		   CSG
	   XmCAccelerators			  XtAccelerators
     ____________________________________________________________________
     XmNancestorSensitive		   dynamic		   G
	   XmCSensitive				  Boolean
     ____________________________________________________________________
     XmNbackground			   dynamic		   CSG
	   XmCBackground			  Pixel
     ____________________________________________________________________
     XmNbackgroundPixmap		   XmUNSPECIFIED_PIXMAP	   CSG
	   XmCPixmap				  Pixmap
     ____________________________________________________________________
     XmNborderColor			   XtDefaultForeground	   CSG
	   XmCBorderColor			  Pixel
     ____________________________________________________________________
     XmNborderPixmap			   XmUNSPECIFIED_PIXMAP	   CSG
	   XmCPixmap				  Pixmap
     ____________________________________________________________________
     XmNborderWidth			   0			   CSG
	   XmCBorderWidth			  Dimension
     ____________________________________________________________________
     XmNcolormap			   dynamic		   CG
	   XmCColormap				  Colormap
     ____________________________________________________________________
     XmNdepth				   dynamic		   CG
	   XmCDepth				  int
     ____________________________________________________________________
     XmNdestroyCallback			   NULL			   C
	   XmCCallback				  XtCallbackList
     ____________________________________________________________________
     XmNheight				   dynamic		   CSG
	   XmCHeight				  Dimension
     ____________________________________________________________________
     XmNinitialResourcesPersistent	   True			   C
	   XmCInitialResourcesPersistent	  Boolean
     ____________________________________________________________________
     XmNmappedWhenManaged		   True			   CSG
	   XmCMappedWhenManaged			  Boolean
     ____________________________________________________________________
     XmNscreen				   dynamic		   CG
	   XmCScreen				  Screen *
     ____________________________________________________________________
     XmNsensitive			   True			   CSG
	   XmCSensitive				  Boolean
     ____________________________________________________________________
     XmNtranslations			   dynamic		   CSG
	   XmCTranslations			  XtTranslations
     ____________________________________________________________________
     XmNwidth				   dynamic		   CSG
	   XmCWidth				  Dimension
     ____________________________________________________________________
     XmNx				   0			   CSG
	   XmCPosition				  Position
     ____________________________________________________________________
     XmNy				   0			   CSG
	   XmCPosition				  Position
     ____________________________________________________________________

  Callback Information

  List defines a new callback structure.  The application must first look at
  the reason field and use only	the structure members that are valid for that
  particular reason, because not all fields are	relevant for every possible
  reason.  The callback	structure is defined as	follows:


  ttyyppeeddeeff ssttrruucctt
  {{
    iinntt		 _r_e_a_s_o_n;;
    XXEEvveenntt	 **_e_v_e_n_t;;
    XXmmSSttrriinngg	 _i_t_e_m;;
    iinntt		 _i_t_e_m__l_e_n_g_t_h;;
    iinntt		 _i_t_e_m__p_o_s_i_t_i_o_n;;
    XXmmSSttrriinngg	 **_s_e_l_e_c_t_e_d__i_t_e_m_s;;
    iinntt		 _s_e_l_e_c_t_e_d__i_t_e_m__c_o_u_n_t;;
    iinntt		 **_s_e_l_e_c_t_e_d__i_t_e_m__p_o_s_i_t_i_o_n_s;;
    cchhaarr	 _s_e_l_e_c_t_i_o_n__t_y_p_e;;
  }} XXmmLLiissttCCaallllbbaacckkSSttrruucctt;;

  _r_e_a_s_o_n       Indicates why the callback was invoked.

  _e_v_e_n_t	       Points to the XXEEvveenntt that triggered the callback.  It can be
	       NULL.

  _i_t_e_m	       Is the last item	selected at the	time of	the _e_v_e_n_t that caused
	       the callback.  _i_t_e_m points to a temporary storage space that
	       is reused after the callback is finished.  Therefore, if	an
	       application needs to save the item, it should copy the item
	       into its	own data space.

  _i_t_e_m__l_e_n_g_t_h  Is the length in	bytes of _i_t_e_m.

  _i_t_e_m__p_o_s_i_t_i_o_nIs the position of _i_t_e_m in the List's XXmmNNiitteemmss array.

  _s_e_l_e_c_t_e_d__i_t_e_m_s
	       Is a list of items selected at the time of the _e_v_e_n_t that
	       caused the callback.  _s_e_l_e_c_t_e_d__i_t_e_m_s points to a	temporary
	       storage space that is reused after the callback is finished.
	       Therefore, if an	application needs to save the selected list,
	       it should copy the list into its	own data space.

  _s_e_l_e_c_t_e_d__i_t_e_m__c_o_u_n_t
	       Is the number of	items in the _s_e_l_e_c_t_e_d__i_t_e_m_s list.  This
	       number must be non-negative.

  _s_e_l_e_c_t_e_d__i_t_e_m__p_o_s_i_t_i_o_n_s
	       Is an array of integers,	one for	each selected item,
	       representing the	position of each selected item in the List's
	       XXmmNNiitteemmss	array.	_s_e_l_e_c_t_e_d__i_t_e_m__p_o_s_i_t_i_o_n_s	points to a temporary
	       storage space that is reused after the callback is finished.
	       Therefore, if an	application needs to save this array, it
	       should copy the array into its own data space.

  _s_e_l_e_c_t_i_o_n__t_y_p_e
	       Indicates that the most recent extended selection was the ini-
	       tial selection (XXmmIINNIITTIIAALL), a modification of an	existing
	       selection (XXmmMMOODDIIFFIICCAATTIIOONN), or an additional noncontiguous
	       selection (XXmmAADDDDIITTIIOONN).

  The following	table describes	the reasons for	which the individual callback
  structure fields are valid:

	   RReeaassoonn			    VVaalliidd FFiieellddss
    ____________________________________________________________________________________________________________________________________________
    XXmmCCRR__SSIINNGGLLEE__SSEELLEECCTT	   _r_e_a_s_o_n, _e_v_e_n_t, _i_t_e_m,	_i_t_e_m__l_e_n_g_t_h, _i_t_e_m__p_o_s_i_t_i_o_n
    ______________________________________________________________________
    XXmmCCRR__DDEEFFAAUULLTT__AACCTTIIOONN

			   _r_e_a_s_o_n, _e_v_e_n_t, _i_t_e_m,	_i_t_e_m__l_e_n_g_t_h,
			   _i_t_e_m__p_o_s_i_t_i_o_n, _s_e_l_e_c_t_e_d__i_t_e_m_s,
			   _s_e_l_e_c_t_e_d__i_t_e_m__c_o_u_n_t,	_s_e_l_e_c_t_e_d__i_t_e_m__p_o_s_i_t_i_o_n_s
    ______________________________________________________________________
    ______________________________________________________________________
    XXmmCCRR__BBRROOWWSSEE__SSEELLEECCTT	   _r_e_a_s_o_n, _e_v_e_n_t, _i_t_e_m,	_i_t_e_m__l_e_n_g_t_h, _i_t_e_m__p_o_s_i_t_i_o_n
    ______________________________________________________________________
    XXmmCCRR__MMUULLTTIIPPLLEE__SSEELLEECCTT

			   _r_e_a_s_o_n, _e_v_e_n_t, _i_t_e_m,	_i_t_e_m__l_e_n_g_t_h,
			   _i_t_e_m__p_o_s_i_t_i_o_n, _s_e_l_e_c_t_e_d__i_t_e_m_s,
			   _s_e_l_e_c_t_e_d__i_t_e_m__c_o_u_n_t,	_s_e_l_e_c_t_e_d__i_t_e_m__p_o_s_i_t_i_o_n_s
    ______________________________________________________________________
    XXmmCCRR__EEXXTTEENNDDEEDD__SSEELLEECCTT

			   _r_e_a_s_o_n, _e_v_e_n_t, _i_t_e_m,	_i_t_e_m__l_e_n_g_t_h,
			   _i_t_e_m__p_o_s_i_t_i_o_n, _s_e_l_e_c_t_e_d__i_t_e_m_s,
			   _s_e_l_e_c_t_e_d__i_t_e_m__c_o_u_n_t,	_s_e_l_e_c_t_e_d__i_t_e_m__p_o_s_i_t_i_o_n_s,
			   _s_e_l_e_c_t_i_o_n__t_y_p_e

  Translations

  XmList includes translations from Primitive.	The XmList translations	are
  listed below.	 These translations may	not directly correspond	to a transla-
  tion table.

       BBSSeelleecctt PPrreessss:: LLiissttBBeeggiinnSSeelleecctt(())
       BBSSeelleecctt MMoottiioonn::LLiissttBBuuttttoonnMMoottiioonn(())
       BBSSeelleecctt RReelleeaassee::LLiissttEEnnddSSeelleecctt(())
       BBEExxtteenndd PPrreessss:: LLiissttBBeeggiinnEExxtteenndd(())
       BBEExxtteenndd MMoottiioonn::LLiissttBBuuttttoonnMMoottiioonn(())
       BBEExxtteenndd RReelleeaassee::LLiissttEEnnddEExxtteenndd(())
       BBTTooggggllee PPrreessss:: LLiissttBBeeggiinnTTooggggllee(())
       BBTTooggggllee MMoottiioonn::LLiissttBBuuttttoonnMMoottiioonn(())
       BBTTooggggllee RReelleeaassee::LLiissttEEnnddTTooggggllee(())
       BBDDrraagg PPrreessss::   LLiissttPPrroocceessssDDrraagg(())



       KKUUpp::	      LLiissttPPrreevvIItteemm(())
       MMSShhiifftt KKUUpp::    LLiissttEExxtteennddPPrreevvIItteemm(())
       KKDDoowwnn::	      LLiissttNNeexxttIItteemm(())
       MMSShhiifftt KKDDoowwnn::  LLiissttEExxtteennddNNeexxttIItteemm(())
       KKLLeefftt::	      LLiissttLLeeffttCChhaarr(())
       MMCCttrrll KKLLeefftt::   LLiissttLLeeffttPPaaggee(())
       KKRRiigghhtt::	      LLiissttRRiigghhttCChhaarr(())
       MMCCttrrll KKRRiigghhtt::  LLiissttRRiigghhttPPaaggee(())
       KKPPaaggeeUUpp::	      LLiissttPPrreevvPPaaggee(())
       KKPPaaggeeDDoowwnn::     LLiissttNNeexxttPPaaggee(())
       KKPPaaggeeLLeefftt::     LLiissttLLeeffttPPaaggee(())
       KKPPaaggeeRRiigghhtt::    LLiissttRRiigghhttPPaaggee(())
       KKBBeeggiinnLLiinnee::    LLiissttBBeeggiinnLLiinnee(())
       KKEEnnddLLiinnee::      LLiissttEEnnddLLiinnee(())
       KKBBeeggiinnDDaattaa::    LLiissttBBeeggiinnDDaattaa(())
       MMSShhiifftt KKBBeeggiinnDDaattaa::LLiissttBBeeggiinnDDaattaaEExxtteenndd(())
       KKEEnnddDDaattaa::      LLiissttEEnnddDDaattaa(())
       MMSShhiifftt KKEEnnddDDaattaa::LLiissttEEnnddDDaattaaEExxtteenndd(())
       KKAAddddMMooddee::      LLiissttAAddddMMooddee(())
       KKAAccttiivvaattee::     LLiissttKKbbddAAccttiivvaattee(())
       KKCCooppyy PPrreessss::   LLiissttCCooppyyTTooCClliippbbooaarrdd(())
       KKSSeelleecctt PPrreessss:: LLiissttKKbbddBBeeggiinnSSeelleecctt(())
       KKSSeelleecctt RReelleeaassee::LLiissttKKbbddEEnnddSSeelleecctt(())
       KKEExxtteenndd PPrreessss:: LLiissttKKbbddBBeeggiinnEExxtteenndd(())
       KKEExxtteenndd RReelleeaassee::LLiissttKKbbddEEnnddEExxtteenndd(())
       MMAAnnyy KKCCaanncceell::  LLiissttKKbbddCCaanncceell(())
       KKSSeelleeccttAAllll::    LLiissttKKbbddSSeelleeccttAAllll(())
       KKDDeesseelleeccttAAllll::  LLiissttKKbbddDDeeSSeelleeccttAAllll(())
       KKHHeellpp::	      PPrriimmiittiivveeHHeellpp(())
       KKNNeexxttFFiieelldd     PPrriimmiittiivveeNNeexxttTTaabbGGrroouupp(())
       KKPPrreevvFFiieelldd     PPrriimmiittiivveePPrreevvTTaabbGGrroouupp(())

  Action Routines

  The XmList action routines are described below.  The current selection is
  always shown with inverted colors.

  LLiissttAAddddMMooddee(()):
	    Toggles the	state of Add Mode for keyboard selection.

  LLiissttBBeeggiinnDDaattaa(()):
	    Moves the location cursor to the first item	in the list.  In Nor-
	    mal	Mode, this also	deselects any current selection, selects the
	    first item in the list, and	calls the appropriate selection	call-
	    backs (XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is set
	    to XXmmBBRROOWWSSEE__SSEELLEECCTT,	XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleecc--
	    ttiioonnPPoolliiccyy is set to XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT).

  LLiissttBBeeggiinnDDaattaaEExxtteenndd(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT or
	    XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, moves the location cursor to the	first item in
	    the	list.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: If an extended selection	has been made from the
	    current anchor point, restores the selection state of the items
	    in that range to their state before	the extended selection was
	    done.  Changes the selection state of the first item and all
	    items between it and the current anchor point to the state of the
	    item at the	current	anchor point.  Calls the
	    XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttBBeeggiinnEExxtteenndd(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: If an extended selection	has been made from the
	    current anchor point, restores the selection state of the items
	    in that range to their state before	the extended selection was
	    done.  Changes the selection state of the item under the pointer
	    and	all items between it and the current anchor point to the
	    state of the item at the current anchor point.  If XXmmNNaauuttoommaa--
	    ttiiccSSeelleeccttiioonn is set	to True, calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallll--
	    bbaacckk callbacks.

  LLiissttBBeeggiinnLLiinnee(()):
	    Moves the horizontal scroll	region to the beginning	of the line.

  LLiissttBBeeggiinnSSeelleecctt(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmSSIINNGGLLEE__SSEELLEECCTT, deselects
	    any	current	selection and toggles the selection state of the item
	    under the pointer.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT, deselects
	    any	current	selection and selects the item under the pointer.  If
	    XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to True, calls	the XXmmNNbbrroowwsseeSSeelleecc--
	    ttiioonnCCaallllbbaacckk callbacks.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT, toggles
	    the	selection state	of the item under the pointer.	Any previous
	    selections remain.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, deselects
	    any	current	selection, selects the item under the pointer, and
	    sets the current anchor at that item.  If XXmmNNaauuttoommaattiiccSSeelleeccttiioonn
	    is set to True, calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttBBeeggiinnTTooggggllee(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: Moves the current anchor	to the item under the pointer
	    without changing the current selection.  If	the item is
	    unselected,	it is selected;	if the item is selected, it is
	    unselected.	 If XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to True, calls	the
	    XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttBBuuttttoonnMMoottiioonn(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT, deselects
	    any	current	selection and selects the item under the
	    pointer.  If XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to True and the pointer
	    has	entered	a new list item, calls the XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk
	    callbacks.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: If an extended selection	is being made and an extended
	    selection has previously been made from the	current	anchor point,
	    restores the selection state of the	items in that range to their
	    state before the previous extended selection was done.  Changes
	    the	selection state	of the item under the pointer and all items
	    between it and the current anchor point to the state of the	item
	    at the current anchor point.  If XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to
	    True and the pointer has entered a new list	item, calls the
	    XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

	    If the pointer leaves a scrolled list, this	action scrolls the
	    list in the	direction of the pointer motion.

  LLiissttCCooppyyTTooCClliippbbooaarrdd(())
	    Copies the content of the selected items to	the clipboard as a
	    single compound string with	each item separated by a newline.

  LLiissttEEnnddDDaattaa(()):
	    Moves the location cursor to the last item in the list.  In	Nor-
	    mal	Mode, this also	deselects any current selection, selects the
	    last item in the list, and calls the appropriate selection
	    callbacks (XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is
	    set	to XXmmBBRROOWWSSEE__SSEELLEECCTT, XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk when
	    XXmmNNsseelleeccttiioonnPPoolliiccyy is set to XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT).

  LLiissttEEnnddDDaattaaEExxtteenndd(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT or
	    XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, moves the location cursor to the	last item in
	    the	list.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: If an extended selection	has been made from the
	    current anchor point, restores the selection state of the items
	    in that range to their state before	the extended selection was
	    done.  Changes the selection state of the last item	and all	items
	    between it and the current anchor point to the state of the	item
	    at the current anchor point.  Calls	the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallll--
	    bbaacckk callbacks.

  LLiissttEEnnddEExxtteenndd(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, moves the
	    location cursor to the last	item selected or deselected and, if
	    XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to False, calls the XXmmNNeexxtteenn--
	    ddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttEEnnddLLiinnee(()):
	    Moves the horizontal scroll	region to the end of the line.

  LLiissttEEnnddSSeelleecctt(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmSSIINNGGLLEE__SSEELLEECCTT	or
	    XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT, moves the location cursor to the	last item
	    selected or	deselected and calls the appropriate selection call-
	    backs (XXmmNNssiinngglleeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is set
	    to XXmmSSIINNGGLLEE__SSEELLEECCTT,	XXmmNNmmuullttiipplleeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleecc--
	    ttiioonnPPoolliiccyy is set to XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT).

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT	or
	    XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, moves the location cursor to the	last item
	    selected or	deselected and,	if XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set	to
	    False, calls the appropriate selection callbacks (XXmmNNbbrroowwsseeSSeelleecc--
	    ttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is set	to XXmmBBRROOWWSSEE__SSEELLEECCTT,
	    XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is set	to
	    XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT).

  LLiissttEEnnddTTooggggllee(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, moves the
	    location cursor to the last	item selected or deselected and, if
	    XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to False, calls the XXmmNNeexxtteenn--
	    ddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttEExxtteennddNNeexxttIItteemm(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: If an extended selection	has been made from the
	    current anchor point, restores the selection state of the items
	    in that range to their state before	the extended selection was
	    done.  Moves the location cursor to	the next item and changes the
	    selection state of the item	and all	items between it and the
	    current anchor point to the	state of the item at the current
	    anchor point.  Calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttEExxtteennddPPrreevvIItteemm(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: If an extended selection	has been made from the
	    current anchor point, restores the selection state of the items
	    in that range to their state before	the extended selection was
	    done.  Moves the location cursor to	the previous item and changes
	    the	selection state	of the item and	all items between it and the
	    current anchor point to the	state of the item at the current
	    anchor point.  Calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttSSccrroollllCCuurrssoorrVVeerrttiiccaallllyy((_p_e_r_c_e_n_t_a_g_e)):
	    Scrolls the	line containing	the insertion cursor vertically	to an
	    intermediate position in the visible window	based on an input
	    percentage.	 A value of 0 indicates	the top	of the window; a
	    value of 100, the bottom of	the window.   If this action is
	    called with	no argument, the line containing the insertion cursor
	    is scrolled	vertically to a	new position designated	by the _y
	    event passed to the	routine.

  LLiissttKKbbddAAccttiivvaattee(()):
	    Calls the callbacks	for XXmmNNddeeffaauullttAAccttiioonnCCaallllbbaacckk.  If the List's
	    parent is a	manager, this action passes the	event to the parent.

  LLiissttKKbbddBBeeggiinnEExxtteenndd(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, does	the
	    following: If an extended selection	has been made from the
	    current anchor point, restores the selection state of the items
	    in that range to their state before	the extended selection was
	    done.  Changes the selection state of the item at the location
	    cursor and all items between it and	the current anchor point to
	    the	state of the item at the current anchor	point.	If XXmmNNaauuttoommaa--
	    ttiiccSSeelleeccttiioonn is set	to True, calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallll--
	    bbaacckk callbacks.

  LLiissttKKbbddBBeeggiinnSSeelleecctt(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmSSIINNGGLLEE__SSEELLEECCTT, deselects
	    any	current	selection and toggles the state	of the item at the
	    location cursor.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT, deselects
	    any	current	selection and selects the item at the location cur-
	    sor.  If XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to True, calls the
	    XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk callbacks.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT, toggles
	    the	selection state	of the item at the location cursor.  Any pre-
	    vious selections remain.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, moves the
	    current anchor to the item at the location cursor.	In Normal
	    Mode, deselects any	current	selection and selects the item at the
	    location cursor.  In Add Mode, toggles the selection state of the
	    item at the	location cursor	and leaves the current selection
	    unchanged.	If XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set	to True, calls the
	    XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttKKbbddCCaanncceell(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT and an
	    extended selection is being	made from the current anchor point,
	    cancels the	new selection and restores the selection state of the
	    items in that range	to their state before the extended selection
	    was	done.  If XXmmNNaauuttoommaattiiccSSeelleeccttiioonn	is set to True,	calls the
	    XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks, otherwise, and if the
	    parent is a	manager, passes	the event to the parent.

  LLiissttKKbbddDDeeSSeelleeccttAAllll(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmSSIINNGGLLEE__SSEELLEECCTT,
	    XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT, or XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT in Add Mode, deselects
	    all	items in the list.  If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to
	    XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT in Normal	Mode, deselects	all items in the list
	    (except the	item at	the location cursor if the shell's XXmmNNkkeeyy--
	    bbooaarrddFFooccuussPPoolliiccyy is	XXmmEEXXPPLLIICCIITT).  Calls the	appropriate selection
	    callbacks (XXmmNNssiinngglleeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is
	    set	to XXmmSSIINNGGLLEE__SSEELLEECCTT, XXmmNNmmuullttiipplleeSSeelleeccttiioonnCCaallllbbaacckk when
	    XXmmNNsseelleeccttiioonnPPoolliiccyy is set to XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT, XXmmNNeexxtteennddeeddSSeelleecc--
	    ttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is set	to
	    XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT).

  LLiissttKKbbddEEnnddEExxtteenndd(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT and if
	    XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to False, calls the XXmmNNeexxtteenn--
	    ddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.

  LLiissttKKbbddEEnnddSSeelleecctt(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmSSIINNGGLLEE__SSEELLEECCTT	or
	    XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT or if XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is set to False,
	    calls the appropriate selection callbacks (XXmmNNssiinngglleeSSeelleeccttiioonn--
	    CCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is	set to XXmmSSIINNGGLLEE__SSEELLEECCTT,
	    XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is set to
	    XXmmBBRROOWWSSEE__SSEELLEECCTT, XXmmNNmmuullttiipplleeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonn--
	    PPoolliiccyy is set to XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT,	XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk
	    when XXmmNNsseelleeccttiioonnPPoolliiccyy is set to XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT).

  LLiissttKKbbddSSeelleeccttAAllll(()):
	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmSSIINNGGLLEE__SSEELLEECCTT	or
	    XXmmBBRROOWWSSEE__SSEELLEECCTT, selects the item at the location cursor.  If the
	    XXmmNNsseelleeccttiioonnPPoolliiccyy is set to XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT or
	    XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT, selects all items in the	list.  Calls the
	    appropriate	selection callbacks (XXmmNNssiinngglleeSSeelleeccttiioonnCCaallllbbaacckk	when
	    XXmmNNsseelleeccttiioonnPPoolliiccyy is set to XXmmSSIINNGGLLEE__SSEELLEECCTT, XXmmNNbbrroowwsseeSSeelleeccttiioonn--
	    CCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is	set to XXmmBBRROOWWSSEE__SSEELLEECCTT,
	    XXmmNNmmuullttiipplleeSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleeccttiioonnPPoolliiccyy is set	to
	    XXmmMMUULLTTIIPPLLEE__SSEELLEECCTT, XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk when XXmmNNsseelleecc--
	    ttiioonnPPoolliiccyy is set to XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT).

  LLiissttLLeeffttCChhaarr(()):
	    Scrolls the	list one character to the left.

  LLiissttLLeeffttPPaaggee(()):
	    Scrolls the	list one page to the left.

  LLiissttNNeexxttIItteemm(()):
	    Moves the location cursor to the next item in the list.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT, this action
	    also selects the next item,	deselects any current selection, and
	    calls the XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk callbacks.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, this
	    action in Normal Mode also selects the next	item, deselects	any
	    current selection, moves the current anchor	to the next item, and
	    calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.  In Add Mode
	    this action	does not affect	the selection or the anchor.

  LLiissttNNeexxttPPaaggee(()):
	    Scrolls the	list to	the next page, moving the location cursor to
	    a new item.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT, this action
	    also selects the new item, deselects any current selection,	and
	    calls the XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk callbacks.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, this
	    action in Normal Mode also selects the new item, deselects any
	    current selection, moves the current anchor	to the new item, and
	    calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.  In Add Mode
	    this action	does not affect	the selection or the anchor.

  LLiissttPPrreevvIItteemm(()):
	    Moves the location cursor to the previous item in the list.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT, this action
	    also selects the previous item, deselects any current selection,
	    and	calls the XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk callbacks.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, this
	    action in Normal Mode also selects the previous item, deselects
	    any	current	selection, moves the current anchor to the previous
	    item, and calls the	XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.	 In
	    Add	Mode this action does not affect the selection or the anchor.

  LLiissttPPrreevvPPaaggee(()):
	    Scrolls the	list to	the previous page, moving the location cursor
	    to a new item.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmBBRROOWWSSEE__SSEELLEECCTT, this action
	    also selects the new item, deselects any current selection,	and
	    calls the XXmmNNbbrroowwsseeSSeelleeccttiioonnCCaallllbbaacckk callbacks.

	    If the XXmmNNsseelleeccttiioonnPPoolliiccyy is set to	XXmmEEXXTTEENNDDEEDD__SSEELLEECCTT, this
	    action in Normal Mode also selects the new item, deselects any
	    current selection, moves the current anchor	to the new item, and
	    calls the XXmmNNeexxtteennddeeddSSeelleeccttiioonnCCaallllbbaacckk callbacks.  In Add Mode
	    this action	does not affect	the selection or the anchor.

  LLiissttPPrroocceessssDDrraagg(()):
	    Drags the content of a one or more selected	list items.  Each
	    item is separated by a newline.  This action creates a DragCon-
	    text object	whose XXmmNNeexxppoorrttTTaarrggeettss resource	is set to
	    "COMPOUND_TEXT" and	the XXmmNNcclliieennttDDaattaa resource is set to the
	    index of the item in the list.  If BBDDrraagg is	pressed	on an
	    unselected item, drags only	that item, excluding any other
	    selected items.

  LLiissttRRiigghhttCChhaarr(()):
	    Scrolls the	list one character to the right.

  LLiissttRRiigghhttPPaaggee(()):
	    Scrolls the	list one page to the right.

  PPrriimmiittiivveeHHeellpp(()):
	    Calls the callbacks	for XXmmNNhheellppCCaallllbbaacckk 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.

  PPrriimmiittiivveeNNeexxttTTaabbGGrroouupp(()):
	    Moves the focus to the first item contained	within 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.

  PPrriimmiittiivveePPrreevvTTaabbGGrroouupp(()):
	    Moves the focus to the first item contained	within the previous
	    tab	group.	If the beginning of the	tab group list is reached, it






	    wraps to the end of	the tab	group list.

  Additional Behavior

  The List widget has the additional behavior described	below:

  <<DDoouubbllee CClliicckk>>
	    If a button	click is followed by another button click within the
	    time span specified	by the display's multi-click time, the List
	    interprets that as a double	click and calls	the callbacks for
	    XXmmNNddeeffaauullttAAccttiioonnCCaallllbbaacckk.  The item's colors invert	to indicate
	    that it is selected.  The XXmmNNddoouubblleeCClliicckkIInntteerrvvaall resource can be
	    used to specify a time span	that overrides the display's multi-
	    click time.

  <<FFooccuussIInn>>:
	    If the focus policy	is Explicit, sets the focus and	draw the
	    location cursor.

  <<FFooccuussOOuutt>>:
	    If the focus policy	is Explicit, removes the focus and erase the
	    location cursor.

  Virtual Bindings

  The bindings for virtual keys	are vendor specific.  For information about
  bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).

RELATED	INFORMATION
  CCoorree((33XX)), XXmmCCrreeaatteeLLiisstt((33XX)), XXmmCCrreeaatteeSSccrroolllleeddLLiisstt((33XX)),
  XXmmFFoonnttLLiissttAAppppeennddEEnnttrryy((33XX)), XXmmLLiissttAAddddIItteemm((33XX)),	XXmmLLiissttAAddddIItteemmss((33XX)),
  XXmmLLiissttAAddddIItteemmUUnnsseelleecctteedd((33XX)), XXmmLLiissttAAddddIItteemmssUUnnsseelleecctteedd((33XX)),
  XXmmLLiissttDDeelleetteeAAllllIItteemmss((33XX)), XXmmLLiissttDDeelleetteeIItteemm((33XX)), XXmmLLiissttDDeelleetteeIItteemmss((33XX)),
  XXmmLLiissttDDeelleetteeIItteemmssPPooss((33XX)), XXmmLLiissttDDeelleetteePPooss((33XX)), XXmmLLiissttDDeelleetteePPoossiittiioonnss((33XX)),
  XXmmLLiissttDDeesseelleeccttAAllllIItteemmss((33XX)), XXmmLLiissttDDeesseelleeccttIItteemm((33XX)), XXmmLLiissttDDeesseelleeccttPPooss((33XX)),
  XXmmLLiissttGGeettKKbbddIItteemmPPooss XXmmLLiissttGGeettMMaattcchhPPooss((33XX)), XXmmLLiissttGGeettSSeelleecctteeddPPooss((33XX)),
  XXmmLLiissttIItteemmEExxiissttss((33XX)),	XXmmLLiissttIItteemmPPooss((33XX)), XXmmLLiissttPPoossTTooBBoouunnddss((33XX)),
  XXmmLLiissttRReeppllaacceeIItteemmss((33XX)), XXmmLLiissttRReeppllaacceeIItteemmssPPooss((33XX)),
  XXmmLLiissttRReeppllaacceeIItteemmssPPoossUUnnsseelleecctteedd((33XX)), XXmmLLiissttRReeppllaacceeIItteemmssUUnnsseelleecctteedd((33XX)),
  XXmmLLiissttSSeelleeccttIItteemm((33XX)),	XXmmLLiissttSSeelleeccttPPooss((33XX)), XXmmLLiissttSSeettAAddddMMooddee((33XX)),
  XXmmLLiissttSSeettBBoottttoommIItteemm((33XX)), XXmmLLiissttSSeettBBoottttoommPPooss((33XX)), XXmmLLiissttSSeettHHoorriizzPPooss((33XX)),
  XXmmLLiissttSSeettIItteemm((33XX)), XXmmLLiissttSSeettKKbbddIItteemmPPooss((33XX)), XXmmLLiissttSSeettPPooss((33XX)),
  XXmmLLiissttUUppddaatteeSSeelleecctteeddLLiisstt((33XX)),	XXmmLLiissttYYTTooPPooss((33XX)), XXmmPPrriimmiittiivvee((33XX)),
  XXmmSSttrriinnggCCrreeaattee((33XX))




























