listbox(n)		     Ck Built-In Commands		    listbox(n)



______________________________________________________________________________

NAME
       listbox - Create and manipulate listbox widgets

SYNOPSIS
       listbox pathName ?options?

STANDARD OPTIONS
       activeAttributes		      attributes      selectAttributestakeFocus
       activeBackground		      background      selectBackgroundxScrollCommand
       activeForeground		      foreground      selectForegroundyScrollCommand

       See the ``options'' manual entry for details on the standard options.

WIDGET-SPECIFIC OPTIONS
       Name:	       height
       Class:	       Height
       Command-Line Switch:-height

	      Specifies	 the desired height for the window, in lines.  If zero
	      or less, then the desired height for the	window	is  made  just
	      large enough to hold all the elements in the listbox.

       Name:	       selectMode
       Class:	       SelectMode
       Command-Line Switch:-selectmode

	      Specifies	 one of several styles for manipulating the selection.
	      The value of the option may be arbitrary, but the default	 bind-
	      ings  expect  it	to  be	either single, browse or multiple; the
	      default value is browse.

       Name:	       width
       Class:	       Width
       Command-Line Switch:-width

	      Specifies the desired width for the window  in  characters.   If
	      zero or less, then the desired width for the window is made just
	      large enough to hold all the elements in the listbox.
_________________________________________________________________


DESCRIPTION
       The listbox command creates a new window (given by the  pathName	 argu-
       ment)  and  makes  it  into  a  listbox	widget.	  Additional  options,
       described above, may be specified on the command line or in the	option
       database	 to  configure	aspects	 of  the  listbox  such as its colors,
       attributes and text. The listbox command returns its pathName argument.
       At  the	time  this  command  is invoked, there must not exist a window
       named pathName, but pathName's parent must exist.

       A listbox is a widget that displays a list of strings,  one  per	 line.
       When  first  created,  a	 new listbox has no elements.  Elements may be
       added or deleted using widget commands described	 below.	 In  addition,
       one or more elements may be selected as described below.

       It is not necessary for all the elements to be displayed in the listbox
       window at once;	commands described below may be	 used  to  change  the
       view in the window.  Listboxes allow scrolling in both directions using
       the standard xScrollCommand and yScrollCommand options.


INDICES
       Many of the widget commands for listboxes take one or more  indices  as
       arguments.   An index specifies a particular element of the listbox, in
       any of the following ways:

       number	   Specifies the element as a numerical index, where 0	corre-
		   sponds to the first element in the listbox.

       active	   Indicates  the  element that has the location cursor.  This
		   element  will  be  displayed	 with  the   activeAttributes,
		   activeBackground,  and activeForeground options if the key-
		   board focus is in the listbox.  The	element	 is  specified
		   with the activate widget command.

       anchor	   Indicates  the anchor point for the selection, which is set
		   with the selection anchor widget command.

       end	   Indicates the end of the listbox.  For some	commands  this
		   means  just	after  the last element; for other commands it
		   means the last element.

       @x,y	   Indicates the element that covers the point in the  listbox
		   window  specified by x and y (in screen coordinates). If no
		   element covers that point, then the closest element to that
		   point is used.

       In the widget command descriptions below, arguments named index, first,
       and last always contain text indices in one of the above forms.


WIDGET COMMAND
       The listbox command creates a new Tcl command whose name	 is  pathName.
       This command may be used to invoke various operations on the widget. It
       has the following general form: pathName option ?arg arg	 ...?	Option
       and  the args determine the exact behavior of the command.  The follow-
       ing commands are possible for listbox widgets:

       pathName activate index
	      Sets the active element to the  one  indicated  by  index.   The
	      active  element  is drawn with the activeAttributes, activeBack-
	      ground, and activeForeground options when	 the  widget  has  the
	      input  focus,  and  its  index  may  be retrieved with the index
	      active.

       pathName cget option
	      Returns the current value of the configuration option  given  by
	      option.  Option may have any of the values accepted by the list-
	      box command.

       pathName configure ?option? ?value option value ...?
	      Query or modify the configuration options of the widget.	If  no
	      option is specified, returns a list describing all of the avail-
	      able options for pathName. If option is specified with no value,
	      then  the command returns a list describing the one named option
	      (this list will be identical to the corresponding sublist of the
	      value  returned  if  no  option  is  specified).	If one or more
	      option-value pairs are specified, then the command modifies  the
	      given widget option(s) to have the given value(s);  in this case
	      the command returns an empty string.  Option may have any of the
	      values accepted by the listbox command.

       pathName curselection
	      Returns  a  list	containing the numerical indices of all of the
	      elements in the listbox that are currently selected.   If	 there
	      are  no elements selected in the listbox then an empty string is
	      returned.

       pathName delete first ?last?
	      Deletes one or more elements of the listbox.  First and last are
	      indices  specifying  the first and last elements in the range to
	      delete.  If last isn't specified it defaults to  first,  i.e.  a
	      single element is deleted.

       pathName get first ?last?
	      If  last is omitted, returns the contents of the listbox element
	      indicated by first.  If last is specified, the command returns a
	      list  whose  elements  are  all  of the listbox elements between
	      first and last, inclusive.  Both first and last may have any  of
	      the standard forms for indices.

       pathName index index
	      Returns  a  decimal  string  giving the integer index value that
	      corresponds to index.

       pathName insert index ?element element ...?
	      Inserts zero or more new elements in the list  just  before  the
	      element  given  by index.	 If index is specified as end then the
	      new elements are added to the end of the list.  Returns an empty
	      string.

       pathName nearest y
	      Given  a	y-coordinate  within  the listbox window, this command
	      returns the index of the (visible) listbox  element  nearest  to
	      that y-coordinate.

       pathName see index
	      Adjust  the  view	 in  the  listbox so that the element given by
	      index is visible.	 If the element is already  visible  then  the
	      command  has  no	effect; if the element is near one edge of the
	      window then the listbox scrolls to bring the element  into  view
	      at  the  edge;  otherwise the listbox scrolls to center the ele-
	      ment.

       pathName selection option arg
	      This command is used to adjust the selection within  a  listbox.
	      It has several forms, depending on option:

	      pathName selection anchor index
		     Sets  the selection anchor to the element given by index.
		     The selection anchor is the end of the selection that  is
		     fixed while dragging out a selection with the mouse.  The
		     index anchor may be used to refer to the anchor element.

	      pathName selection clear first ?last?
		     If any of the elements between first and last (inclusive)
		     are  selected,  they are deselected.  The selection state
		     is not changed for elements outside this range.

	      pathName selection includes index
		     Returns 1 if the element indicated by index is  currently
		     selected, 0 if it isn't.

	      pathName selection set first ?last?
		     Selects  all  of  the elements in the range between first
		     and last,	inclusive,  without  affecting	the  selection
		     state of elements outside that range.

       pathName size
	      Returns a decimal string indicating the total number of elements
	      in the listbox.

       pathName xview args
	      This command is used to query and change the horizontal position
	      of  the  information in the widget's window.  It can take any of
	      the following forms:

	      pathName xview
		     Returns a list containing two elements.  Each element  is
		     a	real fraction between 0 and 1;	together they describe
		     the horizontal span that is visible in the	 window.   For
		     example,  if  the first element is .2 and the second ele-
		     ment is .6, 20% of the listbox's text  is	off-screen  to
		     the  left,	 the  middle 40% is visible in the window, and
		     40% of the text is off-screen to the  right.   These  are
		     the same values passed to scrollbars via the -xscrollcom-
		     mand option.

	      pathName xview index
		     Adjusts the view in the  window  so  that	the  character
		     position  given by index is displayed at the left edge of
		     the window.  Character positions are defined by the width
		     of the character 0.

	      pathName xview moveto fraction
		     Adjusts  the  view	 in the window so that fraction of the
		     total width of the listbox	 text  is  off-screen  to  the
		     left.  fraction must be a fraction between 0 and 1.

	      pathName xview scroll number what
		     This  command shifts the view in the window left or right
		     according to number and what.  Number must be an integer.
		     What  must be either units or pages or an abbreviation of
		     one of these.  If what is units, the view adjusts left or
		     right by number character units (the width of the 0 char-
		     acter) on the display;  if it  is	pages  then  the  view
		     adjusts by number screenfuls.  If number is negative then
		     characters farther to the left become visible;  if it  is
		     positive then characters farther to the right become vis-
		     ible.

       pathName yview ?args?
	      This command is used to query and change the  vertical  position
	      of the text in the widget's window.  It can take any of the fol-
	      lowing forms:

	      pathName yview
		     Returns a list containing two elements, both of which are
		     real  fractions between 0 and 1.  The first element gives
		     the position of the listbox element at  the  top  of  the
		     window,  relative to the listbox as a whole (0.5 means it
		     is halfway through the listbox, for example).  The second
		     element  gives  the  position of the listbox element just
		     after the last one in the window, relative to the listbox
		     as	 a whole.  These are the same values passed to scroll-
		     bars via the -yscrollcommand option.

	      pathName yview index
		     Adjusts the view in the window so that the element	 given
		     by index is displayed at the top of the window.

	      pathName yview moveto fraction
		     Adjusts  the view in the window so that the element given
		     by fraction appears at the top of the  window.   Fraction
		     is	 a  fraction  between  0 and 1;	 0 indicates the first
		     element in the listbox, 0.33 indicates the	 element  one-
		     third the way through the listbox, and so on.

	      pathName yview scroll number what
		     This  command  adjusts  the view in the window up or down
		     according to number and what.  Number must be an integer.
		     What  must	 be  either units or pages.  If what is units,
		     the view adjusts up or down by number lines;   if	it  is
		     pages  then  the  view  adjusts by number screenfuls.  If
		     number is negative then earlier elements become  visible;
		     if it is positive then later elements become visible.


DEFAULT BINDINGS
       Ck  automatically  creates  class  bindings  for listboxes. Much of the
       behavior of a listbox is determined by  its  selectMode	option,	 which
       selects one of three ways of dealing with the selection.

       If  the	selection mode is single or browse, at most one element can be
       selected in the listbox at once.	 In both modes, clicking button	 1  on
       an element selects it and deselects any other selected item.

       If  the	selection  mode	 is  multiple,	any  number of elements may be
       selected at once, including discontiguous ranges.  Clicking button 1 on
       an element toggles its selection state without affecting any other ele-
       ments.

       Most people will probably want to use browse mode for single selections
       and multiple mode for multiple selections.

       In addition to the above behavior, the following additional behavior is
       defined by the default bindings:

       [1]    If the Up or Down key is pressed, the  location  cursor  (active
	      element) moves up or down one element.  If the selection mode is
	      browse then the new active element  is  also  selected  and  all
	      other elements are deselected.

       [2]    The  Left	 and Right keys scroll the listbox view left and right
	      by the one column.

       [3]    The Prior and Next keys scroll the listbox view up and  down  by
	      one page (the height of the window).

       [4]    The  Home	 and  End  keys scroll the listbox horizontally to the
	      left and right edges, respectively.

       [5]    The space and Select keys make a selection at the location  cur-
	      sor  (active element) just as if mouse button 1 had been pressed
	      over this element.

       The behavior of listboxes can be changed by defining new	 bindings  for
       individual widgets or by redefining the class bindings.


KEYWORDS
       listbox, widget



Ck				      8.0			    listbox(n)
