|
|
|
Contents
Quick Reference
- NAME
tablelist::tablelist - Create and manipulate tablelist
widgets
SYNOPSIS
-
tablelist::tablelist pathName ?options?
- STANDARD OPTIONS
-
-borderwidth -highlightthickness -setgrid
-cursor -relief -xscrollcommand
-exportselection -selectbackground -yscrollcommand
-highlightbackground -selectborderwidth
-highlightcolor -selectforeground
- OPTIONS FOR THE BODY COMPONENT OF THE
WIDGET
-
-background -disabledforeground -font -foreground
- WIDGET-SPECIFIC OPTIONS
-activestyle
frame|none|underline
-arrowcolor
color
-arrowstyle
flat7x4|flat7x5|flat7x7|flat8x5|flat9x5|sunken8x7|sunken10x9|sunken12x11
-arrowdisabledcolor
color
-columns {width title
?left|right|center? width title
?left|right|center? ...}
-columntitles {title
title ...}
-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
-labelcommand2
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
-setfocus
boolean
-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
-tooltipaddcommand
command
-tooltipdelcommand
command
-width characters
DESCRIPTION
COLORS AND FONTS
COLUMN CONFIGURATION OPTIONS
-align
left|right|center
-background
color or -bg
color
-changesnipside
boolean
-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
-labelcommand2
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
-showlinenumbers
boolean
-sortcommand
command
-sortmode
ascii|command|dictionary|integer|real
-stretchable
boolean
-text list
-title title
-width width
-wrap boolean
ROW CONFIGURATION OPTIONS
-background
color or -bg
color
-font font
-foreground
color or -fg
color
-hide boolean
-name name
-selectable
boolean
-selectbackground
color
-selectforeground
color
-text list
CELL CONFIGURATION OPTIONS
-background
color or -bg
color
-editable
boolean
-editwindow
name
-font font
-foreground
color or -fg
color
-image image
-selectbackground
color
-selectforeground
color
-stretchwindow
boolean
-text text
-window
command
-windowdestroy
command
INTERACTIVE CELL EDITING
ROW INDICES
-
number knumber active anchor end @x,y name
- COLUMN INDICES
-
number active anchor end @x,y name
- CELL INDICES
-
row,col active anchor end @x,y
row: number knumber active anchor end name
col: number active anchor end name
- WIDGET COMMAND
pathName activate
index
pathName activatecell
cellIndex
pathName attrib ?name?
?value name value ...?
pathName bbox
index
pathName bodypath
pathName bodytag
pathName cancelediting
pathName cellattrib
cellIndex ?name? ?value name value
...?
pathName cellcget
cellIndex option
pathName cellconfigure
cellIndex ?option? ?value option value
...?
pathName cellindex
cellIndex
-
pathName cellselection
option args
pathName cellselection anchor
cellIndex
pathName cellselection clear
firstCell lastCell
pathName cellselection clear
cellIndexList
pathName cellselection includes
cellIndex
pathName cellselection set
firstCell lastCell
pathName cellselection set
cellIndexList
pathName cget
option
pathName columnattrib
columnIndex ?name? ?value name value
...?
pathName columncget
columnIndex option
pathName columnconfigure columnIndex
?option? ?value option value ...?
pathName columncount
pathName columnindex
columnIndex
pathName columnwidth
columnIndex
?-requested|-stretched|-total?
pathName configcelllist {cellIndex option
value cellIndex option value ...}
pathName configcells
?cellIndex option value cellIndex option
value ...?
pathName configcolumnlist {columnIndex
option value columnIndex option value
...}
pathName configcolumns
?columnIndex option value columnIndex
option value ...?
pathName configrowlist
{index option value index option
value ...}
pathName configrows
?index option value index option
value ...?
pathName configure
?option? ?value option value ...?
pathName containing
y
pathName containingcell x y
pathName containingcolumn x
pathName curcellselection
pathName curselection
pathName delete first
last
pathName delete
indexList
pathName deletecolumns
firstColumn lastColumn
pathName deletecolumns
columnIndexList
pathName editcell
cellIndex
pathName editwintag
pathName editwinpath
pathName entrypath
pathName fillcolumn
columnIndex text
pathName finishediting
pathName formatinfo
pathName get first
last
pathName get
indexList
pathName getcells
firstCell lastCell
pathName getcells
cellIndexList
pathName getcolumns
firstColumn lastColumn
pathName getcolumns
columnIndexList
pathName getkeys
first last
pathName getkeys
indexList
pathName hasattrib
name
pathName hascellattrib
cellIndex name
pathName hascolumnattrib columnIndex
name
pathName hasrowattrib
index name
pathName imagelabelpath cellIndex
pathName index
index
pathName 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 itemList
pathName iselemsnipped
cellIndex fullTextName
pathName istitlesnipped columnIndex
fullTextName
pathName itemlistvar
pathName labelpath
columnIndex
pathName labels
pathName labeltag
pathName move source
target
pathName movecolumn
sourceColumn targetColumn
pathName nearest
y
pathName nearestcell
x y
pathName nearestcolumn
x
pathName rejectinput
pathName resetsortinfo
pathName rowattrib
index ?name? ?value name value
...?
pathName rowcget
index option
pathName rowconfigure
index ?option? ?value option value
...?
pathName scan
mark|dragto x y
pathName see
index
pathName seecell
cellIndex
pathName seecolumn
columnIndex
-
pathName selection
option args
pathName selection anchor
index
pathName selection clear first
last
pathName selection clear
indexList
pathName selection includes
index
pathName selection set first
last
pathName selection set
indexList
pathName separatorpath
?columnIndex?
pathName separators
pathName size
pathName sort
?-increasing|-decreasing?
pathName sortbycolumn
columnIndex ?-increasing|-decreasing?
pathName sortbycolumnlist columnIndexList
?sortOrderList?
pathName sortcolumn
pathName sortcolumnlist
pathName sortorder
pathName sortorderlist
pathName togglecolumnhide firstColumn
lastColumn
pathName togglecolumnhide
columnIndexList
pathName togglerowhide
first last
pathName togglerowhide
indexList
pathName unsetattrib
name
pathName unsetcellattrib cellIndex
name
pathName unsetcolumnattrib columnIndex
name
pathName unsetrowattrib index
name
pathName windowpath
cellIndex
-
pathName xview
args
pathName xview
pathName xview units
pathName xview moveto
fraction
pathName xview scroll number
units|pages
-
pathName yview
args
pathName yview
pathName yview units
pathName yview moveto
fraction
pathName yview scroll number
units|pages
DEFAULT AND INDIVIDUAL BINDINGS FOR THE TABLELIST
BODY
DEFAULT AND INDIVIDUAL BINDINGS FOR THE HEADER
LABELS
DEFAULT BINDINGS FOR INTERACTIVE CELL
EDITING
KEYWORDS
- tablelist, multi-column, listbox, widget
Detailed Reference
- NAME
tablelist::tablelist - Create and manipulate tablelist
widgets
SYNOPSIS
-
tablelist::tablelist pathName ?options?
- STANDARD OPTIONS
-
-borderwidth -highlightthickness -setgrid
-cursor -relief -xscrollcommand
-exportselection -selectbackground -yscrollcommand
-highlightbackground -selectborderwidth
-highlightcolor -selectforeground
- See the options manual entry for details on the standard
options. The
-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.
OPTIONS FOR THE BODY COMPONENT OF THE
WIDGET
-
-background -disabledforeground -font -foreground
- These options (described in the options manual entry) are only
valid for the body component of the tablelist widget. As discussed in
the next section, the colors and font used when drawing the header labels
can be different from those specified for the body. When using the
package Tablelist_tile, these options have theme-specific default
values.
WIDGET-SPECIFIC OPTIONS
-
| 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 -selecttype
configuration option) when the tablelist has the keyboard focus.
The allowed values are frame,
none, and underline. The
default value frame shows a thin frame around the
active item or element, which in most cases looks nice. It looks
less pretty when applied to the active item if the background color of
some of its cells was changed by using the columnconfigure or cellconfigure widget command and no
column separators are shown. The value none
specifies that no special indication of the active item or element is
to be performed. The value underline 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 sortbycolumn or sortbycolumnlist subcommand of the
Tcl command associated with the widget. This option is only
relevant if the value of the -showarrow option 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 is x11 then 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 -arrowstyle
option has the default value sunken10x9). On
the windowing system win32, the default arrow color
is #aca899 for Windows XP and Vista, and an empty string
for older Windows versions, paired with the default arrow style
flat9x5 and sunken8x7,
respectively. Finally, for the windowing systems
classic and aqua on the
Macintosh, the default arrow color is #777777 and the
default arrow style is flat7x7.
-
| 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 sortbycolumn or sortbycolumnlist subcommand of the
Tcl command associated with the widget. This option is only
relevant if the value of the -showarrow option is true. The
currently supported values are flat7x4,
flat7x5, flat7x7,
flat8x5, flat9x5,
sunken8x7, sunken10x9, and
sunken12x11. 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 -arrowcolor option 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 sortbycolumn or sortbycolumnlist subcommand of the
Tcl command associated with the widget when the tablelist's
state is
disabled. This option is only relevant if the
value of the -showarrow
option is true. When the default value of the -arrowcolor option is an empty string then
this is the default for the -arrowdisabledcolor
option, too; otherwise the latter's default value equals the default
foreground color of the header labels in disabled
state.
-
| 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 width 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). 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 title specifies the text to be displayed in
the column's header, and may optionally be followed in the next list
element by an alignment, which specifies how to
align the elements of the column. Each
alignment must be one of left,
right, or center. The
default is left. The
alignment also refers to the column's title as long
as the -labelalign
option 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.
REMARK: Whenever possible, you should specify the value
zero for the column widths, i.e., use dynamic-width
columns. Besides being more user-friendly, dynamic-width columns
have the main advantage that they increase the performance of the item
insertion and sorting quite significantly.
-
| Command-Line Name: |
-columntitles |
| Database Name: |
columnTitles |
| Database Class: |
ColumnTitles |
This option provides a simplified form of specifying dynamic-width,
left-aligned tablelist columns. Its value is viewed as a list of
column titles. The default is an empty list.
In the simplest case that no columns have been specified yet,
setting this option to the value given by the list
title title ...
is equivalent to setting the -columns option to the value given by the
list
0 title left 0 title left ...
If the columns have already been specified then this option updates
their titles (as many of them as possible) and, if the number of
elements of its value is greater than the number of columns then it
uses the remaining elements as titles of additional dynamic-width,
left-aligned columns. For example, if the widget has 3 columns
and the option's value is a list of length 5 then the option will
update the titles of the 3 columns and will append 2 new dynamic-width,
left-aligned columns having as titles the last 2 elements of the
list. If the widget has 3 columns and the option specifies just 2
texts then it will update the titles of the first 2 columns only.
-
| 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
-forceeditendcommand option 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 -editendcommand option. 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 is 0, 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 the finishediting and cancelediting subcommands,
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,
provided that no column-, row-, or cell-specific fonts are used and no
embedded images or windows are displayed in the widget's cells.
-
| Command-Line Name: |
-incrarrowtype |
| Database Name: |
incrArrowType |
| Database Class: |
IncrArrowType |
Specifies the type of the arrow placed into a column label when
sorting the items based on that column in increasing order, with the
aid of the sortbycolumn
or sortbycolumnlist
subcommand of the Tcl command associated with the widget. The
value of this option must be one of up or
down. The default is
up. This option is only relevant if the value
of the -showarrow option
is true.
-
| Command-Line Name: |
-labelactivebackground |
| Database Name: |
labelActiveBackground |
| Database Class: |
Foreground |
Specifies the -activebackground option for the
header labels, i.e., the background color to use when the mouse cursor
is positioned over a header label and the value of
tk_strictMotif is false. This option is only
defined in the Tablelist package if the Tk version being used supports
the -activebackground option 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
-labelactivebackground option.
-
| Command-Line Name: |
-labelactiveforeground |
| Database Name: |
labelActiveForeground |
| Database Class: |
Background |
Specifies the -activeforeground option for the
header labels, i.e., the foreground color to use when the mouse cursor
is positioned over a header label and the value of
tk_strictMotif is false. This option is only
defined in the Tablelist package if the Tk version being used supports
the -activeforeground option 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
-labelactiveforeground option.
-
| Command-Line Name: |
-labelbackground or
-labelbg |
| Database Name: |
labelBackground |
| Database Class: |
Background |
Specifies the -background option 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 -borderwidth option for the header
labels. This option is different from the standard
-borderwidth option 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's state is
disabled then this action will not take
place. The most common value of this option is tablelist::sortByColumn;
this command sorts the items based on the column whose index was passed
to it as second argument.
-
| Command-Line Name: |
-labelcommand2 |
| Database Name: |
labelCommand2 |
| Database Class: |
LabelCommand2 |
Specifies the Tcl command to be invoked when mouse button 1 is
pressed together with the Shift key 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's
state is
disabled then this action will not take
place. The most common value of this option is tablelist::addToSortColumns;
this command adds the column index passed to it as second argument to
the list of sort columns and sorts the items based on the columns
indicated by the modified list.
-
| Command-Line Name: |
-labeldisabledforeground |
| Database Name: |
labelDisabledForeground |
| Database Class: |
DisabledForeground |
Specifies the -disabledforeground option for the
header labels, i.e., the foreground color to use for the labels when
the tablelist's state is
disabled. This option is only defined in the
Tablelist package if the Tk version being used supports the
-disabledforeground option 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
-labeldisabledforeground option.
-
| Command-Line Name: |
-labelfont |
| Database Name: |
labelFont |
| Database Class: |
Font |
Specifies the -font option 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 -foreground option 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 -height option 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
-pady configuration option for the header
labels. In the Tablelist_tile package the value of the
-labelpady option is mapped to the corresponding
components of the value of the -padding
configuration option of the header labels, and the
-labelpady option has a theme-specific default
value.
-
| Command-Line Name: |
-labelrelief |
| Database Name: |
labelRelief |
| Database Class: |
Relief |
Specifies the -relief option for the header
labels. This option is different from the standard
-relief option defined for the tablelist widget
itself. The default value is raised.
-
| 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 -listvariable will
cause an error. Attempts to unset a variable in use as a
-listvariable will fail but will not generate an
error.
REMARK: For increased efficiency, updating the widget
to reflect a changed value of the variable specified with this option
is, whenever possible, done at idle time (i.e., when there are no
events to process). On the other hand, most tablelist subcommands
make it necessary to perform an immediate update of the widget's
internal list according to the value of this variable, before executing
the subcommand in question. Doing this repeatedly can become
quite inefficient. To avoid performance problems, you should
always try to separate the operations that build up the value of the
variable specified by this option from other commands. For
example, instead of
tablelist::tablelist .tbl ... -listvariable var
set var {}
for {set row 0} {$row < 1000} {incr row} {
lappend var ...
.tbl cellconfigure $row,3 -image ...
}
you should write
tablelist::tablelist .tbl ... -listvariable var
set var {}
for {set row 0} {$row < 1000} {incr row} {
lappend var ...
}
for {set row 0} {$row < 1000} {incr row} {
.tbl cellconfigure $row,3 -image ...
}
The first method above is quite inefficient, because it requires
1000 updates of the widget's internal list. The second method
performs incomparably faster, because it needs only one synchronization
(at the beginning of the second loop).
-
| 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
AND INDIVIDUAL 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
AND INDIVIDUAL 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
AND INDIVIDUAL 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, or
extended. The default value is
browse.
-
| Command-Line Name: |
-selecttype |
| Database Name: |
selectType |
| Database Class: |
SelectType |
Specifies one of two selection types for the tablelist widget:
row or cell. If the
selection type is row then 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 is cell
then 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 is row.
-
| Command-Line Name: |
-setfocus |
| Database Name: |
setFocus |
| Database Class: |
SetFocus |
Specifies a boolean value that determines whether a click with the
left mouse button anywhere into the tablelist's body, including the
separators and the embedded images (more precisely, any descendants of
the tablelist widget having the binding tag TablelistBody) should set the focus to
the body of the tablelist widget if the latter's state is normal. The
default value is 1.
-
| Command-Line Name: |
-showarrow |
| Database Name: |
showArrow |
| Database Class: |
ShowArrow |
Specifies a boolean value that determines whether the
sortbycolumn and
sortbycolumnlist
subcommands of the Tcl command associated with the widget should place
an arrow indicating the sort order into the header label(s) of the
column(s) specified by their first argument. The default value is
1.
-
| 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 -stripebackground option 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 sort subcommand of
the Tcl command associated with the tablelist widget. To compare
two items (viewed as lists of cell contents within one row each) during
the sort operation, 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:
normal or disabled. 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
-arrowdisabledcolor color,
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. In addition, in disabled state any color options
specified at column, row, or cell level will be ignored.
-
| 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
all or 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 index
end, 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 -width configuration
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
stripeHeight of consecutive non-hidden items, according to
the value of the -stripeheight configuration
option. The first stripeHeight non-hidden items are
"normal" ones; they are followed by a stripe composed of the next
stripeHeight non-hidden items, which in turn is followed
by the same number of "normal" non-hidden items, and so on. In
the Tablelist package and in most themes supported by Tablelist_tile,
the default value is an empty string, indicating that the stripes will
inherit the background color specified by the -background configuration option.
When using Tablelist_tile with the tileqt theme
then the default value is given by the global KDE option
alternateBackground, which in turn depends on the
current color scheme. In this case it is recommended to either
keep that default value retrieved from KDE, or to use an explicitly
specified empty string if no stripes are to be displayed. The
-stripebackground option has a higher priority than
the -background column configuration option, but a
lower priority than the -background option
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
stripeHeight of consecutive non-hidden items, according to
the value of the -stripeheight configuration
option. The first stripeHeight non-hidden items are
"normal" ones; they are followed by a stripe composed of the next
stripeHeight non-hidden items, which in turn is followed
by the same number of "normal" non-hidden items, and so on. The
default value is an empty string, indicating that the stripes will
inherit the foreground color specified by the -foreground configuration option.
The -stripeforeground option has a higher priority
than the -foreground column configuration option,
but a lower priority than the -foreground option
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
of 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 (Tab and
Shift-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, or xview subcommand. The default value is
0. 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 the
0 character).
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 -showseparators option. 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 -elide
option for a text widget tag), this option is not supported for Tk
versions earlier than 8.3.
-
| Command-Line Name: |
-tooltipaddcommand |
| Database Name: |
tooltipAddCommand |
| Database Class: |
TooltipAddCommand |
Specifies a Tcl command to be used for displaying cell- and column
label-specific balloon help. When the mouse pointer enters a
cell, the command is automatically concatenated with the name of the
tablelist widget and the cell's row and column indices, and the
resulting script is evaluated in the global scope. Similarly,
when the mouse pointer enters a header label, the command is
automatically concatenated with the name of the tablelist widget, the
number -1, and the column index of the respective label,
and the resulting script is evaluated in the global scope. In
both cases, the action described above is only triggered if both the
value of this option and that of -tooltipdelcommand are nonempty
strings.
For example, consider the procedure tooltipAddCmd shown
below, which makes use of the DynamicHelp::add command
from the BWidget package to display the full cell and label texts as
tooltips for the cells and header labels with snipped contents.
proc tooltipAddCmd {tbl row col} {
if {($row >= 0 && [$tbl iselemsnipped $row,$col fullText]) ||
($row < 0 && [$tbl istitlesnipped $col fullText])} {
DynamicHelp::add $tbl -text $fullText
}
}
A tablelist widget can use this procedure by specifying
... -tooltipaddcommand tooltipAddCmd -tooltipdelcommand DynamicHelp::delete
If you prefer to use the tooltip::tooltip command from
the tooltip package contained in tklib then the procedure becomes
proc tooltipAddCmd {tbl row col} {
if {($row >= 0 && [$tbl iselemsnipped $row,$col fullText]) ||
($row < 0 && [$tbl istitlesnipped $col fullText])} {
tooltip::tooltip $tbl $fullText
}
}
and can be used by specifying
... -tooltipaddcommand tooltipAddCmd -tooltipdelcommand "tooltip::tooltip clear"
Please note that in the less common case that the name of your
tablelist widget contains spaces, the tooltip::tooltip clear
command won't work as expected. As a workaround you can
use the slightly modified approach shown below:
proc tooltipDelCmd tbl { tooltip::tooltip $tbl "" }
... -tooltipaddcommand tooltipAddCmd -tooltipdelcommand tooltipDelCmd
Both examples above make use of the iselemsnipped and istitlesnipped subcommands, to make
sure that the full cell and label texts will only be displayed for
those cells and header labels whose contents are snipped.
-
| Command-Line Name: |
-tooltipdelcommand |
| Database Name: |
tooltipDelCommand |
| Database Class: |
TooltipDelCommand |
Specifies a Tcl command to be used for removing the cell- or column
label-specific balloon help. When the mouse pointer leaves a cell
or a header label, the command specified by this option is
automatically concatenated with the name of the tablelist widget and
the resulting script is evaluated in the global scope. This
action is only triggered if both the value of this option and that of
-tooltipaddcommand
are nonempty strings. Common values for this option are
"DynamicHelp::delete" (which requires the BWidget package)
and "tooltip::tooltip clear" (which requires
the tooltip package contained in tklib). Their usage is shown in
the examples above.
-
| 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.
- DESCRIPTION
- The
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.
A tablelist is a multi-column listbox, implemented as a mega-widget,
consisting of a body and a header. The body displays a
list of items, one per line. Each item is a list of
elements, which are aligned in columns. In other words, an
item is the contents of a row, and an element is the text contained in a
cell. The header consists of label widgets displaying the column
titles. The labels can be used, among others, for interactive column
resizing and column-based sorting of the items, as described below.
Each cell and each header label of a tablelist widget can also contain an
image, which is placed to the left or right of the text, depending on the
column's alignment. Instead of an image, a tablelist cell can also
contain an embedded window, placed to the left or right of the text, just
like an embedded image.
The elements of a tablelist widget can, per default, be only edited
programmatically. However, interactive editing can be enabled for
individual cells and for entire columns. Per default, the interactive
cell editing uses a temporary embedded entry widget, thus making sure that
all the validation facilities available for entry widgets can be used
during the editing process. A great variety of widgets from the
packages BWidget, Iwidgets, combobox (by Bryan Oakley), and Mentry (or
Mentry_tile), as well as Tk core text, spinbox and checkbutton widgets
along with tile entry, combobox, and checkbutton widgets are also supported
as temporary embedded widgets used for cell editing. In addition, a
rich set of keyboard bindings is provided for a comfortable navigation
between the editable cells.
When first created, a new tablelist widget has no items. Items may be
added, deleted, or updated using widget commands described below. In
addition, one or more items or elements may be selected. If a
tablelist widget is exporting its selection (see the
-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.
It is not necessary for all the elements to be displayed in the tablelist
widget at once; commands described below may be used to change the view in
the window. Tablelist widgets allow scrolling in both directions
using the standard -xscrollcommand and
-yscrollcommand options. They also support
scanning, as described below.
Each tablelist widget, as well as each tablelist column, row, and cell may
have any number of attributes, which can be used in commands that
create or manipulate tablelist widgets for particular purposes.
COLORS AND FONTS
-
The
-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.
- COLUMN CONFIGURATION OPTIONS
- The following options are currently supported by the
columncget, columnconfigure, configcolumnlist, and configcolumns commands:
-
-align
alignment
- Specifies how to align the elements of the column. It must be
one of
left, 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
- Specifies the normal background color to use when displaying the
contents of the column.
-changesnipside
boolean
- Specifies whether to override the alignment-specific default
position of the snip indicator when
displaying the elements of the column (excluding its title). The
default value is
0, meaning that the snip string will be
appended to the elements if the column's alignment is
left or center and prepended to
them in case the alignment is right.
-editable
boolean
- Specifies whether the elements of the column can be edited
interactively. The default value is
0. The
value of this option can be overridden for individual cells by using
the cell configuration option of the same
name.
-editwindow
name
- Specifies the type of the temporary embedded widget to be used for
interactive editing of the contents of the given column's cells.
name may be one of entry (which
is the default), text, spinbox
(the latter for Tk version 8.4 or higher),
checkbutton, ttk::entry,
ttk::spinbox, 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 (or Mentry_tile). 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. The value of this option can be overridden for
individual cells by using the cell
configuration option of the same name.
-font font
- Specifies the font to use when displaying the contents of the
column.
-foreground
color or -fg color
- Specifies the normal foreground color to use when displaying the
contents of the column.
-formatcommand
command
-
Specifies a Tcl command to be invoked when displaying the contents of
a cell within this column or adding them to the selection when the
latter is being exported. If
command 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, columncget, cellcget, sort, sortbycolumn, and sortbycolumnlist 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.
In the more sophisticated case that the result of the formatting
should also depend on the cell's row, you will have to invoke the
formatinfo subcommand,
which provides the necessary information about the cell whose content
is being formatted.
-hide
boolean
- Specifies whether to hide the column when displaying the widget or
exporting its selection. The default value is
0. After toggling the hidden state of a column, the
<<TablelistColHiddenStateChanged>>
virtual event is generated.
-labelalign
alignment
- Specifies how to align the column's title. It must be one of
left, 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
-labelcommand2 command
-labelfont fontName
-labelforeground color or
-labelfg color
-labelheight lines
-labelpady screenDistance
-labelrelief relief
- The value of each of these options may also be an empty
string. These options are the column-specific equivalents of the
global ones having the same names, described in the WIDGET-SPECIFIC OPTIONS section. They
override the options of the same names set at widget level if the
specified value is not empty. If one of these options hasn't been
specified for the given column, or if its value is an empty string,
then that option will not be used at column level; the global option of
the same name will be used instead. The
-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
image
- Specifies the name of the Tk image to be displayed in the header
label.
image 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
width
width 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 name
- Specifies a name associated with the column. While the
numerical index of a column might change by inserting, deleting, or
moving columns, its name remains constant and can be used as a safe
alternative column index (see the COLUMN
INDICES section for details). Similarly, it can also be used
as the second component of a cell index of the form
row,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
boolean
- Specifies whether the column can be resized interactively.
See the DEFAULT AND INDIVIDUAL BINDINGS FOR
THE HEADER LABELS section for information on interactive column
resizing. The default value is
1. This option
is only relevant if the value of the -resizablecolumns widget
configuration option is true.
-selectbackground
color
- Specifies the background color to use when displaying the contents
of a cell in the given column while the cell is selected.
-selectforeground
color
- Specifies the foreground color to use when displaying the contents
of a cell in the given column while the cell is selected.
-showarrow
boolean
- Specifies whether the
sortbycolumn command with the given
column index as first argument and the sortbycolumnlist command having the
given column index as element of its 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.
-showlinenumbers
boolean
-
Specifies whether the given column should display the line numbers
(starting with 1 and ending with the number of the non-hidden
rows). The default value is
0.
The following details assume that the given column's
-showlinenumbers option was set to true:
Associating the line numbers with the non-hidden rows takes place
automatically whenever items are inserted, deleted, updated, moved,
or sorted. For increased efficiency, this is in most cases done
at idle time. For example, if several items are inserted into
or deleted from the tablelist widget, then the necessary renumbering
of the non-hidden rows will be performed as an idle callback, the
next time the event loop is entered and there are no events to
process. The line numbers will override any previous contents
of the column's cells. They are, per default, displayed without
leading zeros, but this (and the display format in general) can be
changed with the aid of the -formatcommand column
configuration option.
The sortbycolumn
and sortbycolumnlist subcommands as
well as the tablelist::sortByColumn
and tablelist::addToSortColumns
commands check the column indices passed to them as arguments and
don't perform any sorting by those columns that have been configured
to display the line numbers (see the corresponding descriptions for
details).
-sortcommand
command
- This option is only relevant if the value of the
-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 or the sortbycolumnlist command having the
given column index as element of its first argument. To compare
two elements during the sortbycolumn or
sortbycolumnlist 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
mode
-
Specifies how to compare the column's elements when invoking the
sortbycolumn command
with the given column index as first argument or the
sortbycolumnlist
command having the given column index as element of its 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
- Specifies whether the column is to be stretched in order to fill
the tablelist window if necessary. The value of this option is
tied to that of the
-stretch
option for the tablelist widget; changes in either will automatically
be reflected in the other.
-text list
- Specifies a list of strings to be displayed in the cells of the
given column, i.e., updates the elements contained in the column.
If the tablelist's
state is
disabled then this option will be ignored.
-title title
- Specifies the text to be displayed in the column's header.
This option is tied to the
title 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 width
width 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.
-wrap boolean
- Specifies whether to display those elements of the given column
that don't fit into their cells in word-wrapped multi-line rather than
snipped form. The default value is
0. If the
specified column has static width and the value of this option is true
then elements of the column that are too long to be displayed in a
single line will be broken up into several lines. The same
applies to the individual lines of the multi-line elements (i.e.,
elements containing newline characters): they will also be wrapped if
necessary, thus giving rise to additional line breaks. In both
cases, the line breaks are chosen at word boundaries wherever possible,
and they are only used for the external representation of the strings
contained in the given column, without affecting the internal contents
of the cells.
The -background, -font,
-foreground, -selectbackground,
and -selectforeground column configuration options
override the options of 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.
ROW CONFIGURATION OPTIONS
- The following options are currently supported by the
rowcget, rowconfigure, configrowlist, and configrows commands:
-
-background
color or -bg color
- Specifies the normal background color to use when displaying the
contents of the row.
-font font
- Specifies the font to use when displaying the contents of the
row.
-foreground
color or -fg color
- Specifies the normal foreground color to use when displaying the
contents of the row.
-hide boolean
-
Specifies whether to hide the row when displaying the widget or
exporting its selection. The default value is
0. After toggling the hidden state of a row, the
<<TablelistRowHiddenStateChanged>>
virtual event is generated. For technical reasons (the use of
the -elide option for a text widget tag), this
option is not supported for Tk versions earlier than 8.3.
CAUTION: Tk versions 8.3 - 8.4.12 had a bug that
caused a segmentation fault if the whole content of a text widget was
elided. This bug was also present in Tk 8.5.a1 - 8.5.a3.
When using one of these earlier Tk versions, this bug will produce a
crash if all the rows of a tablelist widget are hidden. It is
your responsibility to avoid such situations when using a Tk version
having this bug!
-name name
- Specifies a name associated with the row. While the numerical
index of a row might change by inserting, deleting, or moving rows, or
by sorting the items, its name remains constant and can be used as a
safe alternative row index (see the ROW
INDICES section for details). Similarly, it can also be used
as the first component of a cell index of the form
row,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
boolean
- Specifies whether the elements displayed in the given row can be
selected. The default value is
1. 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
- Specifies the background color to use when displaying the contents
of a cell in the given row while the cell is selected.
-selectforeground
color
- Specifies the foreground color to use when displaying the contents
of a cell in the given row while the cell is selected.
-text list
- Specifies a list of strings to be displayed in the cells of the
given row, i.e., updates the item contained in the row. If the
tablelist's
state is
disabled then this option will be ignored.
The -background, -font,
-foreground, -selectbackground,
and -selectforeground row configuration options
override the options of 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.
CELL CONFIGURATION OPTIONS
- The following options are currently supported by the
cellcget, cellconfigure, configcelllist, and configcells commands:
-
-background
color or -bg color
- Specifies the normal background color to use when displaying the
contents of the cell.
-editable
boolean
- Specifies whether the contents of the cell can be edited
interactively. The default value is
0. This
option overrides the one of the same name
for the column containing the given cell.
-editwindow
name
- Specifies the type of the temporary embedded widget to be used for
interactive editing of the cell's contents. The default value is
entry. This option overrides the one of the same name for the column
containing the given cell, and may have the same values as its
column-related counterpart.
-font font
- Specifies the font to use when displaying the contents of the
cell.
-foreground
color or -fg color
- Specifies the normal foreground color to use when displaying the
contents of the cell.
-image image
-
Specifies the name of the Tk image to be displayed in the cell.
image 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
gap of 4 pixels. 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 (which is created on demand). 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
- Specifies the background color to use when displaying the contents
of the cell while it is selected.
-selectforeground
color
- Specifies the foreground color to use when displaying the contents
of the cell while it is selected.
-stretchwindow
boolean
- Specifies whether the width of the window embedded into the cell
shall be adapted dynamically to the width of the cell's column if the
latter is non-zero (i.e., static). The default value is
0. If the value of this option is true and the
column was specified with a non-zero width or was resized
interactively, then the width of the embedded window (if any) will be
adjusted automatically so the window fills the whole horizontal space
belonging to that column (except the left and right margins).
Please note that in this case the cell's text will remain hidden.
On the other hand, if the column is of dynamic width then this option
will be ignored and both the cell's text and its embedded window (if
any) will be displayed as usual. The easiest way to avoid this
discrepancy is to set the cell's text to an empy string or make sure
that the column's elements are always displayed as empty strings, by
using the -formatcommand column configuration
option.
-text text
- Specifies the string to be displayed in the given cell, i.e.,
updates the element contained in the cell. If the tablelist's
state is
disabled then this option will be ignored.
-window
command
-
Specifies a Tcl command creating the window to be embedded into the
cell. The command is automatically concatenated with the name
of the tablelist widget, the cell's row and column indices, as well
as the path name of the embedded window to be created, and the
resulting script is evaluated in the global scope.
command 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 gap of 4 pixels. 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
- Specifies a Tcl command to be invoked when a window embedded into
the cell is destroyed. The command is automatically concatenated
with the name of the tablelist widget, the cell's row and column
indices, as well as the path name of the embedded window, and the
resulting script is evaluated in the global scope. This option
provides an easy-to-use alternative to binding a script to the embedded
window's
<Destroy> event from within its
creation script, specified as the value of the -window cell configuration option.
The -background, -font,
-foreground, -selectbackground,
and -selectforeground cell configuration options
override the options of 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.
INTERACTIVE CELL EDITING
- Whether or not the contents of a cell of a tablelist widget can be
edited interactively, depends on the
-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.
The interactive cell editing is started by the 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 text, spinbox, or checkbutton
widget, or a tile entry, spinbox, combobox, or checkbutton, or one of the
16 currently supported widgets from the packages BWidget, Iwidgets, combobox (by Bryan Oakley), and Mentry (or Mentry_tile). 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, text,
spinbox, and checkbutton widgets, as well as the tile entry, spinbox,
combobox, and checkbutton widgets are automatically registered for cell
editing.
In the simplest case, the text automatically inserted into the temporary
embedded widget is the same as the text displayed in the cell, which in
turn can be the cell's contents or the string obtained from the latter by
using the -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.)
The editing of the text inserted into the edit window uses the
widget-specific bindings for mouse and keyboard events, with a few
extensions and changes, as described in the DEFAULT BINDINGS FOR INTERACTIVE CELL EDITING
section. For example, in entry or entry-like components of the edit
window, Control-i inserts a tab, Control-j
inserts a newline, and if the edit window is a text widget then
Return and KP_Enter insert a newline character,
too. 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, Alt-Home, and
Alt-End (as well as Control-Home and
Control-End, except in the case of a text widget). On
Mac OS Classic and Mac OS X Aqua 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 (together with
Control for a text widget). The bindings for the keys
used for normal termination of the editing just invoke the
finishediting subcommand;
the latter can also be called explicitly to terminate the editing
programmatically. 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.
When normal termination of the editing process occurs, the Tcl command
associated with the tablelist widget compares the edit window's final
contents to its original one. If they are equal then the embedded
widget is destroyed and the cell's original value is restored. If the
two strings are different and the value of the -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.
ROW INDICES
-
Many of the widget commands for tablelist widgets take one or more row
indices as arguments. A row index specifies a particular item of
the tablelist, in any of the following ways:
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,
last, source, and
target always contain row indices in one of the above
forms.
- COLUMN INDICES
-
Many of the widget commands for tablelist widgets take a column index as
argument. A column index specifies a particular column of the
tablelist, in any of the following ways:
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). |
In the widget command descriptions below, arguments named
columnIndex, firstColumn,
lastColumn, sourceColumn, and
targetColumn always contain column indices in one of
the above forms.
- CELL INDICES
-
Many of the widget commands for tablelist widgets take a cell index as
argument. A cell index specifies a particular cell of the
tablelist, in any of the following ways:
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). |
In the widget command descriptions below, arguments named
cellIndex, firstCell, and
lastCell always contain cell indices in one of the
above forms.
- WIDGET COMMAND
-
The
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
index
- Sets the active item to the one indicated by
index if the tablelist's state is not
disabled. If index is
outside the range of items in the tablelist or it refers to a hidden
item then the closest non-hidden 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
cellIndex
- Sets the active element to the one indicated by
cellIndex 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 ...?
- Queries or modifies the attributes of the widget. If no
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, or an empty string if no
corresponding value exists (you can use the hasattrib subcommand to distinguish this
case from the one that the value of an existing attribute is an
empty string). 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
index
- Returns a list of four numbers describing the bounding box of the
row given by index. The first two elements of the list
give the x and y coordinates of the upper-left corner of the screen
area covered by the row (specified in pixels relative to the widget)
and the last two elements give the width and height of the area, in
pixels. If no part of the row given by index is visible on
the screen, or if index refers to a non-existent row, then the
result is an empty string; if the row is partially visible, the result
gives the full area of the row, including any parts that are not
visible.
pathName
bodypath
- Returns the path name of the body component of the widget.
pathName bodytag
- Returns the name of a binding tag whose name depends on the path
name of the tablelist widget and which is associated with the
tablelist's body, the separators, as well as the message and label
widgets used for displaying multi-line elements and images,
respectively. This binding tag precedes the tag
TablelistBody in the list of binding
tags of the tablelist descendants mentioned above, and is designed to
be used when defining individual binding scripts for tablelist
widgets. The main advantage of using this tag instead of the path
name of the tablelist's body is that it enables you to write event
handling scripts that are valid not only for the tablelist's body but
also for the separators, multi-line cells, and embedded images.
pathName
cancelediting
- This subcommand cancels the interactive editing of the contents of
the cell whose index was passed to the
editcell 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 cellattrib
cellIndex ?name? ?value name value
...?
- Queries or modifies the attributes of the cell given by
cellIndex. If no name is
specified, the command returns a list of pairs, each of which contains
the name and the value of an attribute for the cell. If
name is specified with no
value, then the command returns the value of the
one named cell attribute, or an empty string if no corresponding value
exists (you can use the hascellattrib subcommand to distinguish
this case from the one that the value of an existing cell
attribute is an empty string). If one or more
name-value pairs are specified,
then the command sets the given cell attribute(s) to the given
value(s); in this case the return value is an empty string.
name may be an arbitrary string.
pathName cellcget
cellIndex option
- Returns the current value of the cell configuration option given by
option 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 ...?
- Queries or modifies the configuration options of the cell given by
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
cellIndex
- Returns the canonical cell index value that corresponds to
cellIndex, in the form
row,col, where
row and col are integers.
pathName cellselection
option args
- This command is used to adjust the cell selection within a
tablelist widget. It has several forms, depending on
option:
-
pathName cellselection anchor
cellIndex
- Sets the cell selection anchor to the element given by
cellIndex. 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 lastCell
pathName cellselection clear
cellIndexList
- If any of the elements between
firstCell
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
cellIndex
- Returns
1 if the element indicated by
cellIndex is currently selected, 0
if it isn't.
pathName cellselection set
firstCell lastCell
pathName cellselection set
cellIndexList
- Selects all of the selectable non-hidden elements in the range
between
firstCell 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.
If the tablelist's 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
option
- Returns the current value of the configuration option given by
option, which may have any of the values accepted
by the tablelist::tablelist command.
pathName columnattrib
columnIndex ?name? ?value name value
...?
- Queries or modifies the attributes of the column given by
columnIndex. If no name
is specified, the command returns a list of pairs, each of which
contains the name and the value of an attribute for the column.
If name is specified with no
value, then the command returns the value of the
one named column attribute, or an empty string if no corresponding
value exists (you can use the hascolumnattrib subcommand to
distinguish this case from the one that the value of an existing
column attribute is an empty string). If one or more
name-value pairs are specified,
then the command sets the given column attribute(s) to the given
value(s); in this case the return value is an empty string.
name may be an arbitrary string.
pathName columncget
columnIndex option
- Returns the current value of the column configuration option given
by
option 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 ...?
- Queries or modifies the configuration options of the column given
by
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
columncount
- Returns the number of columns in the tablelist widget.
pathName columnindex
columnIndex
- Returns the integer column index value that corresponds to
columnIndex.
pathName columnwidth
columnIndex
?-requested|-stretched|-total?
- Returns the current width in pixels of the column specified by
columnIndex. If the optional argument is
-requested (which is the default) then the return
value is the number of pixels corresponding to the column width
specified by the -columns
widget or -width column
configuration option (possibly overridden by interactive column
resizing); if the column width was specified as 0 (and was
not changed by interactive column resizing) then the return value is
the actual number of pixels corresponding to the widest non-hidden
element of the column, including its header. With the
-stretched option, the command returns the column
width obtained by increasing the value described above by the number of
additional pixels that might have been added to the requested column
width by a stretch operation (see the -stretch widget and -stretchable column configuration
options). Finally, if the optional argument is
-total then the return value is the stretched
column width increased by the number of pixels corresponding to the
left and right margins within the column; this value equals the width
of the header label if the tablelist widget is mapped.
pathName
configcelllist cellConfigSpecList
-
For each cell index, option, and value specified by the list
cellConfigSpecList, the command modifies the
given option of the given cell to have the given value. The
argument cellConfigSpecList must be a list of the
form
cellIndex option value cellIndex option value ...
where each option may have any of the values
described in the CELL CONFIGURATION
OPTIONS section. The return value is an empty string.
This command has the same effect as
eval [list $pathName configcells] $cellConfigSpecList
but it is more efficient and easier to use.
pathName configcells
?cellIndex option value cellIndex
option value ...?
- For each
cellIndex, option,
and value, the command modifies the given option of
the given cell to have the given value. Each
option may have any of the values described in the
CELL CONFIGURATION OPTIONS section.
The return value is an empty string.
pathName
configcolumnlist columnConfigSpecList
-
For each column index, option, and value specified by the list
columnConfigSpecList, the command modifies the
given option of the given column to have the given value. The
argument columnConfigSpecList must be a list of
the form
columnIndex option value columnIndex option value ...
where each option may have any of the values
described in the COLUMN CONFIGURATION
OPTIONS section. The return value is an empty string.
This command has the same effect as
eval [list $pathName configcolumns] $columnConfigSpecList
but it is more efficient and easier to use.
pathName
configcolumns ?columnIndex option value
columnIndex option value ...?
- For each
columnIndex,
option, and value, the command
modifies the given option of the given column to have the given
value. Each option may have any of the values
described in the COLUMN CONFIGURATION
OPTIONS section. The return value is an empty string.
pathName configrowlist
rowConfigSpecList
-
For each row index, option, and value specified by the list
rowConfigSpecList, the command modifies the given
option of the given row to have the given value. The argument
rowConfigSpecList must be a list of the form
index option value index option value ...
where each option may have any of the values
described in the ROW CONFIGURATION OPTIONS
section. The return value is an empty string.
This command has the same effect as
eval [list $pathName configrows] $rowConfigSpecList
but it is more efficient and easier to use.
pathName configrows
?index option value index option
value ...?
- For each
index, option, and
value, the command modifies the given option of the
given row to have the given value. Each
option may have any of the values described in the
ROW CONFIGURATION OPTIONS section. The
return value is an empty string.
pathName configure
?option? ?value option value
...?
- Queries or modifies the configuration options of the widget.
If no
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
- Given a y-coordinate within the tablelist window, this command
returns the index of the tablelist item containing that
y-coordinate. If no corresponding item is found then the return
value is
-1. The coordinate y is
expected to be relative to the tablelist window itself (not its body
component).
pathName
containingcell x y
- Given an x- and a y-coordinate within the tablelist window, this
command returns the index of the tablelist cell containing the point
having these coordinates. If no corresponding cell is found then
the row or column component (or both) of the return value is
-1. The coordinates x and
y are expected to be relative to the tablelist
window itself (not its body component).
pathName
containingcolumn x
- Given an x-coordinate within the tablelist window, this command
returns the index of the tablelist column containing that
x-coordinate. If no corresponding column is found then the return
value is
-1. The coordinate x is
expected to be relative to the tablelist window itself (not its body
component).
pathName
curcellselection
- Returns a list containing the canonical indices (of the form
row,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
curselection
- Returns a list containing the numerical indices of all of the items
in the tablelist that contain at least one non-hidden selected
element. If there are no such items in the tablelist then an
empty string is returned.
pathName delete first
last
pathName delete indexList
- Deletes one or more items of the tablelist if its
state 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 lastColumn
pathName deletecolumns
columnIndexList
- Deletes one or more columns of the tablelist if its
state 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
cellIndex
- Starts the interactive editing of the cell's contents if the
tablelist's
state is not
disabled, the cell's row and column are 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
editwintag
-
Returns the name of a binding tag whose name depends on the path name
of the tablelist widget and which is associated with some of the
components of the temporary embedded widget used for interactive cell
editing. These components 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). This binding tag precedes the tag
TablelistEdit in the
list of binding tags of the edit window components mentioned above,
and is designed to be used when defining individual binding scripts
for controlling the interactive cell editing. For example, the
following command will replace the standard behavior of the
Return key during cell editing in the tablelist widget
.tbl with that of the Tab key:
bind [.tbl editwintag] <Return> "[bind TablelistEdit <Tab>]; break"
pathName
editwinpath
- Returns the path name of the temporary embedded widget used for
interactive cell editing, created by the
editcell 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
entrypath
- Returns the path name of the entry or entry-like component of the
temporary embedded widget used for interactive cell editing, created by
the
editcell
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, Tk text, Tk or tile 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 text
- Sets all the elements of the specified column to the value
text.
pathName
finishediting
-
This subcommand attempts to terminate the interactive editing of the
contents of the cell whose index was passed to the
editcell 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 (together with
Control if the edit window is a text widget) 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.
There are also situations where an explicit invocation of
this subcommand is needed, in order to make sure that the cell just
being edited gets updated with the text entered by the user.
For example, if a tablelist widget is part of a dialog used for
editing some data, then the binding script associated with the button
designed to accept the data should call this subcommand, because
otherwise, if the button is pressed during interactive cell editing
then the text entered into the edit window will get lost.
pathName
formatinfo
-
This command is designed to be invoked from within a Tcl command
specified as the value of the
-formatcommand column
configuration option. It returns a three-element list
containing information about the tablelist cell whose content is
being formatted with the aid of that command. The first element
of the list is the full key (of the form
knumber) associated with the item
containing the tablelist element that is being formatted. The
second and third elements of the list are the cell's row and column
indices.
This subcommand is needed in cases where the result of the
formatting should depend on the cell's row. To be able to use
it, specify the value of the -formatcommand
column configuration option as [list
formatCommand pathName], like in the
following example:
.tbl columnconfigure 1 -formatcommand [list formatValue .tbl]
proc formatValue {tbl val} {
# Get information about the cell whose content is being formatted
foreach {key row col} [$tbl formatinfo] {}
# Return a string depending on $val and $row (or $key)
. . .
}
pathName get first
last
pathName get indexList
- The first form of the command returns a list whose elements are all
of the tablelist items (i.e., row contents) between
first 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 lastCell
pathName getcells cellIndexList
- The first form of the command returns a list whose elements are all
of the tablelist elements (i.e., cell contents) between
firstCell 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 lastColumn
pathName getcolumns
columnIndexList
- The first form of the command returns a list whose elements are
lists themselves, where each of the sublists corresponds to exactly one
column between
firstColumn 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
last
pathName getkeys indexList
- The first form of the command returns a list whose elements are all
of the sequence numbers associated with the tablelist items between
first 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 hasattrib
name
- Returns
1 if the attribute name
exists and 0 otherwise.
pathName hascellattrib
cellIndex name
- Returns
1 if the attribute name
for the cell given by cellIndex exists and
0 otherwise.
pathName
hascolumnattrib columnIndex name
- Returns
1 if the attribute name
for the column given by columnIndex exists and
0 otherwise.
pathName hasrowattrib
index name
- Returns
1 if the attribute name
for the row given by index exists and
0 otherwise.
pathName
imagelabelpath cellIndex
- Returns the path name of the label widget containing the image
embedded into the cell given by
cellIndex, 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
index
- Returns the integer row index value that corresponds to
index. 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 ...?
- Inserts zero or more new items 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
characters are displayed as \t (i.e., a backslash followed
by a t) but are inserted unchanged into the internal
list. Newline characters will force line breaks, i.e., will give
rise to multi-line elements (which are displayed in embedded message
widgets, created on demand). The return value is an empty
string.
pathName
insertcolumnlist columnIndex
columnList
-
Inserts the columns specified by the list
columnList 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?
...?
- Inserts zero or more new columns 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
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 itemList
-
Inserts the items of the list
itemList 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 characters are displayed as \t (i.e., a
backslash followed by a t) but are inserted unchanged
into the internal list. Newline characters will force line
breaks, i.e., will give rise to multi-line elements (which are
displayed in embedded message widgets, created on demand). 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
iselemsnipped cellIndex fullTextName
- Returns the value
1 if the text displayed in the cell
specified by cellIndex is snipped and
0 otherwise. In both cases, the full (unsnipped)
cell text is stored in the variable having the name given by
fullTextName; this full text can be the cell's
contents or the string obtained from the latter by using the
-formatcommand
option of the cell's column. The most common invocation of this
command occurs within the procedure specified as the value of the
-tooltipaddcommand
configuration option.
pathName
istitlesnipped columnIndex
fullTextName
- Returns the value
1 if the text displayed in the
header label specified by columnIndex is snipped
and 0 otherwise. In both cases, the full (unsnipped)
label text is stored in the variable having the name given by
fullTextName. The most common invocation of
this command occurs within the procedure specified as the value of the
-tooltipaddcommand
configuration option.
pathName
itemlistvar
-
Returns the name of a variable used by Tablelist to hold the widget's
internal list. The recommended way to use this variable is to
create a link to it with the aid of the
upvar
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 for 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
columnIndex
- Returns the path name of the header label corresponding to the
column indicated by
columnIndex.
pathName labels
- Returns a list containing the path names of all header labels of
the widget.
pathName
labeltag
- Returns the name of a binding tag whose name depends on the path
name of the tablelist widget and which is associated with the header
labels as well as with the additional widgets placed by Tablelist into
the latters for displaying header images and sort arrows. This
binding tag is designed to be used when defining non-default binding
scripts for the header labels. From within such event handling
scripts you can retrieve the column number and the tablelist widget's
path name with the aid of the helper commands
tablelist::getTablelistColumn
and tablelist::getTablelistPath.
pathName move source
target
- Moves the item indicated by
source 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 targetColumn
- Moves the column indicated by
sourceColumn 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
y
- Given a y-coordinate within the tablelist window, this command
returns the index of the non-hidden tablelist item nearest to that
y-coordinate. The coordinate
y is expected to
be relative to the tablelist window itself (not its body
component).
pathName nearestcell
x y
- Given an x- and a y-coordinate within the tablelist window, this
command returns the index of the non-hidden tablelist cell nearest to
the point having these coordinates. The coordinates
x and y are expected to be
relative to the tablelist window itself (not its body component).
pathName nearestcolumn
x
- Given an x-coordinate within the tablelist window, this command
returns the index of the non-hidden tablelist column nearest to that
x-coordinate. The coordinate
x is expected to
be relative to the tablelist window itself (not its body
component).
pathName
rejectinput
- If invoked from within the Tcl command specified by the
-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
resetsortinfo
- Resets the information about the sorting of the items.
Subsequent invocations of
sortcolumn and sortorder will return -1 and
an empty string, respectively. Similarly, subsequent invocations
of sortcolumnlist and
sortorderlist will
return an empty string. This command also removes any existing
up- or down-arrows displayed by an earlier invocation of
sortbycolumn or
sortbycolumnlist. The return
value is an empty string.
pathName rowattrib
index ?name? ?value name value
...?
- Queries or modifies the attributes of the row given by
index. If no name is
specified, the command returns a list of pairs, each of which contains
the name and the value of an attribute for the row. If
name is specified with no
value, then the command returns the value of the
one named row attribute, or an empty string if no corresponding value
exists (you can use the hasrowattrib subcommand to distinguish
this case from the one that the value of an existing row
attribute is an empty string). If one or more
name-value pairs are specified,
then the command sets the given row attribute(s) to the given value(s);
in this case the return value is an empty string.
name may be an arbitrary string.
pathName rowcget index
option
- Returns the current value of the row configuration option given by
option 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
...?
- Queries or modifies the configuration options of the row given by
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
args
- This command is used to implement scanning on tablelist
widgets. It has two forms, depending on
option:
-
pathName scan mark x
y
- Records
x 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
y
- This command computes the difference between its
x 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
index
- Adjusts the view in the tablelist so that the item given by
index 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
cellIndex
- Adjusts the view in the tablelist so that the cell given by
cellIndex 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
columnIndex
- Adjusts the view in the tablelist so that the column given by
columnIndex 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 args
- This command is used to adjust the selection within a tablelist
widget. It has several forms, depending on
option:
-
pathName selection anchor
index
- Sets the selection anchor to the item given by
index. If index
refers to a nonexistent or hidden item, then the closest non-hidden
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
last
pathName selection clear
indexList
- If any of the items between
first and
last (inclusive) or corresponding to the
indices specified by the list indexList contain
at least one 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
index
- Returns
1 if the item indicated by
index contains at least one non-hidden selected
cell, 0 if it doesn't.
pathName selection set first
last
pathName selection set
indexList
- Selects all of the selectable items in the range between
first and last, inclusive,
or corresponding to the indices specified by the list
indexList, without affecting the selection
state of any other items.
If the tablelist's 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?
- If the optional argument is not specified, then this command
returns the path name of the special separator displayed to mark the
end of the title columns if the value of the
-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
- Returns a list containing the path names of all column
separators. If the value of the
-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 size
- Returns the total number of items in the tablelist widget.
pathName sort
?-increasing|-decreasing?
- Sorts the items in increasing or decreasing order, as specified by
the optional argument. The default is
-increasing. Uses the value of the
-sortcommand widget
configuration option as comparison command.
sort also removes any existing up- or down-arrows
displayed by an earlier invocation of sortbycolumn or sortbycolumnlist. After
sorting the items, the command conditionally adjusts the vertical 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?
-
Sorts the items based on the elements of the column given by
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 text is 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 vertical view is
adjusted in the same way as in the case of the sort subcommand.
The actions described above are only performed if the specified
column's -showlinenumbers option hasn't
been set to true.
pathName
sortbycolumnlist columnIndexList
?sortOrderList?
-
Sorts the items based on the elements of the columns given by the
columnIndexList argument, which must be a list of
distinct column indices. Only those elements of this list are
considered significant that identify columns whose -showlinenumbers option hasn't
been set to true.
The items are first sorted based on the column specified by the
last significant element of columnIndexList, then
based on the one given by the last but one significant element, and
so on. The order of each sort operation is taken from the
optional argument sortOrderList, whose elements
must be (abbreviations of) increasing or
decreasing. If this argument was not
specified or contains less elements than
columnIndexList then the missing sort orders are
assumed to be increasing. Each sorting
process is controlled by the values of the -sortmode and -sortcommand options for the
respective column. If the column's index was specified among
the first 9 significant elements of
columnIndexList and both the value of the
-showarrow configuration
option and that of the -showarrow option for that 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 respective sort order and on the value of the
-incrarrowtype
configuration option. If the label's text is right-aligned then
the arrow will be displayed on the left side of the label, otherwise
on its right side. If more than one sort arrows are to be
displayed then the first 9 sort ranks (1 for the first
significant element of columnIndexList,
2 for the second one, and so on) will also be shown to
the right of the arrows. After sorting the items, the vertical
view is adjusted in the same way as in the case of the
sort subcommand.
pathName
sortcolumn
- Returns the numerical index of the column by which the items were
last sorted with the aid of the
sortbycolumn or sortbycolumnlist 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
sortcolumnlist
- Returns a list consisting of the numerical indices of the columns
by which the items were last sorted with the aid of the
sortbycolumnlist or
sortbycolumn command
(in the second case the list will contain exactly one element), or an
empty string 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
sortorder
- Returns the sort order (as
increasing or
decreasing) from the last sorting performed by the
sort, sortbycolumn, or sortbycolumnlist command, or an
empty string if the items haven't been sorted at all, or the sort
information was reset by invoking resetsortinfo.
pathName
sortorderlist
- Returns a list consisting of the sort orders (as
increasing or decreasing) from
the last invocation of the sortbycolumnlist or
sortbycolumn command
(in the second case the list will contain exactly one element), or an
empty string if the items were last sorted with the sort command or haven't been sorted at all, or
the sort information was reset by invoking resetsortinfo.
pathName
togglecolumnhide firstColumn lastColumn
pathName togglecolumnhide
columnIndexList
- Toggles the value of the
-hide option for one or more columns of the
tablelist widget. 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. After toggling the hidden state of the specified columns,
the <<TablelistColHiddenStateChanged>>
virtual event is generated. 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 togglerowhide
first last
pathName togglerowhide indexList
-
Toggles the value of the
-hide option for one or more rows of the
tablelist widget. In the first form of the command,
first and last are indices
specifying the first and last rows in the range whose visibility is
to be toggled. The command's second form accepts a list
indexList of indices specifying the rows whose
visibility is to be toggled. Returns an empty string.
After toggling the hidden state of the specified rows, the
<<TablelistRowHiddenStateChanged>>
virtual event is generated. Just like the
-hide row configuration option, this subcommand
is not supported for Tk versions earlier than 8.3.
CAUTION: Tk versions 8.3 - 8.4.12 had a bug that
caused a segmentation fault if the whole content of a text widget was
elided. This bug was also present in Tk 8.5.a1 - 8.5.a3.
When using one of these earlier Tk versions, this bug will produce a
crash if all the rows of a tablelist widget are hidden. It is
your responsibility to avoid such situations when using a Tk version
having this bug!
pathName unsetattrib
name
- Unsets the attribute
name. Returns an
empty string.
pathName
unsetcellattrib cellIndex name
- Unsets the attribute
name for the cell given by
cellIndex. Returns an empty string.
pathName
unsetcolumnattrib columnIndex name
- Unsets the attribute
name for the column given
by columnIndex. Returns an empty string.
pathName
unsetrowattrib index name
- Unsets the attribute
name for the row given by
index. Returns an empty string.
pathName windowpath
cellIndex
- Returns the path name of the window contained in the cell given by
cellIndex, 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
args
- This command is used to query and change the horizontal position of
the information in the widget's window. It can take any of the
following forms:
-
pathName xview
- Returns a list containing two elements. Each element is a
real fraction between
0 and 1; together
they describe the horizontal span that is visible in the
window. For example, if the first element is .2
and the second element is .6, 20% of the 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
- If the value of the
-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
fraction
- Adjusts the view in the window so that
fraction 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
what
- This command shifts the view in the window left or right
according to
number and
what. number must be
an integer. what must be either
units or pages or an
abbreviation of one of these. If what is
units, the view adjusts left or right by
number non-hidden 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
args
- This command is used to query and change the vertical position of
the text in the window of the widget's body component. It can
take any of the following forms:
-
pathName yview
- Returns a list containing two elements, both of which are real
fractions between
0 and 1. The
first element gives the position of the non-hidden 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
non-hidden 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 units
- Adjusts the view in the window so that the item whose offset
equals
units non-hidden rows is displayed at
the top of the window.
pathName yview moveto
fraction
- Adjusts the view in the window so that the non-hidden item
given by
fraction appears at the top of the
window. fraction is a fraction between
0 and 1; 0 indicates the
first non-hidden item in the tablelist, 0.33 indicates
the non-hidden item one-third the way through the tablelist, and so
on.
pathName yview scroll number
what
- This command shifts the view in the window up or down according
to
number and what.
number must be an integer.
what must be either units
or pages or an abbreviation of one of
these. If what is
units, the view adjusts up or down by
number non-hidden rows; 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.
DEFAULT AND INDIVIDUAL BINDINGS FOR THE
TABLELIST BODY
-
The body component of a tablelist is implemented as a text widget whose
binding tag
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
Message of the message widgets used to display
multi-line elements, as well as 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, multi-line cells, 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, multi-line cells, 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:
- If
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.
- If the
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.
- In
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.
- If the
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.
- In
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.
- If the location cursor is in an editable cell then
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.
- DEFAULT AND INDIVIDUAL BINDINGS FOR THE
HEADER LABELS
-
The
tablelist::tablelist command automatically
creates the following bindings for the header labels:
- If the mouse pointer is on the right edge of a header label or
within a few pixels of its right edge, 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 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. When the column resize operation is
finished, the virtual event
<<TablelistColumnResized>> is
generated.
- If mouse button 1 is pressed over a header label but outside the
resize area described above and then dragged outside the label, and the
value of the
-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.
- If mouse button 1 is pressed over a header label but outside the
resize area described above and later released over the same label, and
the command specified by the
-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. If mouse button 1 was pressed together with the
Shift key then the widget- or column-specific command
mentioned above will be replaced with the one specified by the
-labelcommand2 option
at widget or column level.
- The Tablelist package defines the virtual
event
<<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),
and the virtual event
<<TablelistColumnResized>> is
generated. The same action is triggered by double-clicking the
resize area of a header label.
- The Tablelist package defines the virtual event
<<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) and the virtual event
<<TablelistColumnResized>> is
generated. The same action is triggered by double-clicking the
resize area of a header label with the Shift key held
down.
If the tablelist's state is
disabled then none of the above actions occur: the
labels are completely insensitive.
If you want to define non-default bindings for the header labels, it
is recommended to associate them with the binding tag whose name is
returned by the labeltag
subcommand and make use of the helper commands tablelist::getTablelistColumn
and tablelist::getTablelistPath.
For example, to replace the default binding for
<Button-3> with a script that performs a
column-dependent action, you can proceed like in the code shown
below:
bind [.tbl labeltag] <Button-3> {
puts "right-clicked on header label no. [tablelist::getTablelistColumn %W]"
break
}
- DEFAULT BINDINGS FOR INTERACTIVE CELL
EDITING
-
The
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). The list of binding tags of these edit window
components contains two addditional tags, inserted just before their path
names: the binding tag whose name is returned by the editwintag subcommand, followed by the tag
TablelistEdit. The bindings described below are
associated with the tag TablelistEdit, and can be
overridden for individual tablelist widgets by making use of the binding
tag given by the editwintag
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 inserts a newline character into the edit
window's entry or entry-like components (if any), at the point of the
insertion cursor.
- If the edit window is a text widget then
Return and
KP_Enter insert a newline character at the point of the
insertion cursor. Otherwise they terminate the editing and
destroy the edit window.
Control-Return and Control-KP_Enter
terminate the editing and destroy the edit window.
Escape aborts the editing and destroys the edit
window.
- A click with the left mouse button anywhere in the tablelist's
body, outside the cell just being edited, terminates the editing in the
current cell and destroys the edit window or moves it into the cell
that was just clicked into if the latter is editable.
- When editing a cell that is not the only editable cell of the
tablelist widget,
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. If the new edit window is a text
widget then its contents are left unselected. 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.
- When editing a cell that is not the first/last editable cell within
its row,
Alt-Left/Alt-Right
(Command-Left/Command-Right on Mac OS Classic
and Mac OS X Aqua) 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
the new edit window is a text widget then its contents are left
unselected. The key sequence
Meta-Left/Meta-Right has the same effect as
Alt-Left/Alt-Right. If
tk_strictMotif is false and the edit window is not
a text widget 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.
- When editing a cell that is not the first/last editable cell within
its column,
Alt-Up/Alt-Down
(Command-Up/Command-Down on Mac OS Classic
and Mac OS X Aqua) 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. If the new edit
window is a text widget then its contents are left unselected.
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
a text widget or 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.
- When editing a cell that is not the first/last editable cell within
its column,
Alt-Prior/Alt-Next
(Command-Prior/Command-Next on Mac OS Classic
and Mac OS X Aqua) 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. If the new edit
window is a text widget then its contents are left unselected.
The key sequence Meta-Prior/Meta-Next has the
same effect as Alt-Prior/Alt-Next. If
the edit window is not a text widget, BWidget SpinBox, Oakley combobox,
or a mentry widget of type "Date", "Time",
"DateTime", "IPAddr", or
"IPv6Addr", then Prior/Next has
the same effect as Alt-Prior/Alt-Next.
- When editing a cell that is not the only editable cell of the
tablelist widget,
Alt-Home/Alt-End
(Command-Home/Command-End on Mac OS Classic
and Mac OS X Aqua) 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
the new edit window is a text widget then its contents are left
unselected. The key sequence
Meta-Home/Meta-End has the same effect as
Alt-Home/Alt-End. If
tk_strictMotif is false and the edit window is not
a text widget then Meta-< and Meta->
behave the same as Alt-Home and Alt-End,
respectively. If the edit window is not a text widget then
Control-Home/Control-End has the same effect
as Alt-Home/Alt-End.
Before moving the edit window, the key sequences mentioned under 7 -
11 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
(Command-Up/Command-Down on Mac OS Classic and
Mac OS X Aqua) 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.
- KEYWORDS
- tablelist, multi-column, listbox, widget
|