Provided by: tk-table_2.10-3_amd64 bug

NAME

       table - Create and manipulate tables

SYNOPSIS

       table pathName ?options?

STANDARD OPTIONS

       -anchor         -background    -cursor
       -exportselection               -font           -foreground
       -highlightbackground           -highlightcolor -highlightthickness
       -insertbackground              -insertborderwidth-insertofftime
       -insertontime   -insertwidth   -invertselected
       -relief         -takefocus     -xscrollcommand
       -yscrollcommand

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

WIDGET-SPECIFIC OPTIONS

       [-autoclear autoClear]  A  boolean value which specifies whether the first keypress in a cell will delete
       whatever text was previously there.  Defaults to 0.  [-bordercursor borderCursor] Specifies the  name  of
       the  cursor  to  show  when over borders, a visual indication that interactive resizing is allowed (it is
       thus affect by the value of -resizeborders).  Defaults to crosshair.  [-borderwidth  or  -bd borderWidth]
       Specifies  a non-negative pixel value or list of values indicating the width of the 3-D border to draw on
       interior table cells (if such a border is being drawn; the relief option typically determines this).   If
       one  value is specified, a rectangle of this width will be drawn.  If two values are specified, then only
       the left and right edges of the cell will have borders.  If four values are specified,  then  the  values
       correspond  to  the  {left  right  top  bottom} edges.  This can be overridden by the a tag's borderwidth
       option.  It can also be affected by the defined -drawmode for the table.  Each value  in  the  list  must
       have one of the forms acceptable to Tk_GetPixels.  [-browsecommand or -browsecmd browseCommand] Specifies
       a command which will be evaluated anytime the active  cell  changes.   It  uses  the  %-substition  model
       described in COMMAND SUBSTITUTION below.  Any changes to the active cell while the command is running are
       ignored to prevent recursion.  [-cache cache] A boolean value that specifies whether an internal cache of
       the  table  contents should be kept.  This greatly enhances speed performance when used with -command but
       uses extra memory.  Can maintain state when  both  -command  and  -variable  are  empty.   The  cache  is
       automatically flushed whenever the value of -cache or -variable changes, otherwise you have to explicitly
       call clear on it.  Defaults to off.  [-colorigin colOrigin] Specifies what column index to  interpret  as
       the  leftmost  column  in  the  table.  This value is used for user indices in the table.  Defaults to 0.
       [-cols cols] Number of cols in the table.  Defaults  to  10.   [-colseparator colSeparator]  Specifies  a
       separator  character  that  will be interpreted as the column separator when cutting or pasting data in a
       table.  By default, columns are separated as elements of a  tcl  list.   [-colstretchmode colStretchMode]
       Specifies one of the following stretch modes for columns to fill extra allocated window space:

              none   Columns will not stretch to fill the assigned window space.  If the columns are too narrow,
                     there will be a blank space at the right of the table.  This is the default.

              unset  Only columns that do not have a specific width set will be stretched.

              all    All columns will be stretched by the same  number  of  pixels  to  fill  the  window  space
                     allocated  to  the  table.   This mode can interfere with interactive border resizing which
                     tries to force column width.

              last   The last column will be stretched to fill the window space allocated to the table.

              fill (only valid for -rowstretch currently)
                     The table will get more or less columns according to the  window  space  allocated  to  the
                     table.  This mode has numerous quirks and may disappear in the future.
       [-coltagcommand colTagCommand]  Provides  the name of a procedure that will be evaluated by the widget to
       determine the tag to be used for a given column.  When displaying a cell, the  table  widget  will  first
       check  to  see  if  a  tag has been defined using the tag col widget method.  If no tag is found, it will
       evaluate the named procedure passing the column number in question as the sole argument.   The  procedure
       is expected to return the name of a tag to use, or a null string.  Errors occurring during the evaluation
       of the procedure, or the return of an  invalid  tag  name  are  silently  ignored.   [-colwidth colWidth]
       Default  column  width,  interpreted  as  characters  in the default font when the number is positive, or
       pixels if it is negative.  Defaults to 10.  [-command command] Specified a command to use as a procedural
       interface  to cell values.  If -usecommand is true, this command will be used instead of any reference to
       the -variable array.  When retrieving cell values, the return value of the command is used as  the  value
       for   the   cell.    It   uses   the   %-substition   model  described  in  COMMAND  SUBSTITUTION  below.
       [-drawmode drawMode] Sets the table drawing mode to one of the following options:

              slow   The table is drawn to an  offscreen  pixmap  using  the  Tk  bordering  functions  (double-
                     buffering).  This means there will be no flashing, but this mode is slow for larger tables.

              compatible
                     The table is drawn directly to the screen using the Tk border functions.  It is faster, but
                     the screen may flash on update.  This is the default.

              fast   The table is drawn directly to the screen and the borders are done with fast  X  calls,  so
                     they  are  always  one  pixel  wide only.  As a side effect, it restricts -borderwidth to a
                     range of 0 or 1.  This mode provides best performance for large tables, but  can  flash  on
                     redraw and is not 100% Tk compatible on the border mode.

              single The  table  is  drawn  to the screen as in fast mode, but only single pixel lines are drawn
                     (not square borders).
       [-ellipsis ellipsis] This specifies a string to display at the end of a line that would be clipped by its
       cell,  like  ``...''.  An ellipsis will be displayed only on non-wrapping, non-multiline cells that would
       be clipped.  The ellipsis will display on the left for east anchored cells, otherwise it displays on  the
       right.   Defaults  to  ""  (no ellipsis).  [-flashmode flashMode] A boolean value which specifies whether
       cells should flash when their value changes.  The table tag flash will be applied to these cells for  the
       duration  specified  by  -flashtime.   Defaults  to 0.  [-flashtime flashTime] The amount of time, in 1/4
       second increments, for which a cell should flash when its value has  changed.   -flashmode  must  be  on.
       Defaults  to 2.  [-height height] Specifies the desired height for the window, in rows.  If zero or less,
       then the desired height for the window is made just large enough to hold all the rows in the table.   The
       height  can  be  further  limited  by -maxheight.  [-invertselected invertSelected] Specifies whether the
       foreground and background of an item should simply have their values swapped instead of merging  the  sel
       tag  options  when  the  cell  is selected.  Defaults to 0 (merge sel tag).  [-ipadx ipadX] A pixel value
       specifying the internal offset X padding for text in a cell.  This value does not grow the  size  of  the
       cell,  it  just  causes  the  text  to  be  drawn further from the cell border.  It only affects one side
       (depending on anchor).  Defaults to 0.  See -padx for an alternate padding style.  [-ipady ipadY] A pixel
       value  specifying the internal offset Y padding for text in a cell.  This value does not grow the size of
       the cell, it just causes the text to be drawn further from the cell border.  It  only  affects  one  side
       (depending on anchor).  Defaults to 0.  See -pady for an alternate padding style.  [-justify justify] How
       to justify multi-line text in a cell.  It must be one of left,  right,  or  center.   Defaults  to  left.
       [-maxheight maxHeight]  The  max  height  in  pixels  that  the  window  will  request.  Defaults to 600.
       [-maxwidth maxWidth]  The  max  width  in  pixels  that  the  window  will  request.   Defaults  to  800.
       [-multiline multiline]  Specifies  the  default  setting  for  the  multiline tag option.  Defaults to 1.
       [-padx padX] A pixel value specifying the offset X padding for a cell.  This  value  causes  the  default
       size  of the cell to increase by two times the value (one for each side), unless a specific pixel size is
       chosen for the cell with the width command.  This will force an empty area on the left and right of  each
       cell  edge.   This  padding  affects  all  types  of data in the cell.  Defaults to 0.  See -ipadx for an
       alternate padding style.  [-pady padY] A pixel value specifying the offset Y padding for  a  cell.   This
       value  causes the default size of the cell to increase by two times the value (one for each side), unless
       a specific pixel size is chosen for the cell with the height command.  This will force an empty  area  on
       the  top  and bottom of each cell edge.  This padding affects all types of data in the cell.  Defaults to
       0.  See -ipadx for an alternate padding style.  [-resizeborders resizeBorders]  Specifies  what  kind  of
       interactive   border   resizing   to   allow,   must  be  one  of  row,  col,  both  (default)  or  none.
       [-rowheight rowHeight] Default row height, interpreted as lines in the default font when  the  number  is
       positive,  or  pixels if it is negative.  Defaults to 1.  [-roworigin rowOrigin] Specifies what row index
       to interpret as the topmost row in the table.  This  value  is  used  for  user  indices  in  the  table.
       Defaults  to 0.  [-rows rows] Number of rows in the table.  Defaults to 10.  [-rowseparator rowSeparator]
       Specifies a separator character that will be interpreted as the row separator  when  cutting  or  pasting
       data  in  a  table.   By  default,  rows  are  separated  as tcl lists.  [-rowstretchmode rowStretchMode]
       Specifies the stretch modes for rows to fill extra allocated window space.  See -colstretchmode for valid
       options.   [-rowtagcommand rowTagCommand]  Provides  the  name  of  a procedure that can evaluated by the
       widget to determine the tag to be used for a given row.  The procedure must be defined  by  the  user  to
       accept  a  single  argument  (the  row number), and return a tag name or null string.  This operates in a
       similar  manner  as  -coltagcommand,  except  that  it  applies  to  row  tags.   [-selectioncommand   or
       -selcmd selectionCommand]  Specifies  a  command to evaluate when the selection is retrieved from a table
       via the selection mechanism (ie: evaluating ``selection get'').  The return value from this command  will
       become  the  string  passed  on  by the selection mechanism.  It uses the %-substition model described in
       COMMAND SUBSTITUTION below.  If an error occurs, a Tcl background  error  is  generated  and  nothing  is
       returned.   [-selectmode selectMode] Specifies one of several styles for manipulating the selection.  The
       value of the option may be arbitrary, but the default bindings expect it to  be  either  single,  browse,
       multiple,  or  extended;  the  default  value is browse.  These styles are like those for the Tk listbox,
       except expanded for 2 dimensions.  [-selecttitle selectTitles] Specifies whether title  cells  should  be
       allowed in the selection.  Defaults to 0 (disallowed).  [-selecttype selectType] Specifies one of several
       types of selection for the table.  The value of the option may be one of row, col, cell, or both (meaning
       row  && col); the default value is cell.  These types define whether an entire row/col is affected when a
       cell's selection is changed (set or clear).  [-sparsearray sparseArray] A boolean  value  that  specifies
       whether an associated Tcl array should be kept as a sparse array (1, the default) or as a full array (0).
       If true, then cell values that are empty will be deleted from the array (taking less memory).  If  false,
       then  all  values  in  the  array will be maintained.  [-state state] Specifies one of two states for the
       entry:  normal or disabled.  If the table is disabled then the value may  not  be  changed  using  widget
       commands  and no insertion cursor will be displayed, even if the input focus is in the widget.  Also, all
       insert or delete methods will be ignored.  Defaults to normal.  [-titlecols titleCols] Number of  columns
       to  use  as  a title area.  Defaults to 0.  [-titlerows titleRows] Number of rows to use as a title area.
       Defaults to 0.  [-usecommand useCommand] A boolean value which  specifies  whether  to  use  the  command
       option.  This value sets itself to zero if command is used and returns an error.  Defaults to 1 (will use
       command if specified).  [-validate validate] A boolean specifying whether validation should occur for the
       active  buffer.   Defaults  to  0.   [-validatecommand  or  -vcmd validateCommand] Specifies a command to
       execute when the active cell is edited.  This command is expected to return a Tcl boolean.  If it returns
       true,  then  it is assumed the new value is OK, otherwise the new value is rejected (the edition will not
       take place).  Errors in this command are handled in the  background.   It  uses  the  %-substition  model
       described in COMMAND SUBSTITUTION below.  [-variable variable] Global Tcl array variable to attach to the
       table's C array.  It will be created if it doesn't already exist or is a simple variable.  Keys  used  by
       the  table  in  the array are of the form row,col for cells and the special key active which contains the
       value of the active cell buffer.  The Tcl array is managed as a sparse array (the table does not  require
       that all valid indices have values).  No stored value for an index is equivalent to the empty string, and
       clearing a cell will remove that index from the Tcl array, unless the -sparsearray options is set  to  0.
       [-width width] Specifies the desired width for the window, in columns.  If zero or less, then the desired
       width for the window is made just large enough to hold all the columns in the table.  The  width  can  be
       further limited by -maxwidth.  [-wrap wrap] Specifies the default wrap value for tags.  Defaults to 0.
_________________________________________________________________

DESCRIPTION

       The  table  command creates a 2-dimensional grid of cells.  The table can use a Tcl array variable or Tcl
       command for data storage and retrieval, as well as optionally cache data in memory  for  speed.   One  of
       these data sources must be configured before any data is retained by the table.  The widget has an active
       cell, the contents of which can be edited (when the state is normal).   The  widget  supports  a  default
       style  for  the  cells  and also multiple tags, which can be used to change the style of a row, column or
       cell (see TAGS for details).  A cell flash can be set up so that changed cells will change  color  for  a
       specified  amount of time ("blink").  Cells can have embedded images or windows, as described in TAGS and
       "EMBEDDED WINDOWS" respectively.

       One or more cells may be selected as described below.   If  a  table  is  exporting  its  selection  (see
       -exportselection  option),  then  it  will observe the standard X11 protocols for handling the selection.
       See THE SELECTION for details.

       It is not necessary for all the cells to be displayed in the table window  at  once;  commands  described
       below  may be used to change the view in the window.  Tables allow scrolling in both directions using the
       standard -xscrollcommand and -yscrollcommand options.  They also support scanning, as described below.

       In order to obtain good performance, the table widget supports multiple drawing modes, two of  which  are
       fully Tk compatible.

INITIALIZATION

       When  the table command is loaded into an interpreter, a built-in Tcl command, tkTableInit, is evaluated.
       This will search for the appropriate table binding init file to load.  The directories searched are those
       in  $tcl_pkgPath,  both  with  Tktable(version)  appended and without, $tk_library and [pwd] (the current
       directory).  You can also define an $env(TK_TABLE_LIBRARY) to head this search  list.   By  default,  the
       file    searched    for    is   called   tkTable.tcl,   but   this   can   be   overridden   by   setting
       $env(TK_TABLE_LIBRARY_FILE).

       This entire init script can be overridden by providing your own tkTableInit procedure before the  library
       is  loaded.   Otherwise, the aforementioned env(TK_TABLE_LIBRARY) variable will be set with the directory
       in which $env(TK_TABLE_LIBRARY_FILE) was found.

INDICES

       Many of the widget commands for tables take one or more indices  as  arguments.   An  index  specifies  a
       particular cell of the table, in any of the following ways:

       number,number
                   Specifies  the  cell  as  a  numerical index of row,col which corresponds to the index of the
                   associated Tcl array, where -roworigin,-colorigin corresponds to the first cell in the  table
                   (0,0  by default).  The values for row and column will be constrained to actual values in the
                   table, which means a valid cell is always found.

       active      Indicates the cell that has the location cursor.  It is specified with  the  activate  widget
                   command.

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

       bottomright Indicates the bottom-rightmost cell visible in the table.

       end         Indicates the bottom right cell of the table.

       origin      Indicates the top-leftmost editable cell of the table, not necessarily in the display.   This
                   takes into account the user specified origin and title area.

       topleft     Indicates the top-leftmost editable cell visible in the table (this excludes title cells).

       @x,y        Indicates  the  cell that covers the point in the table window specified by x and y (in pixel
                   coordinates).  If no cell covers that point, then the closest cell 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.

TAGS

       A  tag  is a textual string that is associated with zero or more rows, columns or cells in a table.  Tags
       may contain arbitrary characters, but it is probably best to avoid using names which look like indices to
       reduce  coding  confusion.  A tag can apply to an entire row or column, or just a single cell.  There are
       several permanent tags in each table that can be configured by the user and will determine the attributes
       for special cells:

              active    This tag is given to the active cell

              flash     If flash mode is on, this tag is given to any recently edited cells.

              sel       This tag is given to any selected cells.

              title     This  tag  is  given  to  any  cells in the title rows and columns.  This tag has -state
                        disabled by default.

       Tags control the way cells are displayed on the screen.  Where appropriate, the  default  for  displaying
       cells is determined by the options for the table widget.  However, display options may be associated with
       individual tags using the ``pathName tag configure'' widget command.  If a cell, row or column  has  been
       tagged,  then  the  display  options  associated  with  the  tag override the default display style.  The
       following options are currently supported for tags:

              -anchor anchor
                     Anchor for item in the cell space.

              -background or -bg color
                     Background color of the cell.

              -borderwidth or -bd pixelList
                     Borderwidth of the cell, of the same format for the table, but may also be empty to inherit
                     the default table borderwidth value (the default).

              -ellipsis string
                     String to display at the end of a line that would be clipped by its cell, like ``...''.  An
                     ellipsis will be displayed only on non-wrapping, non-multiline cells that would be clipped.
                     The ellipsis will display on the left for east anchored cells, otherwise it displays on the
                     right.

              -font fontName
                     Font for text in the cell.

              -foreground or -fg color
                     Foreground color of the cell.

              -justify justify
                     How to justify multi-line text in a cell.  It must be one of left, right, or center.

              -image imageName
                     An image to display in the cell instead of text.

              -multiline boolean
                     Whether to display text with newlines on multiple lines.

              -relief relief
                     The relief for the cell.  May be the empty string to cause this  tag  to  not  disturb  the
                     value.

              -showtext boolean
                     Whether to show the text over an image.

              -state state
                     The  state  of the cell, to allow for certain cells to be disabled.  This prevents the cell
                     from being edited by the insert or delete methods, but a direct set will not be prevented.

              -wrap boolean
                     Whether characters should wrap in a cell that is not wide enough.

       A priority order is defined among tags based on creation order (first created  tag  has  highest  default
       priority),  and  this  order  is  used in implementing some of the tag-related functions described below.
       When a cell is displayed, its properties are determined by the  tags  which  are  assigned  to  it.   The
       priority  of  a  tag  can  be  modified  by  the ``pathName tag lower'' and ``pathName tag raise'' widget
       commands.

       If a cell has several tags associated with it that define the same display options (eg  -  a  title  cell
       with specific row and cell tags), then the options of the highest priority tag are used.  If a particular
       display option hasn't been specified for a particular tag, or if it is specified as an empty string, then
       that  option  will  not  be used; the next-highest-priority tag's option will be used instead.  If no tag
       specifies a particular display option, then the default style for the widget will be used.

       Images are used for display purposes only.  Editing in that cell will still be enabled and  any  querying
       of the cell will show the text value of the cell, regardless of the value of -showtext.

EMBEDDED WINDOWS

       There  may be any number of embedded windows in a table widget (one per cell), and any widget may be used
       as an embedded window (subject to the usual rules for geometry management, which require the table window
       to  be  the parent of the embedded window or a descendant of its parent).  The embedded window's position
       on the screen will be updated as the table is modified or scrolled, and it will be mapped and unmapped as
       it  moves into and out of the visible area of the table widget.  Each embedded window occupies one cell's
       worth of space in the table widget, and it is referred to by the index of the cell in the table.  Windows
       associated with the table widget are destroyed when the table widget is destroyed.

       Windows  are  used  for display purposes only.  A value still exists for that cell, but will not be shown
       unless the window is deleted in some way.  If the window is destroyed or lost  by  the  table  widget  to
       another  geometry  manager, then any data associated with it is lost (the cell it occupied will no longer
       appear in window names).

       When an embedded window is added to a table widget with the  window  configure  widget  command,  several
       configuration  options  may be associated with it.  These options may be modified with later calls to the
       window configure widget command.  The following options are currently supported:

              -create script
                     NOT CURRENTLY SUPPORTED.  Specifies a Tcl script that may be evaluated to create the window
                     for the annotation.  If no -window option has been specified for this cell then this script
                     will be evaluated when the cell is about to be displayed on the screen.  Script must create
                     a  window  for  the  cell  and return the name of that window as its result.  If the cell's
                     window should ever be deleted, the script will be evaluated again the next time the cell is
                     displayed.

              -background or -bg color
                     Background color of the cell.  If not specified, it uses the table's default background.

              -borderwidth or -bd pixelList
                     Borderwidth of the cell, of the same format for the table, but may also be empty to inherit
                     the default table borderwidth value (the default).

              -padx pixels
                     As defined in the Tk options man page.

              -pady pixels
                     As defined in the Tk options man page.

              -relief relief
                     The relief to use for the cell in which the window lies.  If not  specified,  it  uses  the
                     table's default relief.

              -sticky sticky
                     Stickiness of the window inside the cell, as defined by the grid command.

              -window pathName
                     Specifies the name of a window (widget) to display in the annotation.  It must exist before
                     being specified here.  When an empty string is specified, if a window was displayed it will
                     cease to be managed by the table widget.

THE SELECTION

       Table selections are available as type STRING.  By default, the value of the selection will be the values
       of the selected cells in nested Tcl list form where each row is a list and each column is an element of a
       row  list.   You  can  change  the  way  this  value  is  interpreted  by  setting  the -rowseparator and
       -colseparator options.  For example, default Excel format would be  to  set  -rowseparator  to  '\n'  and
       -colseparator  to  '\t'.   Changing  these  values affects both how the table sends out the selection and
       reads in pasted data, ensuring that the table should always be able to cut and paste to  itself.   It  is
       possible  to  change  how pastes are handled by editing the table library procedure tk_tablePasteHandler.
       This might be necessary if -selectioncommand is set.

ROW/COL SPANNING

       Individual cells can span multiple rows and/or columns.  This is done via the spans  command  (see  below
       for exact arguments).  Cells in the title area that span are not permitted to span beyond the title area,
       and will be constrained accordingly.  If the title area shrinks during a configure, sanity checking  will
       occur  to  ensure  the  above.  You may set spans on regular cells that extend beyond the defined row/col
       area.  These spans will not be constrained, so that when the defined row/col area expands, the span  will
       expand with it.

       When  setting  a span, checks are made as to whether the span would overlap an already spanning or hidden
       cell.  This is an error and it not allowed.  Spans  can  affect  the  overall  speed  of  table  drawing,
       although not significantly.  If spans are not used, then there is no performance loss.

       Cells  hidden by spanning cells still have valid data.  This will be seen during cut and paste operations
       that involve hidden cells, or through direct access by a command like get or set.

       The drawing properties of spanning cells apply to only the visual area of the cell.  For  example,  if  a
       cell  is  center justified over 5 columns, then when viewing any portion of those columns, it will appear
       centered in the visible area. The non-visible column  area  will  not  be  considered  in  the  centering
       calculations.

COMMAND SUBSTITUTION

       The  various  option  based  commands  that the table supports all support the familiar Tk %-substitution
       model (see bind for more details).  The following %-sequences are recognized and substituted by the table
       widget:

       %c   For SelectionCommand, it is the maximum number of columns in any row in the selection.  Otherwise it
            is the column of the triggered cell.

       %C   A convenience substitution for %r,%c.

       %i   For SelectionCommand, it is the total number of cells in the selection.  For Command, it is 0 for  a
            read (get) and 1 for a write (set).  Otherwise it is the current cursor position in the cell.

       %r   For  SelectionCommand,  it  is  the number of rows in the selection.  Otherwise it is the row of the
            triggered cell.

       %s   For ValidateCommand, it is the current value of the cell being validated.  For SelectionCommand,  it
            is  the default value of the selection.  For BrowseCommand, it is the index of the last active cell.
            For Command, it is empty for reads (get) and the current value of the cell for writes (set).

       %S   For ValidateCommand, it is the potential new value of the cell being validated.  For  BrowseCommand,
            it is the index of the new active cell.

       %W   The pathname to the window for which the command was generated.

WIDGET COMMAND

       The  table  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 following commands are possible for table widgets:

       pathName activate index
              Sets the active cell to the one indicated by index.

       pathName bbox first ?last?
              It returns the bounding box for the specified cell (range) as a 4-tuple of x, y, width and  height
              in  pixels.   It  clips  the  box  to  the  visible  portion, if any, otherwise an empty string is
              returned.

       pathName border option args
              This command is a voodoo hack to implement border sizing for  tables.   This  is  normally  called
              through bindings, with the following as valid options:

              pathName border mark x y ?row|col?
                     Records  x  and y and the row and/or column border under that point in the table window, if
                     any; used in conjunction with later border dragto  commands.   Typically  this  command  is
                     associated  with  a  mouse  button press in the widget.  If row or col is not specified, it
                     returns a tuple of both border indices (an empty item means no  border).   Otherwise,  just
                     the specified item is returned.

              pathName border dragto x y
                     This  command  computes  the  difference  between  its  x  and  y arguments and the x and y
                     arguments to the last border mark command for the widget.  It then adjusts  the  previously
                     marked  border  by  the difference.  This command is typically associated with mouse motion
                     events in the widget, to produce the effect of interactive border resizing.

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

       pathName clear option ?first? ?last?
              This  command  is  a  convenience routine to clear certain state information managed by the table.
              first and last represent valid table indices.  If neither are specified, then the command operates
              on the whole table.  The following options are recognized:

              pathName clear cache ?first? ?last?
                     Clears the specified section of the cache, if the table has been keeping one.

              pathName clear sizes ?first? ?last?
                     Clears  the  specified row and column areas of specific height/width dimensions.  When just
                     one index is specified, for example 2,0, that is interpreted as row 2 and column 0.

              pathName clear tags ?first? ?last?
                     Clears the specified area of tags (all row, column and cell tags).

              pathName clear all ?first? ?last?
                     Performs all of the above clear functions on the specified area.

       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 available options for pathName (see Tk_ConfigureInfo for information on
              the format of this list).  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 table command.

       pathName curselection ?value?
              With no arguments, it returns the sorted indices of the currently selected  cells.   Otherwise  it
              sets  all  the selected cells to the given value.  The set has no effect if there is no associated
              Tcl array or the state is disabled.

       pathName curvalue ?value?
              If no value is given, the value of the cell being edited (indexed by active) is returned, else  it
              is set to the given value.

       pathName delete option arg ?arg?
              This  command is used to delete various things in a table.  It has several forms, depending on the
              option:

              pathName delete active index ?index?
                     Deletes text from the active cell.  If only one index is given, it  deletes  the  character
                     after  that index, otherwise it deletes from the first index to the second.  index can be a
                     number, insert or end.

              pathName delete cols ?switches? index ?count?
                     Deletes count cols starting at (and including) col index.  The index will be constrained to
                     the limits of the tables.  If count is negative, it deletes cols to the left.  Otherwise it
                     deletes cols to the right.  count defaults to 1 (meaning just the  column  specified).   At
                     the moment, spans are not adjusted with this action.  Optional switches are:

                     -holddimensions
                            Causes  the table cols to be unaffected by the deletion (empty cols may appear).  By
                            default the dimensions are adjusted by count.

                     -holdselection
                            Causes the selection to be maintained on the absolute cells values.  Otherwise,  the
                            selection will be cleared..

                     -holdtags
                            Causes  the  tags specified by the tag method to not move along with the data.  Also
                            prevents specific widths set by the width method from being adjusted.   By  default,
                            these tags are properly adjusted.

                     -holdwindows
                            Causes  the  embedded  windows created with the window method to not move along with
                            the data.  By default, these windows are properly adjusted.

                     -keeptitles
                            Prevents title area cells from being changed.  Otherwise they are treated just  like
                            regular cells and will move as specified.

                     --     Signifies the end of the switches.

              pathName delete rows ?switches? index ?count?
                     Deletes count rows starting at (and including) row index.  If count is negative, it deletes
                     rows going up.  Otherwise it deletes rows going down.  The selection will be cleared.   The
                     switches are the same as those for column deletion.

       pathName get first ?last?
              Returns  the  value  of  the cells specified by the table indices first and (optionally) last in a
              list.

       pathName height ?row? ?value row value ...?
              If no row is specified, returns a list describing all rows for which a height has  been  set.   If
              row  is  specified  with  no  value,  it prints out the height of that row in characters (positive
              number) or pixels (negative number).  If one or more row-value pairs are specified, then  it  sets
              each  row  to  be that height in lines (positive number) or pixels (negative number).  If value is
              default, then the row uses the default height, specified by -rowheight.

       pathName hidden ?index? ?index ...?
              When called without args, it returns all the hidden cells  (those  cells  covered  by  a  spanning
              cell).   If  one index is specified, it returns the spanning cell covering that index, if any.  If
              multiple indices are specified, it returns 1 if all indices are hidden cells, 0 otherwise.

       pathName icursor ?arg?
              With no arguments, prints out the location of the insertion cursor in the active cell.   With  one
              argument,  sets  the cursor to that point in the string.  0 is before the first character, you can
              also use insert or end for the current insertion point or the end of the text.   If  there  is  no
              active cell, or the cell or table is disabled, this will return -1.

       pathName index index ?row|col?
              Returns  the integer cell coordinate that corresponds to index in the form row,col.  If row or col
              is specified, then only the row or column index is returned.

       pathName insert option arg arg
              This command is used to into various things into a table.  It has several forms, depending on  the
              option:

              pathName insert active index value
                     The value is a text string which is inserted at the index position of the active cell.  The
                     cursor is then positioned after the new text. index can be a number, insert or end.

              pathName insert cols ?switches? index ?count?
                     Inserts count cols starting at col index.  If count is  negative,  it  inserts  before  the
                     specified  col.   Otherwise  it  inserts  after  the  specified col.  The selection will be
                     cleared.  The switches are the same as those for column deletion.

              pathName insert rows ?switches? index ?count?
                     Inserts count rows starting at row index.  If count is  negative,  it  inserts  before  the
                     specified  row.   Otherwise  it  inserts  after  the  specified row.  The selection will be
                     cleared.  The switches are the same as those for column deletion.

       pathName reread
              Rereads the old contents of the cell back into the editing buffer.  Useful for a key binding  when
              <Escape> is pressed to abort the edit (a default binding).

       pathName scan option args
              This command is used to implement scanning on tables.  It has two forms, depending on option:

              pathName scan mark x y
                     Records  x  and y and the current view in the table window;  used in conjunction with later
                     scan dragto commands.  Typically this command is associated with a mouse  button  press  in
                     the widget.  It returns an empty string.

              pathName scan dragto x y.
                     This  command  computes  the  difference  between  its  x  and  y arguments and the x and y
                     arguments to the last scan mark command for the widget.  It then  adjusts  the  view  by  5
                     times  the  difference  in  coordinates.   This  command is typically associated with mouse
                     motion events in the widget, to produce the effect of  dragging  the  list  at  high  speed
                     through the window.  The return value is an empty string.

       pathName see index
              Adjust  the  view  in  the table so that the cell given by index is positioned as the cell one off
              from top left (excluding title rows and columns) if the cell  is  not  currently  visible  on  the
              screen.  The actual cell may be different to keep the screen full.

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

              pathName selection anchor index
                     Sets the selection anchor to the cell 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 cell.

              pathName selection clear first ?last?
                     If any of the cells between first and last (inclusive) are selected, they  are  deselected.
                     The selection state is not changed for cells outside this range.  first may be specified as
                     all to remove the selection from all cells.

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

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

       pathName set ?row|col? index ?value? ?index value ...?
              Sets the specified index to the associated value.  Table validation will not be triggered via this
              method.  If row or col precedes the list of index/value pairs, then the value is assumed to  be  a
              Tcl  list  whose values will be split and set into the subsequent columns (if row is specified) or
              rows (for col).  For example, set row 2,3 {2,3 2,4 2,5} will set 3 cells, from 2,3  to  2,5.   The
              setting of cells is silently bounded by the known table dimensions.

       pathName spans ?index? ?rows,cols index rows,cols ...?
              This  command is used to manipulate row/col spans.  When called with no arguments, all known spans
              are returned as a list of tuples of the form {index span}.  When called with only the  index,  the
              span  for  that index only is returned, if any.  Otherwise an even number of index rows,cols pairs
              are used to set spans.  A span starts at the index and continues for the specified number of  rows
              and  cols.   Negative  spans  are not supported.  A span of 0,0 unsets any span on that cell.  See
              EXAMPLES for more info.

       pathName tag option ?arg arg ...?
              This command is used to manipulate tags.  The exact behavior of the command depends on the  option
              argument that follows the tag argument.  cget, cell, and row|col complain about unknown tag names.
              The following forms of the command are currently supported:

              pathName tag cell tagName ?index ...?
                     With no arguments, prints out the list of cells that use the tag.  Otherwise  it  sets  the
                     specified  cells  to use the named tag, replacing any tag that may have been set using this
                     method before.  If tagName is {}, the cells are reset  to  the  default  tag.   Tags  added
                     during -*tagcommand evaluation do not register here.  If tagName does not exist, it will be
                     created with the default options.

              pathName tag cget tagName option
                     This command returns the current value of the option named option associated with  the  tag
                     given  by  tagName.  Option may have any of the values accepted by the tag configure widget
                     command.

              pathName tag col tagName ?col ...?
                     With no arguments, prints out the list of cols that use the tag.   Otherwise  it  sets  the
                     specified columns to use the named tag, replacing any tag that may have been set using this
                     method before.  If tagName is {}, the cols are reset to the default tag.  Tags added during
                     -coltagcommand  evaluation  do  not  register  here.  If tagName does not exist, it will be
                     created with the default options.

              pathName tag configure tagName ?option? ?value? ?option value ...?
                     This command is similar to the configure widget command except  that  it  modifies  options
                     associated with the tag given by tagName instead of modifying options for the overall table
                     widget.  If no option is specified, the command  returns  a  list  describing  all  of  the
                     available  options  for tagName (see Tk_ConfigureInfo for information on the format of this
                     list).  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 option(s) to have the given value(s) in tagName; in this
                     case the command returns an empty string.  See  TAGS  above  for  details  on  the  options
                     available for tags.

              pathName tag delete tagName
                     Deletes a tag.  No error if the tag does not exist.

              pathName tag exists tagName
                     Returns 1 if the named tag exists, 0 otherwise.

              pathName tag includes tagName index
                     Returns 1 if the specified index has the named tag, 0 otherwise.

              pathName tag lower tagName ?belowThis?
                     Lower  the  priority  of  the  named  tag.   If  belowThis is not specified, then the tag's
                     priority is lowered to the bottom, otherwise it is lowered to one below belowThis.

              pathName tag names ?pattern?
                     If no pattern is specified, shows the names of all defined tags.  Otherwise the pattern  is
                     used  as a glob pattern to show only tags matching that pattern.  Tag names are returned in
                     priority order (highest priority tag first).

              pathName tag raise tagName ?aboveThis?
                     Raise the priority of the named tag.   If  aboveThis  is  not  specified,  then  the  tag's
                     priority is raised to the top, otherwise it is raised to one above aboveThis.

              pathName tag row tagName ?row ...?
                     With  no  arguments,  prints  out the list of rows that use the tag.  Otherwise it sets the
                     specified rows to use the named tag, replacing any tag that may have been  set  using  this
                     method  before.   If  tagName is {}, the rows are reset to use the default tag.  Tags added
                     during -rowtagcommand evaluation do not register here.  If tagName does not exist, it  will
                     be created with the default options.

       pathName validate index
              Explicitly  validates the specified index based on the current -validatecommand and returns 0 or 1
              based on whether the cell was validated.

       pathName width ?col? ?value col value ...?
              If no col is specified, returns a list describing all cols for which a width has been set.  If col
              is specified with no value, it prints out the width of that col in characters (positive number) or
              pixels (negative number).  If one or more col-value pairs are specified, then it sets each col  to
              be  that  width in characters (positive number) or pixels (negative number).  If value is default,
              then the col uses the default width, specified by -colwidth.

       pathName window option ?arg arg ...?
              This command is used to manipulate embedded windows.  The exact behavior of the command depends on
              the  option  argument  that  follows  the window argument.  The following forms of the command are
              currently supported:

              pathName window cget index option
                     This command returns the current value of the  option  named  option  associated  with  the
                     window  given by index.  Option may have any of the values accepted by the window configure
                     widget command.

              pathName window configure index ?option? ?value? ?option value ...?
                     This command is similar to the configure widget command except  that  it  modifies  options
                     associated  with  the  embedded  window given by index instead of modifying options for the
                     overall table widget.  If no option is specified, the command returns a list describing all
                     of  the  available options for index (see Tk_ConfigureInfo for information on the format of
                     this list).  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 option(s) to have the given value(s) in
                     index; in this case the command returns an empty string.  See EMBEDDED  WINDOWS  above  for
                     details on the options available for windows.

              pathName window delete index ?index ...?
                     Deletes an embedded window from the table.  The associated window will also be deleted.

              pathName window move indexFrom indexTo
                     Moves  an  embedded  window  from  one  cell to another.  If a window already exists in the
                     target cell, it will be deleted.

              pathName window names ?pattern?
                     If no pattern is specified, shows the cells of all embedded windows.  Otherwise the pattern
                     is used as a glob pattern to show only cells matching that pattern.

       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 element is .6, 20% of the table'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 -xscrollcommand option.

              pathName xview index
                     Adjusts the view in the window so that the column given by index is displayed at  the  left
                     edge of the window.

              pathName xview moveto fraction
                     Adjusts  the  view  in  the window so that fraction of the total width of the table 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 cells on the display; if
                     it  is  pages then the view adjusts by number screenfuls.  If number is negative then cells
                     farther to the left become visible;  if it is positive then  cells  farther  to  the  right
                     become visible.

       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 following 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  table element at the top of the window,
                     relative to the table as a whole (0.5 means it is halfway through the table, for  example).
                     The  second  element gives the position of the table element just after the last one in the
                     window, relative to the table as a whole.  These are the same values passed  to  scrollbars
                     via the -yscrollcommand option.

              pathName yview index
                     Adjusts  the  view  in the window so that the row 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
                     table, 0.33 indicates the element one-third the way through the table, 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 cells; 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

       The initialization creates class bindings that give the following default behaviour:

       [1]    Clicking Button-1 in a cell activates that cell.  Clicking into an already active cell  moves  the
              insertion cursor to the character nearest the mouse.

       [2]    Moving  the  mouse  while  Button-1  is  pressed  will stroke out a selection area.  Exiting while
              Button-1 is pressed causing scanning to occur on the table along with selection.

       [3]    Moving the mouse while Button-2 is pressed causes scanning to occur without any selection.

       [4]    Home moves the table to have the origin in view.

       [5]    End moves the table to have the end cell in view.

       [6]    Control-Home moves the table to the origin and activates that cell.

       [7]    Control-End moves the table to the end and activates that cell.

       [8]    Shift-Control-Home extends the selection to the origin.

       [9]    Shift-Control-End extends the selection to the end.

       [10]   The left, right, up and down arrows move the active cell.

       [11]   Shift-<arrow> extends the selection in that direction.

       [12]   Control-leftarrow and Control-rightarrow move the insertion cursor within the cell.

       [13]   Control-slash selects all the cells.

       [14]   Control-backslash clears selection from all the cells.

       [15]   Backspace deletes the character before the insertion cursor in the active cell.

       [16]   Delete deletes the character after the insertion cursor in the active cell.

       [17]   Escape rereads the value of the active cell from the specified data source, discarding  any  edits
              that have may been performed on the cell.

       [18]   Control-a moves the insertion cursor to the beginning of the active cell.

       [19]   Control-e moves the insertion cursor to the end of the active cell.

       [20]   Control-minus  and  Control-equals  decrease  and increase the width of the column with the active
              cell in it.

       [21]   Moving the mouse while Button-3 (the right button on Windows) is pressed  while  you  are  over  a
              border  will  cause interactive resizing of that row and/or column to occur, based on the value of
              -resizeborders.

       Some bindings may have slightly different behavior dependent on the -selectionmode of the widget.

       If the widget is disabled using the -state option, then its view can still  be  adjusted  and  cells  can
       still be selected, but no insertion cursor will be displayed and no cell modifications will take place.

       The  behavior  of  tables can be changed by defining new bindings for individual widgets or by redefining
       the class bindings.  The default bindings are either  compiled  in  or  read  from  a  file  expected  to
       correspond to: "[lindex $tcl_pkgPath 0]/Tktable<version>/tkTable.tcl".

PERFORMANCE ISSUES

       The  number  of  rows  and columns or a table widget should not significantly affect the speed of redraw.
       Recalculation and redraw of table parameters and cells is restricted as much as possible.

       The display cell with the insert cursor is redrawn each time the cursor blinks,  which  causes  a  steady
       stream  of  graphics traffic.  Set the -insertofftime option to 0 avoid this.  The use of a -command with
       the table without a cache can cause significant slow-down, as the command is called once for each request
       of a cell value.

EXAMPLES

       Set  the topleft title area to be one spanning cell.  This overestimates both row and column span by one,
       but the command does all the constraining for us.
              $table span [$table cget -roworigin],[$table cget -colorigin] [$table cget -titlerows],[$table cget -titlecols]
       Force a table window refresh (useful for the slight chance that a bug in the table is not causing  proper
       refresh):
              $table configure -padx [$table cget -padx]

KEYWORDS

       table, widget, extension