ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



table(n)                                     Tk Table Extension                                     table(n)



____________________________________________________________________________________________________________

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
       Command-Line Name:-autoclear
       Database Name:  autoClear
       Database Class: AutoClear

              A boolean value which specifies whether the first keypress in a cell will delete whatever text
              was previously there.  Defaults to 0.

       Command-Line Name:-bordercursor
       Database Name:  borderCursor
       Database Class: Cursor

              Specifies the name of the cursor to show when over borders, a visual indication that  interac-tive interactive
              tive  resizing  is  allowed  (it  is thus affect by the value of -resizeborders).  Defaults to
              crosshair.

       Command-Line Name:-borderwidth or -bd
       Database Name:  borderWidth
       Database Class: 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.

       Command-Line Name:-browsecommand or -browsecmd
       Database Name:  browseCommand
       Database Class: BrowseCommand

              Specifies  a  command  which  will  be evaluated anytime the active cell changes.  It uses the
              %-substition model described in COMMAND SUBSTITUTION below.

       Command-Line Name:-cache
       Database Name:  cache
       Database Class: 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.

       Command-Line Name:-colorigin
       Database Name:  colOrigin
       Database Class: Origin

              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.

       Command-Line Name:-cols
       Database Name:  cols
       Database Class: Cols

              Number of cols in the table.  Defaults to 10.

       Command-Line Name:-colseparator
       Database Name:  colSeparator
       Database Class: Separator

              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.

       Command-Line Name:-colstretchmode
       Database Name:  colStretchMode
       Database Class: StretchMode

              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.

       Command-Line Name:-coltagcommand
       Database Name:  colTagCommand
       Database Class: TagCommand

              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 evalu-ate evaluate
              ate the named procedure passing the column number in question as the sole argument.  The  pro-cedure procedure
              cedure is expected to return the name of a tag to use, or a null string.  Errors occuring dur-ing during
              ing the evaluation of the procedure, or the  return  of  an  invalid  tag  name  are  silently
              ignored.

       Command-Line Name:-colwidth
       Database Name:  colWidth
       Database Class: ColWidth

              Default  column  width, interpreted as characters in the default font when the number is posi-tive, positive,
              tive, or pixels if it is negative.  Defaults to 10.

       Command-Line Name:-command
       Database Name:  command
       Database Class: 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.

       Command-Line Name:-drawmode
       Database Name:  drawMode
       Database Class: 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). (doublebuffering).
                     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).

       Command-Line Name:-ellipsis
       Database Name:  ellipsis
       Database Class: 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).

       Command-Line Name:-flashmode
       Database Name:  flashMode
       Database Class: FlashMode

              A  boolean value which specifies whether cells should flash when their value changes.  The ta-ble table
              ble tag flash will be applied to  these  cells  for  the  duration  specified  by  -flashtime.
              Defaults to 0.

       Command-Line Name:-flashtime
       Database Name:  flashTime
       Database Class: 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.

       Command-Line Name:-height
       Database Name:  height
       Database Class: 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.

       Command-Line Name:-invertselected
       Database Name:  invertSelected
       Database Class: 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).

       Command-Line Name:-ipadx
       Database Name:  ipadX
       Database Class: Pad

              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 bor-der. border.
              der.  It only affects one side (depending on anchor).  Defaults to 0.  See -padx for an alter-nate alternate
              nate padding style.

       Command-Line Name:-ipady
       Database Name:  ipadY
       Database Class: Pad

              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  bor-der. border.
              der.  It only affects one side (depending on anchor).  Defaults to 0.  See -pady for an alter-nate alternate
              nate padding style.

       Command-Line Name:-justify
       Database Name:  justify
       Database Class: Justify

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

       Command-Line Name:-maxheight
       Database Name:  maxHeight
       Database Class: MaxHeight

              The max height in pixels that the window will request.  Defaults to 600.

       Command-Line Name:-maxwidth
       Database Name:  maxWidth
       Database Class: MaxWidth

              The max width in pixels that the window will request.  Defaults to 800.

       Command-Line Name:-multiline
       Database Name:  multiline
       Database Class: Multiline

              Specifies the default setting for the multiline tag option.  Defaults to 1.

       Command-Line Name:-padx
       Database Name:  padX
       Database Class: Pad

              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.

       Command-Line Name:-pady
       Database Name:  padY
       Database Class: Pad

              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.

       Command-Line Name:-resizeborders
       Database Name:  resizeBorders
       Database Class: ResizeBorders

              Specifies  what  kind  of  interactive border resizing to allow, must be one of row, col, both
              (default) or none.

       Command-Line Name:-rowheight
       Database Name:  rowHeight
       Database Class: 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.

       Command-Line Name:-roworigin
       Database Name:  rowOrigin
       Database Class: Origin

              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.

       Command-Line Name:-rows
       Database Name:  rows
       Database Class: Rows

              Number of rows in the table.  Defaults to 10.

       Command-Line Name:-rowseparator
       Database Name:  rowSeparator
       Database Class: Separator

              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.

       Command-Line Name:-rowstretchmode
       Database Name:  rowStretchMode
       Database Class: StretchMode

              Specifies  the  stretch modes for rows to fill extra allocated window space.  See -colstretch-mode -colstretchmode
              mode for valid options.

       Command-Line Name:-rowtagcommand
       Database Name:  rowTagCommand
       Database Class: TagCommand

              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.

       Command-Line Name:-selectioncommand or -selcmd
       Database Name:  selectionCommand
       Database Class: 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 noth-ing nothing
              ing is returned.

       Command-Line Name:-selectmode
       Database Name:  selectMode
       Database Class: 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.

       Command-Line Name:-selecttitle
       Database Name:  selectTitles
       Database Class: SelectTitles

              Specifies whether title cells should be allowed in the selection.  Defaults to 0 (disallowed).

       Command-Line Name:-selecttype
       Database Name:  selectType
       Database Class: 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).

       Command-Line Name:-sparsearray
       Database Name:  sparseArray
       Database Class: 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.

       Command-Line Name:-state
       Database Name:  state
       Database Class: 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.

       Command-Line Name:-titlecols
       Database Name:  titleCols
       Database Class: TitleCols

              Number of columns to use as a title area.  Defaults to 0.

       Command-Line Name:-titlerows
       Database Name:  titleRows
       Database Class: TitleRows

              Number of rows to use as a title area.  Defaults to 0.

       Command-Line Name:-usecommand
       Database Name:  useCommand
       Database Class: 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).

       Command-Line Name:-validate
       Database Name:  validate
       Database Class: Validate

              A boolean specifying whether validation should occur for the active buffer.  Defaults to 0.

       Command-Line Name:-validatecommand or -vcmd
       Database Name:  validateCommand
       Database Class: 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  han-dled handled
              dled  in  the  background.   It  uses the %-substition model described in COMMAND SUBSTITUTION
              below.

       Command-Line Name:-variable
       Database Name:  variable
       Database Class: 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 doesn't require 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.

       Command-Line Name:-width
       Database Name:  width
       Database Class: 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.

       Command-Line Name:-wrap
       Database Name:  wrap
       Database Class: 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 sup-ports supports
       ports 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 evalu-ated. evaluated.
       ated.  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 val-ues values
                   ues 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  wid-get widget
                   get command.

       anchor      Indicates the anchor point for the selection, which is set with the selection anchor wid-get widget
                   get 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  display-ing displaying
       ing cells is determined by the options for the table widget.  However, display options may be associ-ated associated
       ated 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  par-ticular particular
       ticular  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 query-ing querying
       ing 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 ta-ble table
       ble window to be the parent of the embedded window or a descendant of its parent).  The embedded win-dow's window's
       dow'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 wid-get widget
       get 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  back-ground. background.
                     ground.

              -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  dis-played displayed
                     played 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_tablePaste-Handler. tk_tablePasteHandler.
       Handler.  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,  san-ity sanity
       ity  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 hid-den hidden
       den 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 opera-tions operations
       tions 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  cen-tering centering
       tering 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.  Other-wise Otherwise
            wise 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  BrowseCom-mand, BrowseCommand,
            mand, 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  previ-ously previously
                     ously 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  informa-tion information
              tion  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 correspond-ing corresponding
              ing  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 val-ues values
              ues 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 asso-ciated associated
              ciated 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  charac-ter character
                     ter  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  con-strained constrained
                     strained  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  (posi-tive (positive
              tive  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 postion 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 dese-lected. deselected.
                     lected.  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 spec-ified specified
              ified 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  sub-list sublist
                     list  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  columns 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  con-figure configure
                     figure 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 WIN-DOWS WINDOWS
                     DOWS 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 nega-tive negative
                     tive  then cells farther to the left become visible;  if it is positive then cells far-ther farther
                     ther 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 exam-ple). example).
                     ple).  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 posi-tive positive
                     tive 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  redefin-ing redefining
       ing  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



Tk                                                   2.8                                            table(n)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.