tablelist::tablelist - Create and manipulate
tablelist widgetstablelist::tablelist pathName ?options?
-borderwidth -highlightthickness -setgrid -cursor -relief -xscrollcommand -exportselection -selectbackground -yscrollcommand -highlightbackground -selectborderwidth -highlightcolor -selectforeground
-background -disabledforeground -font -foreground
-activestyle
frame|none|underline-arrowcolor
color-arrowstyle
flat7x4|flat7x7|flat8x5|flat9x5|sunken8x7|
sunken10x9|sunken12x11-arrowdisabledcolor
color-columns {width
title ?left|right|center? \
?width title
?left|right|center? ...?}-editendcommand
command-editstartcommand
command-forceeditendcommand
boolean-height
lines-incrarrowtype
up|down-labelactivebackground
color-labelactiveforeground
color-labelbackground
color or -labelbg
color-labelborderwidth
screenDistance or -labelbd
screenDistance-labelcommand
command-labeldisabledforeground
color-labelfont
font-labelforeground
color or -labelfg
color-labelheight
lines-labelpady
screenDistance-labelrelief
raised|sunken|flat|ridge|solid|
groove-listvariable
variable-movablecolumns
boolean-movablerows
boolean-movecolumncursor
cursor-movecursor
cursor-protecttitlecolumns
boolean-resizablecolumns
boolean-resizecursor
cursor-selectmode mode
(single|browse|multiple|extended)-selecttype
row|cell-showarrow
boolean-showlabels
boolean-showseparators
boolean-snipstring
string-sortcommand
command-spacing
screenDistance-state
normal|disabled-stretch
all|columnIndexList-stripebackground
color or -stripebg
color-stripeforeground
color or -stripefg
color-stripeheight
lines-takefocus
0|1|""|command-targetcolor
color-titlecolumns
number-width
characters-align
left|right|center-background
color or -bg
color-editable
boolean-editwindow
name-font
font-foreground
color or -fg
color-formatcommand
command-hide
boolean-labelalign
left|right|center-labelbackground
color or -labelbg
color-labelborderwidth
screenDistance or -labelbd
screenDistance-labelcommand
command-labelfont
font-labelforeground
color or -labelfg
color-labelheight
lines-labelimage
image-labelpady
screenDistance-labelrelief
raised|sunken|flat|ridge|solid|
groove-maxwidth
width-name
name-resizable
boolean-selectbackground
color-selectforeground
color-showarrow
boolean-sortcommand
command-sortmode
ascii|command|dictionary|integer|real-stretchable
boolean-text
list-title
title-width
width-background
color or -bg
color-font
font-foreground
color or -fg
color-name
name-selectable
boolean-selectbackground
color-selectforeground
color-text
list-background
color or -bg
color-editable
boolean-editwindow
name-font
font-foreground
color or -fg
color-image
image-selectbackground
color-selectforeground
color-text
text-window
command-windowdestroy
commandnumber knumber active anchor end @x,y name
number active anchor end @x,y name
row,col active anchor end @x,y row : number knumber active anchor end name col : number active anchor end name
pathName activate
indexpathName activatecell cellIndexpathName attrib
?name? ?value name value
...?pathName bbox
indexpathName bodypathpathName bodytagpathName canceleditingpathName cellcget
cellIndex optionpathName cellconfigure cellIndex
?option? ?value option value
...?pathName cellindex
cellIndexpathName cellselection option
args
pathName cellselection anchor
cellIndexpathName cellselection clear
firstCell lastCellpathName cellselection clear
cellIndexListpathName cellselection includes
cellIndexpathName cellselection set
firstCell lastCellpathName cellselection set
cellIndexListpathName cget
optionpathName columncget columnIndex
optionpathName columnconfigure columnIndex
?option? ?value option value
...?pathName columncountpathName columnindex columnIndexpathName configure
?option? ?value option value
...?pathName containing ypathName containingcell x
ypathName containingcolumn xpathName curcellselectionpathName curselectionpathName delete
first lastpathName delete
indexListpathName deletecolumns firstColumn
lastColumnpathName deletecolumns
columnIndexListpathName editcell
cellIndexpathName editwinpathpathName entrypathpathName fillcolumn columnIndex
textpathName finisheditingpathName get
first lastpathName get
indexListpathName getcells
firstCell lastCellpathName getcells
cellIndexListpathName getcolumns firstColumn
lastColumnpathName getcolumns columnIndexListpathName getkeys
first lastpathName getkeys
indexListpathName imagelabelpath
cellIndexpathName index
indexpathName insert
index ?item item ...?pathName insertcolumnlist columnIndex
{width title ?left|right|center?
\
?width title
?left|right|center? ...?}pathName insertcolumns columnIndex
?width title ?left|right|center?
\
width title
?left|right|center? ...?pathName insertlist index
itemListpathName itemlistvarpathName labelpath
columnIndexpathName labelspathName move
source targetpathName movecolumn sourceColumn
targetColumnpathName nearest
ypathName nearestcell x ypathName nearestcolumn xpathName rejectinputpathName resetsortinfopathName rowcget
index optionpathName rowconfigure index ?option?
?value option value ...?pathName scan
mark|dragto x ypathName see
indexpathName seecell
cellIndexpathName seecolumn
columnIndexpathName selection
option args
pathName selection anchor
indexpathName selection clear
first lastpathName selection clear
indexListpathName selection includes
indexpathName selection set first
lastpathName selection set
indexListpathName separatorpath
?columnIndex?pathName separatorspathName sizepathName sort
?-increasing|-decreasing?pathName sortbycolumn columnIndex
?-increasing|-decreasing?pathName sortcolumnpathName sortorderpathName togglevisibility firstColumn
lastColumnpathName togglevisibility
columnIndexListpathName windowpath cellIndexpathName xview
args
pathName xviewpathName xview unitspathName xview moveto
fractionpathName xview scroll number
whatpathName yview
args
pathName yviewpathName yview indexpathName yview moveto
fractionpathName yview scroll number
whattablelist::tablelist - Create and manipulate
tablelist widgets
tablelist::tablelist pathName ?options?
-borderwidth -highlightthickness -setgrid -cursor -relief -xscrollcommand -exportselection -selectbackground -yscrollcommand -highlightbackground -selectborderwidth -highlightcolor -selectforeground
-highlightbackground,
-highlightcolor, and
-highlightthickness options are only supported
by the Tablelist package, but not by Tablelist_tile. When
using the package Tablelist_tile, the options
-selectbackground,
-selectborderwidth, and
-selectforeground have theme-specific default
values.
-background -disabledforeground -font -foreground
| Command-Line Name: | -activestyle |
| Database Name: | activeStyle |
| Database Class: | ActiveStyle |
Specifies how to diplay the active item or element (depending on the value of the
-selecttypeconfiguration option) when the tablelist has the keyboard focus. The allowed values areframe,none, andunderline. The valueframemakes the active item or element appear surrounded with a thin frame, which looks nice when applied to the active element, and also when displaying the active item if all of its cells have the same background color. It looks less pretty when applied to the active item if the background color of some of its cells was changed by using thecolumnconfigureorcellconfigurewidget command. The valuenonespecifies that no special indication of the active item or element is to be performed. The default isunderline, which produces the same visual effect as in the case of the Tk core listbox.
| Command-Line Name: | -arrowcolor |
| Database Name: | arrowColor |
| Database Class: | ArrowColor |
Specifies the color to use for the up- or down-arrow placed into a column label by the
sortbycolumnsubcommand of the Tcl command associated with the widget. This option is only relevant if the value of the-showarrowoption is true. The default value depends on the windowing system in the Tablelist package and on the current theme in Tablelist_tile. For example, if the windowing system isx11then the default is an empty string, indicating that the arrow will inherit the background color of the label in which it is placed (but is distinguishable from the latter, due to its 3-D border and sunken relief, because in this case the-arrowstyleoption has the default valuesunken10x9). On the windowing systemwin32, the default arrow color is#aca899for Windows XP and an empty string for older Windows versions, paired with the default arrow styleflat9x5andsunken8x7, respectively. Finally, for the windowing systemsclassicandaquaon the Macintosh, the default arrow color is#777777and the default arrow style isflat7x7.
| Command-Line Name: | -arrowstyle |
| Database Name: | arrowStyle |
| Database Class: | ArrowStyle |
Specifies the relief, width, and height of the up- or down-arrow placed into a column label by the
sortbycolumnsubcommand of the Tcl command associated with the widget. This option is only relevant if the value of the-showarrowoption is true. The currently supported values areflat7x4,flat7x7,flat8x5,flat9x5,sunken8x7,sunken10x9, andsunken12x11. The default value depends on the windowing system in the Tablelist package and on the current theme in Tablelist_tile; see the description of the-arrowcoloroption for details.
| Command-Line Name: | -arrowdisabledcolor |
| Database Name: | arrowDisabledColor |
| Database Class: | ArrowDisabledColor |
Specifies the color to use for the up- or down-arrow placed into a column label by the
sortbycolumnsubcommand of the Tcl command associated with the widget when the tablelist'sstateisdisabled. This option is only relevant if the value of the-showarrowoption is true. The default value is the same as that of the-arrowcoloroption.
| Command-Line Name: | -columns |
| Database Name: | columns |
| Database Class: | Columns |
Specifies the widths, titles, and alignments of the columns. The option's value must be a list of the form
width title ?alignment? width title ?alignment? ...Each
widthmust be a number. A positive value specifies the column's width in average-size characters of the widget's font. Ifwidthis negative, its absolute value is interpreted as a column width in pixels. Finally, a value of zero specifies that the column's width is to be made just large enough to hold all the elements in the column, including its header (but no larger than the maximum width indicated by the-maxwidthcolumn configuration option). In all three cases, the effective column width will be somewhat greater because of the margins created automatically to the left and right of the column.Each
titlespecifies the text to be displayed in the column's header, and may optionally be followed in the next list element by analignment, which specifies how to align the elements of the column. Eachalignmentmust be one ofleft,right, orcenter. The default isleft. Thealignmentalso refers to the column's title as long as the-labelalignoption hasn't been specified for that column, or if its value is an empty string.The default value of this option is an empty list, specifying that initially the widget has no columns.
| Command-Line Name: | -editendcommand |
| Database Name: | editEndCommand |
| Database Class: | EditEndCommand |
Specifies a Tcl command to be invoked on normal termination of the interactive editing of a cell's contents if the final text of the temporary embedded widget used for the editing is different from its initial one. The command is automatically concatenated with the name of the tablelist widget, the cell's row and column indices, as well as the final contents of the edit window, the resulting script is evaluated in the global scope, and the return value becomes the cell's new contents after destroying the temporary embedded widget. The main purpose of this script is to perform a final validation of the edit window's contents. See the description of the
-forceeditendcommandoption for more about the invocation of the command mentioned above, as well as the INTERACTIVE CELL EDITING section for details on the editing process.
| Command-Line Name: | -editstartcommand |
| Database Name: | editStartCommand |
| Database Class: | EditStartCommand |
Specifies a Tcl command to be invoked when the interactive editing of a cell's contents is started. The command is automatically concatenated with the name of the tablelist widget, the cell's row and column indices, as well as the text displayed in the cell, the resulting script is evaluated in the global scope, and the return value becomes the initial contents of the temporary embedded widget used for the editing. The main purpose of this script is to define validations for the edit window's contents. See the INTERACTIVE CELL EDITING section for details on the editing process.
| Command-Line Name: | -forceeditendcommand |
| Database Name: | forceEditEndCommand |
| Database Class: | ForceEditEndCommand |
Specifies a boolean value that controls the invocation of the command given by the the
-editendcommandoption. If this value is true then the command will be invoked on normal termination of the editing process even if the final text of the temporary embedded widget used for the editing equals its initial one, and will also be invoked when the interactive cell editing is canceled (in the latter case, the text passed to it as last argument will be the cell's original contents, not its final one). The default value of this option is0, meaning that the command will only be invoked on normal termination of the editing process, if the final text of the temporary embedded widget is different from its initial one. See the INTERACTIVE CELL EDITING section for details on the editing process.Setting this option to true enables you to execute an arbitrary action whenever the interactive cell editing is finished. Just binding a script to the
<Destroy>event for the temporary embedded widget used for the editing won't work, because that widget might be destroyed and recreated automatically under various circumstances. Alternately, you can use the<<TablelistCellUpdated>>and<<TablelistCellRestored>>virtual events, generated by thefinisheditingandcanceleditingsubcommands, respectively.
| Command-Line Name: | -height |
| Database Name: | height |
| Database Class: | Height |
Specifies the desired height for the window, in lines. If zero or less then the desired height for the window is made just large enough to hold the header and all the items in the tablelist widget.
| Command-Line Name: | -incrarrowtype |
| Database Name: | incrArrowType |
| Database Class: | IncrArrowType |
Specifies the type of the arrow placed into a column label when invoking the
sortbycolumnsubcommand of the Tcl command associated with the widget, with-increasingas second argument. The value of this option must be one ofupordown. The default isup. This option is only relevant if the value of the-showarrowoption is true.
| Command-Line Name: | -labelactivebackground |
| Database Name: | labelActiveBackground |
| Database Class: | Foreground |
Specifies the
-activebackgroundoption for the header labels, i.e., the background color to use when the mouse cursor is positioned over a header label and the value oftk_strictMotifis false. This option is only defined in the Tablelist package if the Tk version being used supports the-activebackgroundoption for label widgets. This is checked by Tablelist at initialization time, and will normally be the case for Tk versions 8.3.2 or higher. On the other hand, the Tablelist_tile package doesn't support the-labelactivebackgroundoption.
| Command-Line Name: | -labelactiveforeground |
| Database Name: | labelActiveForeground |
| Database Class: | Background |
Specifies the
-activeforegroundoption for the header labels, i.e., the foreground color to use when the mouse cursor is positioned over a header label and the value oftk_strictMotifis false. This option is only defined in the Tablelist package if the Tk version being used supports the-activeforegroundoption for label widgets. This is checked by Tablelist at initialization time, and will normally be the case for Tk versions 8.3.2 or higher. On the other hand, the Tablelist_tile package doesn't support the-labelactiveforegroundoption.
| Command-Line Name: | -labelbackground or
-labelbg |
| Database Name: | labelBackground |
| Database Class: | Background |
Specifies the
-backgroundoption for the header labels. In the package Tablelist_tile this option has a theme-specific default value.
| Command-Line Name: | -labelborderwidth or
-labelbd |
| Database Name: | labelBorderWidth |
| Database Class: | BorderWidth |
Specifies the
-borderwidthoption for the header labels. This option is different from the standard-borderwidthoption defined for the tablelist widget itself. In the package Tablelist_tile this option has a theme-specific default value.
| Command-Line Name: | -labelcommand |
| Database Name: | labelCommand |
| Database Class: | LabelCommand |
Specifies the Tcl command to be invoked when mouse button 1 is pressed over one of the header labels and later released over the same label. When the
<ButtonRelease-1>event occurs, the command is automatically concatenated with the name of the tablelist widget and the column index of the respective label, and the resulting script is evaluated in the global scope. If the tablelist'sstateisdisabledthen this action will not take place. The most common value of this option istablelist::sortByColumn; this command sorts the items based on the column whose index was passed to it as second argument.
| Command-Line Name: | -labeldisabledforeground |
| Database Name: | labelDisabledForeground |
| Database Class: | DisabledForeground |
Specifies the
-disabledforegroundoption for the header labels, i.e., the foreground color to use for the labels when the tablelist'sstateisdisabled. This option is only defined in the Tablelist package if the Tk version being used supports the-disabledforegroundoption for label widgets. This is checked by Tablelist at initialization time, and will normally be the case for Tk versions 8.3.1 or higher. On the other hand, the Tablelist_tile package doesn't support the-labeldisabledforegroundoption.
| Command-Line Name: | -labelfont |
| Database Name: | labelFont |
| Database Class: | Font |
Specifies the
-fontoption for the header labels. In the package Tablelist_tile this option has a theme-specific default value.
| Command-Line Name: | -labelforeground or
-labelfg |
| Database Name: | labelForeground |
| Database Class: | Foreground |
Specifies the
-foregroundoption for the header labels. In the package Tablelist_tile this option has a theme-specific default value.
| Command-Line Name: | -labelheight |
| Database Name: | labelHeight |
| Database Class: | Height |
Specifies the
-heightoption for the header labels. This option is only supported by the Tablelist package, but not by Tablelist_tile.
| Command-Line Name: | -labelpady |
| Database Name: | labelPadY |
| Database Class: | Pad |
In the Tablelist package this option specifies the
-padyconfiguration option for the header labels. In the Tablelist_tile package the value of the-labelpadyoption is mapped to the corresponding components of the value of the-paddingconfiguration option of the header labels, and the-labelpadyoption has a theme-specific default value.
| Command-Line Name: | -labelrelief |
| Database Name: | labelRelief |
| Database Class: | Relief |
Specifies the
-reliefoption for the header labels. This option is different from the standard-reliefoption defined for the tablelist widget itself. The default value israised.
| Command-Line Name: | -listvariable |
| Database Name: | listVariable |
| Database Class: | Variable |
Specifies the name of a variable. The value of the variable is a list to be displayed inside the widget; if the variable value changes then the widget will automatically update itself to reflect the new value. The value of the variable must be a valid list. Each list element corresponds to a row within the widget, and must be a valid list itself; its elements correspond to the cells within the respective row. Attempts to assign a variable whose value does not fulfil these conditions to
-listvariablewill cause an error. Attempts to unset a variable in use as a-listvariablewill fail but will not generate an error.
| Command-Line Name: | -movablecolumns |
| Database Name: | movableColumns |
| Database Class: | MovableColumns |
Specifies a boolean value that determines whether the columns can be moved interactively. See the DEFAULT BINDINGS FOR THE HEADER LABELS section below for information on moving a column interactively. The default value is
0.
| Command-Line Name: | -movablerows |
| Database Name: | movableRows |
| Database Class: | MovableRows |
Specifies a boolean value that determines whether the rows can be moved interactively. See the DEFAULT AND INDIVIDUAL BINDINGS FOR THE TABLELIST BODY section below for information on moving a row interactively. The default value is
0.
| Command-Line Name: | -movecolumncursor |
| Database Name: | moveColumnCursor |
| Database Class: | MoveColumnCursor |
Specifies the mouse cursor to be used when moving a column interactively. The default value is
icon.
| Command-Line Name: | -movecursor |
| Database Name: | moveCursor |
| Database Class: | MoveCursor |
Specifies the mouse cursor to be used when moving a row interactively. The default value is
hand2.
| Command-Line Name: | -protecttitlecolumns |
| Database Name: | protectTitleColumns |
| Database Class: | ProtectTitleColumns |
Specifies a boolean value that determines whether the boundary of the title column area shall be protected from being crossed when moving a column interactively. See the DEFAULT BINDINGS FOR THE HEADER LABELS section below for information on moving a column interactively. The default value is
0, specifying that non-title columns can be moved into the title column area and vice-versa.
| Command-Line Name: | -resizablecolumns |
| Database Name: | resizableColumns |
| Database Class: | ResizableColumns |
Specifies a boolean value that determines whether the columns can be resized interactively. See the DEFAULT BINDINGS FOR THE HEADER LABELS section below for information on interactive column resizing. The default value is
1.
| Command-Line Name: | -resizecursor |
| Database Name: | resizeCursor |
| Database Class: | ResizeCursor |
Specifies the mouse cursor to be used during interactive column resizing. The default value is
sb_h_double_arrow.
| 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, orextended. The default value isbrowse.
| Command-Line Name: | -selecttype |
| Database Name: | selectType |
| Database Class: | SelectType |
Specifies one of two selection types for the tablelist widget:
roworcell. If the selection type isrowthen the default bindings will select and deselect entire items, and the whole row having the location cursor will be displayed as active when the tablelist has the keyboard focus. If the selection type iscellthen the default bindings will select and deselect individual elements, and the single cell having the location cursor will be displayed as active when the tablelist has the keyboard focus. The default value isrow.
| Command-Line Name: | -showarrow |
| Database Name: | showArrow |
| Database Class: | ShowArrow |
Specifies a boolean value that determines whether the
sortbycolumnsubcommand of the Tcl command associated with the widget should place an arrow indicating the sort order into the header label of the column specified by its first argument. The default value is1.
| Command-Line Name: | -showlabels |
| Database Name: | showLabels |
| Database Class: | ShowLabels |
Specifies a boolean value that determines whether the header labels are to be shown or not. The default value is
1.
| Command-Line Name: | -showseparators |
| Database Name: | showSeparators |
| Database Class: | ShowSeparators |
Specifies a boolean value that determines whether the columns are to be separated with borders. The default value is
0. The separators are implemented as thin frames with sunken relief in the package Tablelist, and as tile separator widgets in the package Tablelist_tile. They are attached to the right edges of the header labels, and are only created if the value of this option is true. There is no support for horizontal separators in tablelist widgets, but a nice distinguishing effect for the rows can be achieved with the aid of the-stripebackgroundoption discussed below.
| Command-Line Name: | -snipstring |
| Database Name: | snipString |
| Database Class: | SnipString |
Specifies the string to be used as snip indicator when displaying the elements that don't fit into their cells. The default is an ellipsis (
"...").
| Command-Line Name: | -sortcommand |
| Database Name: | sortCommand |
| Database Class: | SortCommand |
Specifies a command to be used for the comparison of the items when invoking the
sortsubcommand of the Tcl command associated with the tablelist widget. To compare two items (viewed as lists of cell contents within one row each) during thesortoperation, the command is automatically concatenated with the two items and the resulting script is evaluated. The script should return an integer less than, equal to, or greater than zero if the first item is to be considered less than, equal to, or greater than the second, respectively.
| Command-Line Name: | -spacing |
| Database Name: | spacing |
| Database Class: | Spacing |
Specifies additional space to provide above and below each row of the widget. The option's value may have any of the standard forms for screen distances. It defaults to
0.
| Command-Line Name: | -state |
| Database Name: | state |
| Database Class: | State |
Specifies one of two states for the tablelist widget:
normalordisabled. If the widget is disabled then neither items nor columns may be inserted, deleted, updated, or moved, the items, header labels, and the up- or down-arrow are drawn in the-disabledforeground,-labeldisabledforeground, and-arrowdisabledcolorcolor, respectively, the selection cannot be modified and is not shown (although the selection information is retained), the header labels are completely insensitive, and no interactive cell editing can be performed.
| Command-Line Name: | -stretch |
| Database Name: | stretch |
| Database Class: | Stretch |
Specifies the columns to be stretched in order to fill the tablelist window if necessary. The option's value may be
allor a list of column indices in any of the forms described in the COLUMN INDICES section below. In the second case, the specified column indices are replaced with their numerical equivalents, except for the indexend, which is viewed as a dynamic column index whose numerical equivalent might change during program execution and therefore will be recomputed every time the columns are stretched. The list will be updated automatically whenever columns are inserted, deleted, or moved. The number of pixels by which a column is stretched is proportional to its width in pixels. The default value of this option is an empty list, meaning that no column will be stretched to eliminate the blank space that might appear at the right of the table. (Note that the blank space following the header labels is filled with a dummy, insensitive label having the same background, borderwidth, and relief as the "normal" header labels.) This option is ignored if the value of the-widthconfiguration option is zero or less.
| Command-Line Name: | -stripebackground or
-stripebg |
| Database Name: | stripeBackground |
| Database Class: | Background |
Specifies the background color to use when displaying the items belonging to a stripe. Each stripe is composed of the same number
stripeHeightof consecutive items, according to the value of the-stripeheightconfiguration option. The firststripeHeightitems are "normal" ones; they are followed by a stripe composed of the nextstripeHeightitems, which in turn is followed by the same number of "normal" items, and so on. The default value is an empty string, indicating that the stripes will inherit the background color specified by the-backgroundconfiguration option. The-stripebackgroundoption has a higher priority than the-backgroundcolumn configuration option, but a lower priority than the-backgroundoption specified at row or cell level.
| Command-Line Name: | -stripeforeground or
-stripefg |
| Database Name: | stripeForeground |
| Database Class: | Foreground |
Specifies the foreground color to use when displaying the items belonging to a stripe. Each stripe is composed of the same number
stripeHeightof consecutive items, according to the value of the-stripeheightconfiguration option. The firststripeHeightitems are "normal" ones; they are followed by a stripe composed of the nextstripeHeightitems, which in turn is followed by the same number of "normal" items, and so on. The default value is an empty string, indicating that the stripes will inherit the foreground color specified by the-foregroundconfiguration option. The-stripeforegroundoption has a higher priority than the-foregroundcolumn configuration option, but a lower priority than the-foregroundoption specified at row or cell level.
| Command-Line Name: | -stripeheight |
| Database Name: | stripeHeight |
| Database Class: | StripeHeight |
Specifies the number of items in each stripe. If zero or less then no stripes are displayed. The default is
1.
| Command-Line Name: | -takefocus |
| Database Name: | takeFocus |
| Database Class: | TakeFocus |
This option determines whether the widget accepts the focus during keyboard traversal. It is almost identical to the standard option with the same name (see the options manual entry for details). The only difference is that not the widget itself but its body child (containing the items) will receive the focus during keyboard traversal with the standard keys (
TabandShift-Tab).
| Command-Line Name: | -targetcolor |
| Database Name: | targetColor |
| Database Class: | TargetColor |
Specifies the color of the temporary gap displayed in the tablelist's body or header to indicate the target position when moving a row or column interactively. The default value is
black.
| Command-Line Name: | -titlecolumns |
| Database Name: | titleColumns |
| Database Class: | TitleColumns |
Specifies the number of the non-scrollable columns at the left edge of the window, also called title columns. The positions of these columns will not change when adjusting the horizontal view by invoking the
scan,seecell,seecolumn, orxviewsubcommand. The default value is0. The value of this option also determines the scrolling unit used by the commands mentioned above when shifting the horizontal view: if it is positive then the horizontal scrolling is performed column-wise, otherwise by character units (the width of the0character).The end of the title column area is visualized with the aid of a separator, attached to the right edge of the header label corresponding to the last non-hidden title column. This special separator is always displayed to mark the end of the title columns (if any), independently of the value of the
-showseparatorsoption. The user can easily distinguish it from the other separators by means of its background color, which is different from that of the other separator frames.For technical reasons (the use of the
-elideoption for a text widget tag), this option is not supported for Tk versions earlier than 8.3.
| Command-Line Name: | -width |
| Database Name: | width |
| Database Class: | Width |
Specifies the desired width for the window, in average-size characters of the widget's font. If zero or less then the desired width for the window is made just large enough to hold all the columns in the tablelist widget.
tablelist::tablelist command creates a
new window named pathName and of the class
Tablelist, and makes it into a tablelist
widget. Additional options, described above, may be specified
on the command line or in the option database to configure aspects
of the tablelist such as its colors, font, and columns. The
tablelist::tablelist command returns its
pathName argument. At the time this
command is invoked, there must not exist a window named
pathName, but pathName's
parent must exist.-exportselection option),
then it will observe the standard X11 protocols for handling the
selection. Tablelist widget selections are available as types
STRING and UTF8_STRING; the
value of the selection will be a text built by taking all of the
rows having at least one non-hidden selected element, joining these
elements together with tabs, and the resulting strings in turn with
newlines. If a tablelist widget that is exporting its
selection is the selection owner and some other window claims
ownership of the selection away from it, then the virtual event
<<TablelistSelectionLost>> is
generated.-xscrollcommand and
-yscrollcommand options. They also
support scanning, as described below.-background, -font,
-foreground,
-selectbackground, and
-selectforeground options can also be specified
at column, row, and cell level, by using the columnconfigure, rowconfigure, and cellconfigure subcommands of
the Tcl command associated with the tablelist widget. For
this reason, a particular cell can have up to four values for one
and the same color or font option. If these values conflict,
then the option specified at the highest priority level is
used. The decreasing priority order is cell, row, column,
widget.
If one of these options hasn't been specified at cell, row, or column level, or if its value for that level is an empty string (this is explicitly allowed), then that option will not be used at that particular level.
columncget and
columnconfigure
commands:-align alignmentleft, right,
or center. This option also refers to the
column's title if the -labelalign option hasn't been
specified for the given column, or if its value is an empty
string. The -align option is tied to the
alignment element corresponding to this column
in the list specifying the value of the -columns option for the tablelist widget;
changes in either will automatically be reflected in the other.
-background color or
-bg color-editable boolean0. The
value of this option can be overridden for individual cells by
using the cell configuration option with the same name.
-editwindow namename may be one of
entry (which is the default),
spinbox (for Tk version 8.4 or higher),
checkbutton, ttk::entry,
ttk::combobox, or
ttk::checkbutton (the latter three only in the
presence of the tile widget engine), or the value returned by one
of the registration commands for widgets from the packages BWidget, Iwidgets, combobox (by Bryan Oakley), and Mentry. For example, you can
use -editwindow ComboBox
after registering the ComboBox widget for interactive cell
editing with the aid of the tablelist::addBWidgetComboBox
command. Similarly, you can use -editwindow
combobox after registering Bryan Oakley's
combobox widget for interactive cell editing by invoking the
tablelist::addOakleyCombobox
command.
-font font-foreground color or
-fg color-formatcommand commandcommand is a nonempty string, then it is
automatically concatenated with the cell's text, the resulting
script is evaluated in the global scope, and the return value is
displayed in the cell or added to the selection instead of the
original data. For example, if a time value in seconds is
being inserted into the cell and command is the
procedure formatDate defined as
proc formatDate clockVal { return [clock format $clockVal -format "%Y-%m-%d"] }
then the text displayed in the cell will be the date in the
specified format, not the time value in seconds. Notice that
this option is only used for preparing the text to be displayed or
returned when exporting the selection, and does not affect the
internal cell contents. For example, the get, getcolumns, getcells, rowcget, cellcget, sort, and sortbycolumn subcommands all operate
on the original cell text, which is contained in the widget's
internal list. In the case of the above example, this will
make it possible to sort the items very easily by time, with a
second's precision, even if their visual representation only
contains the year, month, and day.
The -formatcommand option comes in handy if
only images or embedded windows are to be displayed in a column but
the texts associated with the cells may not simply be empty strings
because they are needed for other purposes (like sorting or
editing). In such cases, a procedure returning an empty
string can be used as the option's value, thus making sure that the
textual information contained in that column remains hidden.
-hide boolean0.
-labelalign alignmentleft, right, or
center, or an empty string. If this
option hasn't been specified for the given column, or if its value
is an empty string, then the header title will have the same
alignment as the elements of the column, as given by the
-align column
configuration option or by the alignment
element corresponding to this column in the list specifying the
value of the -columns
global option.
-labelbackground color or
-labelbg color-labelborderwidth screenDistance or
-labelbd screenDistance-labelcommand command-labelfont fontName-labelforeground color or
-labelfg color-labelheight lines-labelpady screenDistance-labelrelief relief-labelactivebackground,
-labelactiveforeground, and
-labeldisabledforeground
options are only defined at widget level; there are no column
configuration options with these names. The
-labelheight option is only supported by the
Tablelist package, but not by Tablelist_tile.
-labelimage imageimage must be the result of
an invocation of the image create
command, or an empty string, specifying that no image is to be
displayed. If the label's text is right-aligned then the
image will be displayed to the right of the text, otherwise to its
left. The text and the image are separated from each other by
a gap corresponding to the width of a space character in the given
label's font.
-maxwidth widthwidth must be a number. A positive
value specifies the column's maximum width in average-size
characters of the widget's font. If width
is negative, its absolute value is interpreted as a maximum column
width in pixels. Finally, a value of zero (which is the
default) specifies that the column's maximum width is to be made
just large enough to hold all the elements in the column, including
its header. This option is only relevant if the given column
has dynamic width, i.e., if its width was set to 0.
-name namerow,col, as described in the CELL INDICES section. To avoid
ambiguities, column names should be different from any other forms
of column indices (like numbers, active,
anchor, end, or any of
their abbreviations). They should also be different from (any
abbreviations of) the string all, which may be
specified as the value of the -stretch configuration option. The
default value is an empty string.
-resizable boolean1. This option is only relevant if the value of
the -resizablecolumns widget
configuration option is true.
-selectbackground color-selectforeground color-showarrow booleansortbycolumn command with the given
column index as first argument should place an arrow indicating the
sort order into the column's label. The default value is
1. This option is only relevant if the value of
the -showarrow widget
configuration option is true.
-sortcommand command-sortmode option for the given
column is command. It specifies a command
to be used for the comparison of the column's elements when
invoking the sortbycolumn command with the given
column index as first argument. To compare two elements
during the sortbycolumn operation,
command is automatically concatenated with the
two elements and the resulting script is evaluated. The
script should return an integer less than, equal to, or greater
than zero if the first element is to be considered less than, equal
to, or greater than the second, respectively.
-sortmode modesortbycolumn
command with the given column index as first argument.
mode may have any of the following values:
ascii |
Use string comparison with ASCII collation order. This is
the default. |
command |
Use the command specified by the -sortcommand column configuration
option to compare the column's elements. |
dictionary |
Use dictionary-style comparison. This is the same as
ascii, except: (a) case is ignored except as a
tie-breaker; (b) if two strings contain embedded numbers, the
numbers compare as integers, not characters. For example,
bigBoy sorts between bigbang and
bigboy, and x10y sorts between
x9y and x11y. |
integer |
Convert the elements to integers and use integer
comparison. |
real |
Convert the elements to floating-point values and use floating-point comparison. |
-stretchable boolean-stretch option for the tablelist widget;
changes in either will automatically be reflected in the other.
-text liststate is disabled then
this option will be ignored.
-title titletitle
element corresponding to the given column in the list specifying
the value of the -columns option for the tablelist widget;
changes in either will automatically be reflected in the other.
-width widthwidth must be a number. A positive
value specifies the column's width in average-size characters of
the widget's font. If width is negative,
its absolute value is interpreted as a column width in
pixels. Finally, a value of zero specifies that the column's
width is to be made just large enough to hold all the elements in
the column, including its header (but no larger than the maximum
width indicated by the -maxwidth column configuration
option). This option is tied to the width
element corresponding to the given column in the list specifying
the value of the -columns option for the tablelist widget;
changes in either will automatically be reflected in the
other.-background, -font,
-foreground,
-selectbackground, and
-selectforeground column configuration options
override the options with the same names set at widget level (but
not the ones set at cell or row level) if the specified value is
not an empty string. See the COLORS AND FONTS section for further
details on these options.rowcget and rowconfigure commands:-background color or
-bg color-font font-foreground color or
-fg color-name namerow,col, as
described in the CELL INDICES
section. To avoid ambiguities, row names should be different
from any other forms of row indices (like numbers, keys,
active, anchor,
end, or any of their abbreviations). The
default value is an empty string.
-selectable boolean1. If
the value 0 was given then any attempt to select the
item contained in this row with the aid of the selection set widget command
or any of its elements by using the cellselection set command
will be silently ignored; moreover, an existing old (cell)
selection is removed from the row.
-selectbackground color-selectforeground color-text liststate is
disabled then this option will be ignored.-background, -font,
-foreground,
-selectbackground, and
-selectforeground row configuration options
override the options with the same names set at column or widget
level (but not the ones set at cell level) if the specified value
is not an empty string. See the COLORS AND FONTS section for further
details on these options.cellcget and
cellconfigure
commands:-background color or
-bg color-editable boolean0.
This option overrides the one with the same name for the column
containing the given cell.
-editwindow nameentry. This option overrides the
one with the same name for the column containing the given cell,
and may have the same values as its column-related counterpart.
-font font-foreground color or
-fg color-image imageimage must be the result of an
invocation of the image create
command, or an empty string, specifying that no image is to be
displayed. If the column containing the cell is right-aligned
then the image will be displayed to the right of the cell's text,
otherwise to its left. The text and the image are separated
from each other by a space character. If for the same cell
the -window option
was specified with a nonempty value then it overrides the
-image option. If the tablelist's
state is
disabled then this option will be ignored.
To display an image in a cell, Tablelist makes use of an embedded label widget. This requires more memory than inserting the image directly into the tablelist's body, but has the main advantage of making it possible to adjust the width of the label containing the widget to fit into its column. This has the visual effect of cutting off part of the image from its right side. To make sure that images with transparent background will be displayed correctly, the background color of the label widgets containing the embedded images is automatically updated whenever necessary.
-selectbackground color-selectforeground color-text textstate is
disabled then this option will be ignored.
-window commandcommand may also be an empty string, specifying
that no embedded window is to be displayed. If the column
containing the cell is right-aligned then the window will be
displayed to the right of the cell's text, otherwise to its
left. The text and the window are separated from each other
by a space character. If this option was specified with a
nonempty value then it overrides the -image cell configuration
option. If the tablelist's state is disabled then
this option will be ignored.
There are several situations where the embedded window will be destroyed and later recreated by invoking the script mentioned above. For example, when changing the value of some of the tablelist widget or column configuration options, sorting the items, or moving a row or a column, the widget's contents will be redisplayed, which makes it necessary to recreate the embedded windows. This operation won't preserve the changes made on the embedded windows after their creation. For this reason, you should avoid any changes on embedded windows outside their creation scripts.
-windowdestroy command<Destroy> event from within its creation
script, specified as the value of the -window cell configuration
option.-background, -font,
-foreground,
-selectbackground, and
-selectforeground cell configuration options
override the options with the same names set at row, column, or
widget level if the specified value is not an empty string.
See the COLORS AND FONTS section
for further details on these options.-editable option on both cell and column
level. If the cell-level option was set explicitly then its
value determines the editability of the cell's contents.
Otherwise the value of the column-level option is used to decide
whether the cell can be edited interactively. From this rule
it follows that you can enable interactive cell editing for a whole
column by setting its -editable option to
true. To exclude some of the column's cells from interactive
editing, set their -editable option to
false.editcell subcommand, which is
invoked implicitly by clicking with the left mouse button into an
editable cell or using keyboard navigation to move from one
editable cell into another. If the selection type is
cell and the location cursor is in an editable
cell, then the interactive editing of the active element can also
be started by pressing Return or
KP_Enter. Per default, the
editcell subcommand creates a temporary entry
widget and embeds it into the cell whose index was passed to it as
argument. You can, however, use the
-editwindow column or cell
configuration option to specify another widget instead of an entry,
like a Tk core spinbox or checkbutton, or a tile entry, combobox,
or checkbutton, or one of the 16 currently supported widgets from
the packages BWidget, Iwidgets, combobox (by Bryan Oakley), and Mentry. Before specifying a
widget from one of these library packages as the value of the
-editwindow column or cell configuration
option, you must register it for interactive cell editing by
invoking the corresponding tablelist::add*
command. The Tk core entry, spinbox, and checkbutton widgets,
as well as the tile entry, combobox, and checkbutton widgets are
automatically registered for cell editing.-formatcommand option of the
cell's column. However, if the value of the -editstartcommand configuration
option is a nonempty string, then the text displayed in the cell is
passed to that command as its last argument (following the
tablelist's path name as well as the cell's row and column
indices), the resulting script is evaluated in the global scope,
and the return value becomes the edit window's contents. From
within this script you can invoke the cancelediting subcommand, which
destroys the temporary embedded widget and cancels the editing of
its contents. The main goal of this script is, however, to
enable you to define validations for the editing process.
This can be done either with the aid of the options for entry
validation, supported by Tk versions 8.3 and higher (see the
entry reference page), or by using the widget callback
package Wcb, available for Tk
versions 8.0 and higher. The Iwidgets package (available for
Tk versions 8.0 or higher) provides its own validation facilities,
which can equally be used if the edit window is a widget belonging
to that extension. In either case, you will need the path
name of the temporary embedded widget or that of its entry or
entry-like component; use the editwinpath and entrypath subcommands to get these path
names. Another purpose of the command indicated by the
-editstartcommand option is to enable you to
prepare the edit window in various other ways. For example,
if the latter is a combobox widget then you can set its
-editable option to false or (for a tile
combobox) set its state to readonly, and you
will have to populate its listbox component. In the same
script, you can change some of the embedded widget's visual
attributes (like its background, selection background, or selection
foreground color). (Notice that this can also be done with
the aid of the Tk option database.)Control-i inserts a tab, while
Control-j, Control-Return, and
Control-KP_Enter insert a newline.
Tab and Shift-Tab are used for navigation
between the editable cells, just like Alt-Left,
Alt-Right, Alt-Up, Alt-Down,
Alt-Prior, Alt-Next,
Control-Home, and Control-End. (On
the Macintosh the Command key is used instead of
Alt.) The editing can be aborted with the
Escape key (or by invoking the cancelediting subcommand) and
terminated normally with Return or
KP_Enter (the bindigs for these keys just invoke the
finishediting
subcommand). Normal termination is also triggered by clicking
with the left mouse button anywhere in the tablelist's body,
outside the cell just being edited, or moving into another editable
cell by using keyboard navigation.-editendcommand configuration
option is a nonempty string, then the edit window's final text is
passed to that command as its last argument (following the
tablelist's path name as well as the cell's row and column
indices), the resulting script is evaluated in the global scope,
and the return value becomes the cell's new internal contents after
destroying the temporary embedded widget. The main goal of
this script is to enable you to do a final validation of the edit
window's contents. From within this script you can invoke the
rejectinput
subcommand, which prevents the script's return value from becoming
the cell's new contents; this subcommand also prevents the
destruction of the temporary embedded widget. Another purpose
of the command indicated by the -editendcommand
option is to convert the edit window's text to the cell's new
internal contents, which is necessary if, due to the
-formatcommand
column configuration option, the cell's internal value is different
from its external representation. See the description of the
-forceeditendcommand option
for more about the invocation of the command mentioned above.
number |
Specifies the item as a numerical index, where 0
corresponds to the first item in the tablelist. |
knumber |
Specifies the item by its full key, composed of the letter
k and the sequence number associated with the
item, as returned by the getkeys widget command. |
active |
Indicates the item containing the element that has the location
cursor. Depending on the selection type, this item as a whole
or just its element having the location cursor will be displayed
according to the value of the -activestyle configuration option
when the tablelist has the keyboard focus. This item is
specified with the activate widget command or as the row
containing the element specified with the activatecell widget command. |
anchor |
Indicates the anchor point for the row selection, which is set
with the selection
anchor widget command, or the row containing
the anchor point for the cell selection, which is set with
the cellselection
anchor widget command. |
end |
Indicates the end of the tablelist. For most commands
this refers to the last item in the tablelist, but for a few
commands such as index,
insert, and insertlist, as well as for the
target of the move command
it refers to the item just after the last one. |
@x,y |
Indicates the item that covers the point in the tablelist
window specified by x and y
(in pixel coordinates). If no item covers that point, then
the closest item to that point is used. The coordinates
x and y are expected to be
relative to the tablelist window itself (not its body
component). |
name |
Specifies the row by the value of its -name configuration option.
name must be different from all the above row
indices, and should be unique (if several rows have the same name
then this value is considered to indicate the first matching
row). |
In the widget command descriptions below, arguments named
index, first, and
last always contain row indices in one of the
above forms.
number |
Specifies the column as a numerical index, where 0
corresponds to the first column in the tablelist. |
active |
Indicates the column containing the element that has the
location cursor. If the selection type is
cell then this element will be displayed
according to the value of the -activestyle configuration option
when the tablelist has the keyboard focus. This element is
specified with the activatecell widget command. |
anchor |
Indicates the column containing the anchor point for the cell
selection, which is set with the cellselection anchor widget
command. |
end |
Indicates the last column of the tablelist, except for the
commands insertcolumns and insertcolumnlist, as well as for
the target of the movecolumn command, in which cases it
refers to the column just after the last one. |
@x,y |
Indicates the column that covers the point in the tablelist
window specified by x and y
(in pixel coordinates). If no column covers that point, then
the closest column to that point is used. The coordinates
x and y are expected to be
relative to the tablelist window itself (not its body
component). |
name |
Specifies the column by the value of its -name configuration option.
name must be different from all the above
column indices, and should be unique (if several columns have the
same name then this value is considered to indicate the first
matching column). |
row,col |
Indicates the cell having the row index row
and column index col.
row may be a number, a full key (of the form
knumber), active,
anchor, end (where the
latter indicates the last row in the tablelist), or a row
name. col may be a number,
active, anchor,
end, or a column name. |
active |
Indicates the element that has the location cursor. If
the selection type is cell then this element
will be displayed according to the value of the -activestyle configuration option
when the tablelist has the keyboard focus. This element is
specified with the activatecell widget command. |
anchor |
Indicates the anchor point for the cell selection, which is set
with the cellselection
anchor widget command. |
end |
Indicates the last cell in the last row of the tablelist. |
@x,y |
Indicates the cell that covers the point in the tablelist
window specified by x and y
(in pixel coordinates). If no cell covers that point, then
the closest cell to that point is used. The coordinates
x and y are expected to be
relative to the tablelist window itself (not its body
component). |
tablelist::tablelist 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 tablelist widgets:pathName activate indexindex if the tablelist's state is not
disabled. If index is
outside the range of items in the tablelist then the closest item
is activated. The active item is drawn as specified by the
-activestyle
configuration option when the widget has the input focus and the
selection type is row. Its index may be
retrieved with the index active. Returns
an empty string.
pathName activatecell
cellIndexcellIndex if the tablelist's state is not
disabled. If
cellIndex is outside the range of elements in
the tablelist or it refers to a hidden element, then the closest
non-hidden element is activated. The active element is drawn
as specified by the -activestyle configuration option
when the widget has the input focus and the selection type is
cell. Its index may be retrieved with the
cell index active. Returns an empty
string.
pathName attrib ?name? ?value
name value ...?name is specified, the command returns a list
of pairs, each of which contains the name and the value of an
attribute for pathName. If
name is specified with no
value, then the command returns the value of
the one named attribute. If one or more
name-value pairs are
specified, then the command sets the given widget attribute(s) to
the given value(s); in this case the return value is an empty
string. name may be an arbitrary string.
pathName bbox indexpathName bodypathpathName bodytagTablelistBody in the list of
binding tags of the tablelist descendants mentioned above.
pathName canceleditingeditcell subcommand, destroys the
temporary widget embedded into the cell, and restores the original
cell contents. This command enables you to cancel the
interactive cell editing from within the Tcl command specified by
the -editstartcommand configuration
option if that pre-edit callback encounters an error when preparing
the text to be inserted into the edit window. The command is
also invoked implicitly by pressing the Escape key
when a cell is being edited. The return value is an empty
string. Immediately before returning this value, the command
generates the virtual event
<<TablelistCellRestored>>. If
no cell was being edited when the command was invoked then an empty
string is returned without generating a virtual event.
pathName cellcget cellIndex
optionoption for the cell specified by
cellIndex. option may
have any of the values accepted by the cellconfigure command.
pathName cellconfigure cellIndex
?option? ?value option value
...?cellIndex. If no
option is specified, the command returns a list
describing all of the available options for the cell (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 cell option(s) to
have the given value(s); in this case the return value is an empty
string. option may have any of the values
described in the CELL CONFIGURATION
OPTIONS section.
pathName cellindex
cellIndexcellIndex, in the form
row,col, where
row and col are integers.
pathName cellselection option
argsoption:pathName cellselection anchor
cellIndexcellIndex. If
cellIndex refers to a nonexistent or hidden
element, then the closest non-hidden element is used. The
cell selection anchor is the end of the cell selection that is
fixed while dragging out a cell selection with the mouse if the
selection type is cell. The cell index
anchor may be used to refer to the anchor
element.pathName cellselection clear
firstCell lastCellpathName cellselection clear
cellIndexListfirstCell
and lastCell (inclusive) or corresponding to
the cell indices specified by the list
cellIndexList are selected, they are
deselected. The selection state is not changed for elements
outside the range given in the first form of the command or
different from those specified by the cell index list given in its
second form.pathName cellselection includes
cellIndex1 if the element indicated by
cellIndex is currently selected, 0
if it isn't.pathName cellselection set
firstCell lastCellpathName cellselection set
cellIndexListfirstCell and lastCell,
inclusive, or corresponding to the indices specified by the list
cellIndexList, without affecting the selection
state of any other elements. An element is viewed as
selectable if and only if the value of the -selectable option of the row
containing it is true.state is disabled and
option is different from
includes then the command just returns an empty
string, without performing any of the above actions.pathName cget optionoption, which may have any of the values
accepted by the tablelist::tablelist command.
pathName columncget columnIndex
optionoption for the column specified by
columnIndex. option
may have any of the values accepted by the columnconfigure command.
pathName columnconfigure columnIndex
?option? ?value option value
...?columnIndex. If no
option is specified, the command returns a list
describing all of the available options for the column (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 column option(s) to
have the given value(s); in this case the return value is an empty
string. option may have any of the values
described in the COLUMN CONFIGURATION
OPTIONS section.
pathName columncountpathName columnindex
columnIndexcolumnIndex.
pathName configure ?option?
?value option value ...?option is specified, the
command 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 return value is an empty
string. option may have any of the values
accepted by the tablelist::tablelist command.
pathName containing y-1. The coordinate
y is expected to be relative to the tablelist
window itself (not its body component).
pathName containingcell x
y-1. The coordinates
x and y are expected to be
relative to the tablelist window itself (not its body component).
pathName containingcolumn
x-1. The coordinate
x is expected to be relative to the tablelist
window itself (not its body component).
pathName curcellselectionrow,col, where row
and col are numbers) of all of the non-hidden
elements in the tablelist that are currently selected. If
there are no such elements in the tablelist then an empty string is
returned.
pathName curselectionpathName delete first
lastpathName delete indexListstate is not
disabled. In the first form of the
command, first and last are
indices specifying the first and last items in the range to
delete. The command's second form accepts a list
indexList of indices specifying the items to be
deleted. Returns an empty string.
pathName deletecolumns firstColumn
lastColumnpathName deletecolumns
columnIndexListstate is not
disabled. In the first form of the
command, firstColumn and
lastColumn are indices specifying the first and
last columns in the range to delete. The command's second
form accepts a list columnIndexList of indices
specifying the columns to be deleted. Returns an empty
string.
pathName editcell
cellIndexstate is not
disabled, the cell's column is not hidden, and
the cell is editable. Returns an empty string. See the
INTERACTIVE CELL EDITING section for
details on editablity and on the editing process.
pathName editwinpatheditcell subcommand. If no cell is
currently being edited then the return value is an empty
string. This subcommand enables you to access the edit window
from within the commands specified by the -editstartcommand and
-editendcommand
configuration options.
pathName entrypatheditcell
subcommand. If no cell is currently being edited or the
editing is taking place with the aid of a Tk or tile checkbutton or
mentry widget then the return value is an empty string; otherwise
it is the path name of a Tk or tile entry, spinbox, or BWidget
Entry widget, which can be the edit window itself or one of its
descendants. This subcommand enables you to access the entry
or entry-like component of the temporary embedded widget from
within the commands specified by the -editstartcommand and
-editendcommand
configuration options.
pathName fillcolumn columnIndex
texttext.
pathName finisheditingeditcell subcommand by
destroying the temporary widget embedded into the cell and updating
the cell's contents. The exact steps involved are as
follows: First, the widget's final text is compared to its
original one. If they are equal then the edit window is
destroyed and the cell's original contents are restored. If
the two strings are different and the value of the -editendcommand configuration
option is a nonempty string, then the widget's final text is passed
to that command as its last argument (following the tablelist's
path name as well as the cell's row and column indices), the
resulting script is evaluated in the global scope, and the return
value becomes the cell's new contents after destroying the edit
window. However, if from within this script the rejectinput subcommand was
invoked then the cell's value is not changed and the embedded
widget remains displayed in the cell; in this case the command
returns the boolean value 0. In all the other
cases, the return value is 1. Immediately before
returning the value 1, the command generates the
virtual event
<<TablelistCellUpdated>>. If
no cell was being edited when the command was invoked then the same
value 1 is returned but no virtual event is generated.
This subcommand is called implicitly by pressing
Return or KP_Enter when editing a cell,
or by clicking with the left mouse button anywhere in the
tablelist's body, outside the cell just being edited, or moving
into another editable cell by using keyboard navigation.
pathName get first
lastpathName get indexListfirst and last,
inclusive. The value returned by the second form depends on
the number of elements in the list indexList:
if the latter contains exactly one index then the return value is
the tablelist item indicated by that index (or an empty string if
the index refers to a non-existent item); otherwise the command
returns the list of all of the tablelist items corresponding to the
indices specified by indexList.
pathName getcells firstCell
lastCellpathName getcells
cellIndexListfirstCell and lastCell,
inclusive. The value returned by the second form depends on
the number of elements in the list
cellIndexList: if the latter contains exactly
one cell index then the return value is the tablelist element
indicated by that cell index; otherwise the command returns the
list of all of the tablelist elements corresponding to the cell
indices specified by cellIndexList.
pathName getcolumns firstColumn
lastColumnpathName getcolumns
columnIndexListfirstColumn and
lastColumn, inclusive, and consists of all of
the tablelist elements contained in that column. The value
returned by the second form depends on the number of elements in
the list columnIndexList: if the latter
contains exactly one column index then the return value is a list
consisting of all of the tablelist elements contained in the column
indicated by that column index; otherwise the command returns a
list whose elements are lists themselves, where each of the
sublists corresponds to exactly one column index in
columnIndexList and consists of all of the
tablelist elements contained in that column.
pathName getkeys first
lastpathName getkeys indexListfirst and last,
inclusive. The value returned by the second form depends on
the number of elements in the list indexList:
if the latter contains exactly one index then the return value is
the sequence number associated with the tablelist item indicated by
that index (or an empty string if the index refers to a
non-existent item); otherwise the command returns the list of all
of the sequence numbers associated with the tablelist items
corresponding to the indices specified by
indexList. Each item of a tablelist
widget has a unique sequence number that remains unchanged until
the item is deleted, thus acting as a key that uniquely identifies
the item even if the latter's position (i.e., row index)
changes. This command provides read-only access to these
internal item IDs.
pathName imagelabelpath
cellIndexcellIndex, as
specified with the -image option of the cellconfigure subcommand. If
no image is currently embedded into the cell then the return value
is an empty string.
pathName index indexindex. If index is
end then the return value is the number of
items in the tablelist (not the index of the last item).
pathName insert index ?item
item ...?index if the
tablelist's state is not
disabled. If index
equals the number of items or is specified as
end then the new items are added to the end of
the widget's list. Tabulator and newline characters are
displayed as \t and \n (i.e., a backslash
followed by a t and n, respectively), but
are inserted unchanged into the internal list. The return
value is an empty string.
pathName insertcolumnlist
columnIndex columnListcolumnList just before the column given by
columnIndex if the tablelist's state is not
disabled. If
columnIndex equals the number of columns or is
specified as end then the new columns are added
to the end of the column list. The argument
columnList must be a list containing the width,
title, and optional alignment specifications for the new columns,
in the same form as in the case of the -columns configuration option. The
return value is an empty string. The elements of the new
columns are initially empty strings; the easiest way to change
these values is to use the fillcolumn subcommand or the
-text column
configuration option. This command has the same effect as
eval [list $pathName insertcolumns $columnIndex] $columnList
but it is more efficient and easier to use.
pathName insertcolumns columnIndex
?width title ?alignment? width
title ?alignment? ...?columnIndex if the tablelist's state is not
disabled. If
columnIndex equals the number of columns or is
specified as end then the new columns are added
to the end of the column list. The arguments following the
column index have the same meanings as in the case of the
-columns configuration
option. The return value is an empty string. The
elements of the new columns are initially empty strings; the
easiest way to change these values is to use the fillcolumn subcommand or the
-text column
configuration option.
pathName insertlist index
itemListitemList in
the widget's internal list just before the item given by
index if the tablelist's state is not
disabled. If index
equals the number of items or is specified as
end then the new items are added to the end of
the widget's list. Tabulator and newline characters are
displayed as \t and \n (i.e., a backslash
followed by a t and n, respectively), but
are inserted unchanged into the internal list. The return
value is an empty string. This command has the same effect as
eval [list $pathName insert $index] $itemList
but it is more efficient and easier to use.
pathName itemlistvarupvar command, like in the following example:
upvar #0 [.tbl itemlistvar] itemList
In this example, the value of the variable itemList
will be the internal list of the tablelist widget
.tbl. Each element of the widget's internal list
corresponds to one item, and it is in turn a list whose elements
correspond to the elements of that item, except that it has one
additional element, holding the item's key.
The itemlistvar command provides an
efficient way of accessing this internal list, instead of
retrieving the items with the get subcommand or using the -listvariable option (these methods
consume significantly more memory). It can be useful in
situations where the elements of a tablelist widget are to be
accessed for creating text files, HTML output, XML data, database
commands, etc. This should, however, be a strictly readonly
access; otherwise the results will be unpredictable!
pathName labelpath
columnIndexcolumnIndex.
pathName labelspathName move source
targetsource just
before the one given by target if the
tablelist's state is not
disabled. If target
equals the nunber of items or is specified as
end then the source item is moved after the
last one. Returns an empty string.
pathName movecolumn sourceColumn
targetColumnsourceColumn
just before the one given by targetColumn if
the tablelist's state is
not disabled. If
targetColumn equals the number of columns or is
specified as end then the source column is
moved after the last one. Returns an empty string.
pathName nearest yy is
expected to be relative to the tablelist window itself (not its
body component).
pathName nearestcell x
yx and y are
expected to be relative to the tablelist window itself (not its
body component).
pathName nearestcolumn xx is
expected to be relative to the tablelist window itself (not its
body component).
pathName rejectinput-editendcommand
configuration option, then this subcommand prevents the termination
of the interactive editing of the contents of the cell whose index
was passed to the editcell subcommand. It invokes
the seecell subcommand
to make sure the respective cell becomes visible (in case it was
scrolled out of view), and sets the focus to the temporary widget
embedded into the cell. This command enables you to reject
the widget's text during the final validation of the string
intended to become the new cell contents.
pathName resetsortinfosortcolumn and sortorder will return -1
and an empty string, respectively. This command also removes
an existing up- or down-arrow displayed in any of the header labels
by an earlier invocation of sortbycolumn. The return value
is an empty string.
pathName rowcget index
optionoption for the row specified by
index. option may
have any of the values accepted by the rowconfigure command.
pathName rowconfigure index
?option? ?value option value
...?index. If no
option is specified, the command returns a list
describing all of the available options for the row (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 row option(s) to
have the given value(s); in this case the return value is an empty
string. option may have any of the values
described in the ROW CONFIGURATION
OPTIONS section.
pathName scan option
argsoption:pathName scan mark x
yx and y and the
current view in the tablelist window; used in conjunction with
later scan dragto
commands. Typically this command is associated with a mouse
button press in the body component of the widget. It returns
an empty string. The coordinates x and
y are expected to be relative to the tablelist
window itself (not its body component).pathName scan dragto x
yx and y arguments to the
last scan mark command for
the widget. It then adjusts the view (the vertical one only
in the body component) by 10 times the difference in
coordinates. This command is typically associated with mouse
motion events in the body component of the widget, to produce the
effect of dragging the table at high speed through the
window. The return value is an empty string. The
coordinates x and y are
expected to be relative to the tablelist window itself (not its
body component).pathName see indexindex is visible. If the item is already
visible then the command has no effect; if the item is near one
edge of the window then the tablelist scrolls to bring the item
into view at the edge; otherwise the tablelist scrolls to center
the item.
pathName seecell
cellIndexcellIndex is visible. If the cell is
already visible then the command has no effect; if the cell is near
one edge of the window then the tablelist scrolls to bring the cell
into view at the edge; otherwise the tablelist scrolls to center
the cell. If the value of the -titlecolumns option is positive
then the centering of the cell is only done vertically; the
horizontal scrolling (which in this case is performed column-wise)
will just bring the cell into view next to the title columns or at
the right edge of the window.
pathName seecolumn
columnIndexcolumnIndex is visible. If the column is
already visible then the command has no effect; if the column is
near one edge of the window then the tablelist scrolls horizontally
to bring the column into view at the edge; otherwise the tablelist
scrolls horizontally to center the column. If the value of
the -titlecolumns
option is positive then the horizontal scrolling (which in this
case is performed column-wise) will just bring the column into view
next to the title columns or at the right edge of the window.
pathName selection option
argsoption:pathName selection anchor
indexindex. If index
refers to a nonexistent item then the closest item is used.
The selection anchor is the end of the selection that is fixed
while dragging out a selection with the mouse if the selection type
is row. The index
anchor may be used to refer to the anchor
item.pathName selection clear
first lastpathName selection clear
indexListfirst and
last (inclusive) or corresponding to the
indices specified by the list indexList contain
at least one non-hidden selected cell, they are deselected.
The selection state is not changed for items outside the range
given in the first form of the command or different from those
specified by the index list given in its second form.pathName selection includes
index1 if the item indicated by
index contains at least one non-hidden selected
cell, 0 if it doesn't.pathName selection set first
lastpathName selection set
indexListfirst and last, inclusive,
or corresponding to the indices specified by the list
indexList, without affecting the selection
state of any other items.state is disabled and
option is different from
includes then the command just returns an empty
string, without performing any of the above actions.pathName separatorpath
?columnIndex?-titlecolumns option is positive and
an empty string otherwise. If the optional argument is
present, then the command returns the path name of the separator
attached to the right edge of the header label indicated by
columnIndex if the value of the -showseparators configuration
option is true and an empty string otherwise.
pathName separators-titlecolumns option is positive
then the first element of the list will be the path name of the
special separator displayed to mark the end of the title
columns. Whether the path names of the other separators are
included in the list, depends on the value of the -showseparators configuration
option.
pathName sizepathName sort
?-increasing|-decreasing?-increasing. Uses the value of the
-sortcommand widget
configuration option as comparison command.
sort also removes an existing up- or down-arrow
displayed in any of the header labels by an earlier invocation of
the sortbycolumn
command. After sorting the items, the command conditionally
adjusts the horizontal view as follows: (a) if interactive cell
editing is in progress then the cell being edited is brought into
view; (b) else, if exactly one item is selected then the view is
shifted to bring that item into view; (c) else, if the tablelist's
body is the most recent window to have the input focus among all
the windows in the same top-level as the widget itself then the
currently active item is brought into view.
pathName sortbycolumn columnIndex
?-increasing|-decreasing?columnIndex, in increasing or decreasing order,
as specified by the optional argument. The default is
-increasing. The sorting process is
controlled by the values of the -sortmode and -sortcommand options for the
given column. If both the value of the -showarrow configuration option and
that of the -showarrow option for the specified
column are true then an up- or down-arrow indicating the sort order
will be placed into the column's label. The shape of the
arrow depends on the command's optional argument and on the value
of the -incrarrowtype configuration
option. If the label's contents are right-aligned then the
arrow will be displayed on the left side of the label, otherwise on
its right side. After sorting the items, the horizontal view
is adjusted in the same way as in the case of the sort subcommand.
pathName sortcolumnsortbycolumn command, or
-1 if they were last sorted with the sort command or haven't been sorted at all,
or the sort information was reset by invoking resetsortinfo.
pathName sortorderincreasing or
decreasing) from the last invocation of the
sort or sortbycolumn command, or an empty
string if the items haven't been sorted at all, or the sort
information was reset by invoking resetsortinfo.
pathName togglevisibility
firstColumn lastColumnpathName togglevisibility
columnIndexList-hide option for one or more columns of
the tablelist. In the first form of the command,
firstColumn and lastColumn
are indices specifying the first and last columns in the range
whose visibility is to be toggled. The command's second form
accepts a list columnIndexList of indices
specifying the columns whose visibility is to be toggled.
Returns an empty string. The main advantage of using this
command instead of invoking columnconfigure for each of the
specified columns is that it causes only one redisplay of the
widget's contents, thus being significantly faster.
pathName windowpath
cellIndexcellIndex, created with the -window option of the
cellconfigure
subcommand. If no window is currently embedded into the cell
then the return value is an empty string.
pathName xview argspathName xview0 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 tablelist's
scrollable text is off-screen to the left, the middle 40% is
visible in the window, and 40% of the scrollable text is off-screen
to the right. These are the same values passed to scrollbars
via the -xscrollcommand option.pathName xview units-titlecolumns option is positive
then this command adjusts the view in the window so that the column
whose offset from the end of the title column area equals
units non-hidden columns is displayed next to
the title columns. Otherwise the command adjusts the view in
the window so that the character position given by
units is displayed at the left edge of the
window. Character positions are defined by the width of the
character 0.pathName xview moveto
fractionfraction of the total width of the scrollable
tablelist text is off-screen to the left.
fraction must be a fraction between
0 and 1.pathName xview scroll number
whatnumber 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 columns or character units (the width of
the 0 character) on the display, depending on
the value of the -titlecolumns option; if
what is pages then the view
adjusts by number screenfuls. If
number is negative then columns or characters
farther to the left become visible; if it is positive then columns
or characters farther to the right become visible.pathName yview argspathName yview0 and 1. The
first element gives the position of the tablelist item at the top
of the window, relative to the tablelist as a whole
(0.5 means it is halfway through the tablelist, for
example). The second element gives the position of the
tablelist item just after the last one in the window, relative to
the tablelist as a whole. These are the same values passed to
scrollbars via the -yscrollcommand option.pathName yview indexindex is displayed at the top of the
window.pathName yview moveto
fractionfraction appears at the top of the
window. fraction is a fraction between
0 and 1; 0 indicates the
first item in the tablelist, 0.33 indicates the item
one-third the way through the tablelist, and so on.pathName yview scroll number
whatnumber 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 up or down by
number lines; if it is
pages then the view adjusts by
number screenfuls. If
number is negative then earlier items become
visible; if it is positive then later items become visible.Text is replaced with
a new binding tag called TablelistBody.
The latter has all the events of the Listbox
widget class, and several of its binding scripts are obtained from
those of Listbox by replacing the event fields
%W, %x, and
%y with the path name of the tablelist widget
and the x and y coordinates relative to the latter. These
values are assigned to the help variables
tablelist::W, tablelist::x,
and tablelist::y by invoking the helper command
tablelist::convEventFields
as follows:
foreach {tablelist::W tablelist::x tablelist::y} \ [tablelist::convEventFields %W %x %y] {}
This conversion of the event fields is necessary because the Tcl
command associated with a tablelist expects any coordinates
relative to the widget itself, not its body component. It
makes use of help variables from the tablelist
namespace in order to avoid any conflicts with global
variables.
Several of the events have no %x and
%y fields; in this case another helper command
tablelist::getTablelistPath
is used to set the help variable tablelist::W
to the path name of the tablelist widget:
set tablelist::W [tablelist::getTablelistPath %W]
The binding tag TablelistBody replaces the
class name (Frame or
TSeparator) of the separator widgets,
too. It also replaces the binding tag
Label of the label widgets used to display
embedded images. This makes sure that the default handling of
the mouse events on the column separators and embedded images is
the same as in the rest of the tablelist's body.
When defining individual bindings for tablelist widgets, the
same conversion of the event fields is needed as for the default
bindings. For example, the binding script below for the
tablelist widget .tbl prints the index of the cell
where mouse button 1 was clicked:
bind [.tbl bodytag] <Button-1> {
foreach {tablelist::W tablelist::x tablelist::y} \
[tablelist::convEventFields %W %x %y] {}
puts "clicked on cell [.tbl containingcell $tablelist::x $tablelist::y]"
}
By associating the script with the binding tag returned by the
bodytag subcommand
instead of just with the path name of the tablelist's body we make
sure to have the same event handling for the separators and
embedded images as for the rest of the tablelist's body.
The bindings associated with the binding tag
TablelistBody, created automatically by the
tablelist::tablelist command, ensure that the
body component of a tablelist has the same default behavior as a
listbox widget. If the selection type is
row (which is the default) then everything
described in the "DEFAULT BINDINGS" section of the listbox
manual entry applies to the body component of a tablelist,
too. The only difference is that the word "element" in that
manual page has to be replaced with "item" when applying the
description to the body of a tablelist widget.
If the selection type is cell then
everything described in the "DEFAULT BINDINGS" section of the
listbox manual entry applies to the body component of a
tablelist, too, with the following extensions and changes:
Tab or Shift-Tab is pressed, the
location cursor (active element) moves to the next/previous
element. If the selection mode is browse
or extended then the new active element is also
selected and all other elements are deselected. In
extended mode the new active element becomes
the selection anchor. Notice that these bindings replace the
common inter-widget navigation via Tab and
Shift-Tab with inter-cell navigation. Just like
in the case of the text widget, Control-Tab and
Control-Shift-Tab are intended to be used for
widget-to-widget keyboard navigation. Unfortunately, this
won't always work because some window managers intercept the latter
key sequences and use them for their own purposes (like
inter-workplace navigation). For this reason, Tablelist
supports the additional key sequences Meta-Tab and
Meta-Shift-Tab as replacements for
Control-Tab and Control-Shift-Tab,
respectively.Left or Right key is pressed,
the location cursor (active element) moves to the previous/next
element of the active row. If the selection mode is
browse or extended then the
new active element is also selected and all other elements are
deselected. In extended mode the new
active element becomes the selection anchor.extended mode, Shift-Left
and Shift-Right move the location cursor (active
element) to the previous/next element of the active row and also
extend the selection to that element in a fashion similar to
dragging with mouse button 1.Home or End key is pressed,
the location cursor (active element) moves to the first/last
element of the active row, the new active element is selected, and
all other elements are deselected.extended mode, Shift-Home
and Shift-End extend the selection to the first/last
element of the active row. In multiple
mode, Shift-Home and Shift-End move the
location cursor to the first/last element of the active row.Return and KP_Enter start the interactive
editing of the active element.Just like in the case of the listbox widget, any changes to the
selection will automatically generate the virtual event
<<ListboxSelect>>. Instead of
this event (which is supported for compatibility reasons), the
virtual event <<TablelistSelect>>
can be used to be made aware of any changes to tablelist
selection. Both events will be generated independently of the
selection type.
The following binding associated with the binding tag
TablelistBody is only valid if the selection
mode is single or
multiple: If mouse button 1 is clicked on
an item and then dragged outside that item, and the value of the
-movablerows
configuration option is true, then the mouse cursor takes on the
shape specified by the -movecursor option, indicating that
the item in question is being moved to another position, visualized
with the aid of a gap placed before the target item. This
operation ends when mouse button 1 is released, and can be canceled
by pressing the Escape key. In both cases, the
mouse cursor is reset to its original value, specified by the
-cursor configuration option. After
releasing mouse button 1, the source item is moved before the one
indicated by the gap mentioned above and the virtual event
<<TablelistRowMoved>> is
generated.
tablelist::tablelist command
automatically creates the following bindings for the header labels:
-resizablecolumns configuration
option and that of the -resizable option for the column
corresponding to that label are true, then the mouse cursor takes
on the shape specified by the -resizecursor option. By
clicking mouse button 1 in this area and moving the mouse while its
button 1 is down, the column corresponding to that label will be
resized by the amount of the cursor motion. The interactive
column resizing ends when mouse button 1 is released, and can be
canceled by pressing the Escape key. In both
cases, the mouse cursor is reset to its original value, specified
by the -cursor configuration option.-movablecolumns configuration
option is true, then the mouse cursor takes on the shape specified
by the -movecolumncursor option,
indicating that the column in question is being moved to another
position, visualized with the aid of a gap placed before the label
of the target column. This operation ends when mouse button 1
is released, and can be canceled by pressing the
Escape key when the mouse pointer is outside the
label. In both cases, the mouse cursor is reset to its
original value, specified by the -cursor
configuration option. After releasing mouse button 1, the
source column is moved before the one indicated by the gap
mentioned above and the virtual event
<<TablelistColumnMoved>> is
generated.-labelcommand option is a nonempty
string, then this command is concatenated with the name of the
tablelist widget and the column index of the respective label, and
the resulting script is evaluated in the global scope. If
another nonempty label command was specified at column level by
using the columnconfigure option of the Tcl
command associated with the tablelist widget, then that
column-specific command will be used instead of the global one.
<<Button3>> as
<Button-3> for all windowing systems and
additionally as <Control-Button-1> for
Mac OS Classic and Mac OS X Aqua. If this event occurs over a
header label and both the value of the -resizablecolumns configuration
option and that of the -resizable option for the column
corresponding to that label are true, then the width of that column
is set to zero, i.e., it is made just large enough to hold all the
elements in the column, including the header (but no larger than
the maximum width indicated by the -maxwidth column configuration
option).<<ShiftButton3>> as
<Shift-Button-3> for all windowing
systems and additionally as
<Shift-Control-Button-1> for Mac OS
Classic and Mac OS X Aqua. If this event occurs over a header
label and both the value of the -resizablecolumns configuration
option and that of the -resizable option for the column
corresponding to that label are true, then the width of that column
is set to its last static width (if any).If the tablelist's state is disabled then
none of the above actions occur: the labels are completely
insensitive.
tablelist::tablelist command extends
and partially redefines the bindings of some of the components of
the temporary embedded widget used for interactive cell editing,
which is started by clicking mouse button 1 in an editable cell or
using keyboard navigation to move from one editable cell into
another. If the selection type is cell
and the location cursor is in an editable cell, then the
interactive editing of the active element can also be started by
pressing Return or KP_Enter. The
affected components of the temporary embedded widget depend on the
edit window: the widget itself in case of a Tk or tile checkbutton;
the edit window's entry children in case of a mentry widget; the
only entry or entry-like component of the edit window in all other
cases (see also the entrypath subcommand).
Control-i inserts a tabulator character into the
edit window's entry or entry-like components (if any), at the point
of the insertion cursor.Control-j, Control-Return, and
Control-KP_Enter insert a newline character into the
edit window's entry or entry-like components (if any), at the point
of the insertion cursor.Escape aborts the editing and destroys the edit
window.Return and KP_Enter terminate the
editing and destroy the edit window.Tab and Shift-Tab
terminate the editing in the current cell, move the edit window
into the next/previous editable cell of the tablelist, select the
contents of the edit window's first entry or entry-like component
(if any), and set the insertion cursor to its end. Notice
that these bindings replace the common inter-widget navigation via
Tab and Shift-Tab with inter-cell
navigation. Just like in the case of the text widget,
Control-Tab and Control-Shift-Tab are
intended to be used for widget-to-widget keyboard navigation during
interactive cell editing. Unfortunately, this won't always
work because some window managers intercept the latter key
sequences and use them for their own purposes (like inter-workplace
navigation). For this reason, Tablelist supports the
additional key sequences Meta-Tab and
Meta-Shift-Tab as replacements for
Control-Tab and Control-Shift-Tab,
respectively.Alt-Left/Alt-Right
(Command-Left/Command-Right on the
Macintosh) terminates the editing in the current cell, moves the
edit window into the previous/next editable cell of the row,
selects the contents of the edit window's first entry or entry-like
component (if any), and sets the insertion cursor to its end.
If there is no editable cell to the left/right of the current one
and the edit window has entry or entry-like components, then
Alt-Left/Alt-Right moves the insertion
cursor to the beginning/end of the edit window's text and clears
the selection in it. The key sequence
Meta-Left/Meta-Right has the same effect
as Alt-Left/Alt-Right. If
tk_strictMotif is false then
Meta-b and Meta-f behave the same as
Alt-Left and Alt-Right,
respectively. If the edit window is a Tk or tile checkbutton
widget then Left/Right has the same
effect as Alt-Left/Alt-Right.Alt-Up/Alt-Down
(Command-Up/Command-Down on the
Macintosh) terminates the editing in the current cell, moves the
edit window one line up/down within the column, selects the
contents of the edit window's first entry or entry-like component
(if any), and sets the insertion cursor to its end. The key
sequence Meta-Up/Meta-Down has the same
effect as Alt-Up/Alt-Down. If
tk_strictMotif is false and the edit window is
not an Iwidgets combobox, then Control-p and
Control-n behave the same as Alt-Up and
Alt-Down, respectively. If the edit window is a
Tk or tile entry, Tk or tile checkbutton, BWidget Entry, Iwidgets
entryfield/spinner/spinint, or a mentry widget of type
"FixedPoint", then Up/Down
has the same effect as
Alt-Up/Alt-Down.Alt-Prior/Alt-Next
(Command-Prior/Command-Next on the
Macintosh) terminates the editing in the current cell, moves the
edit window up/down by one page within the column, selects the
contents of the edit window's first entry or entry-like component
(if any), and sets the insertion cursor to its end. The key
sequence Meta-Prior/Meta-Next has the
same effect as Alt-Prior/Alt-Next.
If the edit window is not a BWidget SpinBox, Oakley combobox, or a
mentry widget of type "Date", "Time", or
"IPAddr", then Prior/Next
has the same effect as
Alt-Prior/Alt-Next.Control-Home/Control-End terminates the
editing in the current cell, moves the edit window into the
first/last editable cell of the tablelist, selects the contents of
the edit window's first entry or entry-like component (if any), and
sets the insertion cursor to its end. If
tk_strictMotif is false then
Meta-< and Meta-> behave the same
as Control-Home and Control-End,
respectively.Before moving the edit window, the key sequences mentioned under
6 - 10 move the active item or element and change the
(cell)selection and the (cell)selection anchor in the body of the
tablelist widget. For example, if
Alt-Up/Alt-Down or
Meta-Up/Meta-Down is pressed when editing
a cell that is not the first/last editable cell within its column,
then the active item or element (depending on the selection type)
moves one line up/down. If the selection mode is
browse or extended then the
new active item or element is also selected and all other items or
elements are deselected. In extended mode
the new active item or element becomes the (cell)selection
anchor. This is exactly the same behavior as the one
exhibited by the Up and Down keys in the
tablelist's body.
If the tablelist's state is disabled then
none of the above actions occur.