|
ActiveTcl User Guide |
|
Contents
Overview
The 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.
The
tablelist::setTheme Command
- NAME
tablelist::setTheme - Set the current theme
SYNOPSIS
-
tablelist::setTheme theme
- DESCRIPTION
- This command sets the current theme to
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.)
Being just an alias for a tile library procedure, the
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.
- KEYWORDS
- tablelist, theme, tile
The
tablelist::getCurrentTheme Command
- NAME
tablelist::getCurrentTheme - Get the current
theme
SYNOPSIS
-
tablelist::getCurrentTheme
- DESCRIPTION
- This command returns the value of the variable
ttk::currentTheme or
tile::currentTheme, depending on the tile
version loaded into the interpreter. (The namespace
containing the variable currentTheme was
changed in tile version 0.8 from tile to
ttk.)
KEYWORDS
- tablelist, theme, tile
The
tablelist::getThemes Command
- NAME
tablelist::getThemes - Get the themes registered
in the package database
SYNOPSIS
-
tablelist::getThemes
- DESCRIPTION
- This command returns a list of the themes registered in the
package database. It is simply an alias for
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.)
KEYWORDS
- tablelist, theme, tile
The
tablelist::setThemeDefaults Command
- NAME
tablelist::setThemeDefaults - Set theme-specific
default values of some tablelist configuration options
SYNOPSIS
-
tablelist::setThemeDefaults
- DESCRIPTION
- This command populates the array
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 whenever a tablelist widget
is createad or the <<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 any
tile-based tablelist widget. 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)
- KEYWORDS
- tablelist, theme, tile
|