tablelist::setTheme
Commandtablelist::getCurrentTheme
Commandtablelist::getThemes
Commandtablelist::setThemeDefaults
CommandThe commands described in this reference page should only be invoked when using the package Tablelist_tile. They enable you to set and query the current theme, to retrieve a list of the available themes, and to make sure that your widgets will have a theme-specific appearance.
tablelist::setTheme
Commandtablelist::setTheme
– Set the current themetablelist::setTheme theme
theme
,
loading it if necessary. It is simply an alias for
ttk::setTheme
or tile::setTheme
,
depending on the tile version loaded into the interpreter. (The
tile::setTheme
command was renamed to
ttk::setTheme
in tile version 0.8.)tablelist::setTheme
command does exactly the same as
the original one: It loads the package implementing the given theme if
needed, sets the theme to the specified one, and saves the latter in the
variable ttk::currentTheme
or
tile::currentTheme
, depending on the current tile
version.tablelist::getCurrentTheme
Commandtablelist::getCurrentTheme
– Get the current
themetablelist::getCurrentTheme
ttk::style theme use
command. If
an old tile version is being used which doesn't yet support this method
then the command returns the value of the variable
ttk::currentTheme
or
tile::currentTheme
, depending on the tile
version. (The namespace containing the variable
currentTheme
was changed in tile version 0.8 from
tile
to ttk
.)tablelist::getThemes
Commandtablelist::getThemes
– Get the themes registered in
the package databasetablelist::getThemes
ttk::themes
or tile::availableThemes
, depending on the tile version
loaded into the interpreter. (The
tile::availableThemes
command was renamed to
ttk::themes
in tile version 0.8.)tablelist::setThemeDefaults
Commandtablelist::setThemeDefaults
– Set theme-specific
default values of some tablelist configuration optionstablelist::setThemeDefaults
tablelist::themeDefaults
with theme-specific default
values of a series of Tablelist configuration options. The array
names are the command-line names of the options, and the corresponding
array values are the default values of these configuration options for the
currently set tile theme.tablelist::themeDefaults
are:
-arrowcolor
, -arrowdisabledcolor
,
-arrowstyle
, -background
,
-disabledforeground
, -font
,
-foreground
, -labelborderwidth
,
-labelfont
, -labelforeground
,
-labelpady
, -selectbackground
,
-selectborderwidth
,
-selectforeground
,
-stripebackground
, and
-treestyle
. In addition, the command sets some
other array elements to theme-specific default values of the background and
foreground colors of the column labels in normal
,
disabled
, active
, and
pressed
states. (Tablelist needs the label colors
for handling sort arrows and images with transparent background in the
column labels.)tablelist::setThemeDefaults
command
is invoked by Tablelist_tile automatically at application start time and
when the <<ThemeChanged>>
virtual event is
sent to the main window. It is also invoked on Mac OS 10.14 (Mojave)
and later whenever the main window receives a
<<LightAqua>>
or
<<DarkAqua>>
virtual event, if the current
theme is aqua
. In these cases, after invoking the
tablelist::setThemeDefaults
command, Tablelist_tile
sends the virtual event
<<TablelistThemeDefaultsChanged>>
to the
main window and reconfigures all tablelist widgets of the application,
using the new default values of those options that were not set explicitly
to values different from the corresponding defaults.<<LightAqua>>
and
<<DarkAqua>>
are sent by Tk 8.6.10 and
later to all toplevel widgets whenever the system appearance toggles
between Light Mode and Dark Mode or the Accent Color in the General
Preferences changes. Tk versions 8.6.11 and later send these events
on Mac OS 10.15 (Catalina) and later also when changing the Highlight Color
in the General Preferences.tablelist::themeDefaults
, you can make sure that
classical Tk widgets, e.g., listbox and text, will have a theme-specific
appearance, just like the tile widgets. For example, you can add some
common configuration options to the option database as follows:if {[tk windowingsystem] eq "x11"} { option add *selectBackground $tablelist::themeDefaults(-selectbackground) option add *selectForeground $tablelist::themeDefaults(-selectforeground) } option add *selectBorderWidth $tablelist::themeDefaults(-selectborderwidth)
<<TablelistThemeDefaultsChanged>>
to update
the appearance of your Tk widgets according to the new values contained in
the array tablelist::themeDefaults
, by binding to the
dedicated binding tag TablelistMain
associated with the
main window:bind TablelistMain <<TablelistThemeDefaultsChanged>> ...
TablelistMain
is assigned by
Tablelist_tile to the main window and used internally for handling the
virtual events <<ThemeChanged>>
,
<<LightAqua>>
, and
<<DarkAqua>>
. As shown above,
applications can make use of it, e.g., to handle the virtual event
<<TablelistThemeDefaultsChanged>>
.