NAME¶
Tk::palette - Modify the Tk color palette
SYNOPSIS¶
$widget->
setPalette(
background)
$widget->
setPalette(name=>
value?,
name=>
value
...?)
$widget->
bisque
DESCRIPTION¶
The
setPalette method changes the color scheme for Tk. It does this by
modifying the colors of existing widgets and by changing the option database
so that future widgets will use the new color scheme. If
setPalette is
invoked with a single argument, the argument is the name of a color to use as
the normal background color;
setPalette will compute a complete color
palette from this background color. Alternatively, the arguments to
setPalette may consist of any number of
name-
value pairs,
where the first argument of the pair is the name of an option in the Tk option
database and the second argument is the new value to use for that option. The
following database names are currently supported:
activeBackground foreground selectColor
activeForeground highlightBackground selectBackground
background highlightColor selectForeground
disabledForeground insertBackground troughColor
setPalette tries to compute reasonable defaults for any options that you
don't specify. You can specify options other than the above ones and Tk will
change those options on widgets as well. This feature may be useful if you are
using custom widgets with additional color options.
Once it has computed the new value to use for each of the color options,
setPalette scans the widget hierarchy to modify the options of all
existing widgets. For each widget, it checks to see if any of the above
options is defined for the widget. If so, and if the option's current value is
the default, then the value is changed; if the option has a value other than
the default,
setPalette will not change it. The default for an option
is the one provided by the widget (
($w->configure('option'))[3])
unless
setPalette has been run previously, in which case it is the
value specified in the previous invocation of
setPalette.
After modifying all the widgets in the application,
setPalette adds
options to the option database to change the defaults for widgets created in
the future. The new options are added at priority
widgetDefault, so
they will be overridden by options from the .Xdefaults file or options
specified on the command-line that creates a widget.
The method
bisque is provided for backward compatibility: it restores the
application's colors to the light brown (``bisque'') color scheme used in Tk
3.6 and earlier versions.
BUGS¶
The use of option database names rather than the configure names is
understandable given the mechanism (copied from Tcl/Tk), but is potentially
confusing.
The interpolation of different 'shades' of color used for 3D effects in 'RGB'
space can lead to undesirable changes in 'hue'. Interpolation in 'HSV' (as
used in
Tk::ColorEditor) would be more robust and X11R5's color support
probably even more so.
SEE ALSO¶
Tk::options
KEYWORDS¶
bisque, color, palette