The tile theme engine is a compiled library extension for Tcl/Tk versions 8.4 or higher. Beginning with Tk 8.5a6, tile is integrated into the Tk core. For earlier Tk versions it can be downloaded from the address
https://sourceforge.net/projects/tktable//files/tile
Tablelist supports interactive cell editing with the aid of the tile
entry, spinbox, combobox, checkbutton, and menubutton widgets, accessed as
ttk::entry
, ttk::spinbox
,
ttk::combobox
, ttk::checkbutton
, and
ttk::menubutton
, respectively. The fully-qualified
names ::ttk::entry
, ::ttk::spinbox
,
::ttk::combobox
, ::ttk::checkbutton
,
and ::ttk::menubutton
are also supported. The
version of the tile package must be 0.6 or higher (the tile spinbox requires
even tile 0.8.3 or later, or, alternatively, Tk 8.5.9 or later). These
widgets are automatically registered for cell editing, hence the only action
needed for using one of them for editing the cells of a given column is as
follows:
Use the tablelist widget's columnconfigure
subcommand to set the given column's -editable
option to true
and its -editwindow
option to
ttk::entry
, ttk::spinbox
,
ttk::combobox
, ttk::checkbutton
, or
ttk::menubutton
(or to the corresponding fully-qualified
name), respectively. (These options are supported at cell level, too,
with the aid of the cellconfigure
subcommand.)
REMARK 1: When using one of the built-in themes, the
temporary embedded tile widget used for interactive cell editing will appear
properly scaled, according to the display's DPI scaling level, given by the
variable tablelist::scalingpct
. The only exception
is the tile checkbutton widget, which will be scaled as expected for the
themes aqua
, clam
,
classic
, default
,
vista
, and xpnative
, but, for
technical reasons, cannot be scaled if the theme is alt
or winnative
.
REMARK 2: One known limitation of earlier tile versions was
that the (ttk::)style theme use
command could
only be used to set the current theme, but not to retrieve it. For this
reason, if Tablelist cannot get the current theme with the aid of
ttk::style theme use
then it makes use of the
variable ttk::currentTheme
or
tile::currentTheme
(depending on the tile version), which
is set by the ttk::setTheme
or
tile::setTheme
command. From this it follows that
if the tile version being used doesn't support the
ttk::style theme use
command without an argument
then the tile widgets used for interactive cell editing will only be managed
as expected if the platform-specific default theme is either left unchanged
or replaced with another theme by invoking the library procedure
ttk::setTheme
or tile::setTheme
,
depending on the current tile version. (See also the tablelist::setTheme
command.)
-style
option. Apart from its theme-specific
appearance, it behaves just like its Tk core counterpart.-style
option and with its -state
option set to normal
, which makes the widget
editable. You can use the script corresponding to the
-editstartcommand
tablelist configuration option to set the state of the spinbox to
readonly
or define validations for it, as well as for
setting its (range of) values and its -wrap
option. Apart from its theme-specific appearance, it behaves just
like its Tk core counterpart.-style
option and with its -state
option set to normal
, which makes the widget
editable. You can use the script corresponding to the
-editstartcommand
tablelist configuration option to set the state of the combobox to
readonly
or define validations for it, as well as for
populating its listbox component (with the aid of the combobox widget's
-values
option).-style
and -variable
options.
You can use the script corresponding to the -editstartcommand
tablelist configuration option to set any other configuration options, like
-offvalue
and -onvalue
, according
to the internal values of the cells. Since the default values
of the -offvalue
and -onvalue
tile
checkbutton options are 0
and 1
, you don't need
to change these options if the cells have the same internal values
0
and 1
.-style
and -textvariable
options. In addition, a menu with its -tearoff
option set to 0
and an appropriate script as the value of its
-postcommand
option is created and set as the value of
the menubutton's -menu
option. In an X11
environment, the menu's appearance is adapted to that of the tablelist
widget by setting its -background
,
-foreground
, -activebackground
,
-activeforeground
, and
-activeborderwidth
options to appropriate values.
You can use the script corresponding to the -editstartcommand
tablelist configuration option to set any other options of the menubutton
and/or its associated menu. You will, however, need this script in
the first place for populating the menu, preferably with radiobutton
entries. For every radiobutton entry added to the menu, the Tablelist
implementation will make sure that its value (which can be specified by
setting the entry's -value
or
-label
option) will be displayed in the menubutton as
its text when the entry is selected. (Tablelist achieves this by
setting the menu entry's -variable
option to the value
of the menubutton's -textvariable
option.) For
menu entries of types other than radiobutton (e.g., for command entries) it
is the responsibility of the application to make sure that the selected
entry's text will be shown in the menubutton (for example, with the aid of
the menu entry's -command
option).