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 de-
	      fault 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, de-
       scribed above, may be specified on the command line or  in  the	option
       database	 to  configure	aspects of the listbox such as its colors, at-
       tributes 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,  ac-
		   tiveBackground,  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  ac-
	      tive  element  is	 drawn	with the activeAttributes, activeBack-
	      ground, and activeForeground options when the widget has the in-
	      put 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  op-
	      tion-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 re-
	      turns 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  in-
	      dex is visible.  If the element is already visible then the com-
	      mand has no effect; if the element is near one edge of the  win-
	      dow  then	 the listbox scrolls to bring the element into view at
	      the edge;	 otherwise the listbox scrolls to center the element.

       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  po-
		     sition  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  ad-
		     justs  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 el-
		     ement 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 be-
       havior of a listbox is determined by its selectMode option,  which  se-
       lects 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 se-
       lected 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)
