tablelist::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.
The options whose names and values are written into the array
tablelist::themeDefaults
are:
-background
, -foreground
,
-disabledforeground
,
-stripebackground
,
-selectbackground
,
-selectforeground
,
-selectborderwidth
, -font
,
-labelbackground
,
-labelforeground
, -labelfont
,
-labelborderwidth
, -labelpady
,
-arrowcolor
, -arrowdisabledcolor
,
and -arrowstyle
. 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
disabled
, active
, and
pressed
states. (Tablelist needs the label
colors for handling sort arrows and images with transparent background in
the column labels.)
The tablelist::setThemeDefaults
command is invoked
by Tablelist_tile automatically when the first tablelist widget is
createad or a <<ThemeChanged>>
virtual
event is received by a tablelist widget. In the latter case, the
widget is reconfigured, using the new default values of those options
that were not set explicitly to values different from the corresponding
defaults.
Besides being used by the Tablelist_tile code, this command can also
be invoked in Tcl scripts, still before creating tile-based tablelist
widgets. By calling it explicitly and using the values written by
it into the array 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:
tablelist::setThemeDefaults if {$tile::currentTheme eq "aqua"} { option add *Listbox.selectBackground \ $tablelist::themeDefaults(-selectbackground) option add *Listbox.selectForeground \ $tablelist::themeDefaults(-selectforeground) } else { option add *selectBackground $tablelist::themeDefaults(-selectbackground) option add *selectForeground $tablelist::themeDefaults(-selectforeground) } option add *selectBorderWidth $tablelist::themeDefaults(-selectborderwidth)