You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.2 KiB
Plaintext
143 lines
4.2 KiB
Plaintext
3 weeks ago
|
One of the bad things about Tk/Tkinter is that it does not pick up
|
||
|
the current color and font scheme from the prevailing CDE/KDE/GNOME/Windows
|
||
|
window manager scheme.
|
||
|
|
||
|
One of the good things about Tk/Tkinter is that it is not tied to one
|
||
|
particular widget set so it could pick up the current color and font scheme
|
||
|
from the prevailing CDE/KDE/GNOME/Windows window manager scheme.
|
||
|
|
||
|
The WmDefault package is for making Tk/Tkinter applications use the
|
||
|
prevailing CDE/KDE/GNOME/Windows scheme. It tries to find the files
|
||
|
and/or settings that the current window manager is using, and then
|
||
|
sets the Tk options database accordingly (plus a few other things as well).
|
||
|
|
||
|
|
||
|
DOWNLOAD
|
||
|
--------
|
||
|
|
||
|
Download the latest version of wm_default from http://tix.sourceforge.net
|
||
|
either as a part of the standard Tix distribution, or as a part of the
|
||
|
Tix Applications: http://tix.sourceforge.net/Tide. wm_default does not
|
||
|
require Tix, but is Tix enabled.
|
||
|
|
||
|
|
||
|
USAGE:
|
||
|
------
|
||
|
|
||
|
For Tix versions 8.1.2 and above from http://tix.sourceforge.net,
|
||
|
WmDefault is the default Tix scheme, so there is nothing else to do.
|
||
|
|
||
|
For Tk applications, it should be sufficent at the beginning of a wish
|
||
|
app to simply:
|
||
|
|
||
|
package require wm_default
|
||
|
wm_default::setup
|
||
|
wm_default::addoptions
|
||
|
|
||
|
The process is divided into 2 steps:
|
||
|
|
||
|
1) find the files and/or settings (::wm_default::setup).
|
||
|
This is complete for Windows, pretty good for KDE and CDE, and
|
||
|
still barely supported for GNOME because of the difficulty
|
||
|
of finding and parsing sawfish definition files.
|
||
|
setup takes one optional argument: wm, the name of the window manager
|
||
|
as a string, if known. One of: windows gnome kde1 kde2 cde.
|
||
|
|
||
|
2) Setting the Tk options database (::wm_default::addoptions).
|
||
|
You can override the settings in 1) by adding your values to the call
|
||
|
to addoptions:
|
||
|
::wm_default::addoptions -foreground red -background blue
|
||
|
|
||
|
You can examine the settings with
|
||
|
::wm_default::getoptions
|
||
|
which returns a Tcl array of the current settings, and
|
||
|
::wm_default::parray
|
||
|
which returns a string of the current settings, one value-pair per line.
|
||
|
|
||
|
There are a number of assumptions built into the heuristics of addoptions,
|
||
|
that may need fine tuning. Post patches to http://tix.sourceforge.net.
|
||
|
|
||
|
|
||
|
PYTHON
|
||
|
______
|
||
|
|
||
|
If you are using Tix versions 8.1.2 and above from http://tix.sourceforge.net
|
||
|
with Python 2.1 and above, WmDefault is the default Tix scheme,
|
||
|
so there is nothing else you need to do.
|
||
|
|
||
|
The easiest way to install WmDefault for Tkinter is to copy the WmDefault.*
|
||
|
AND THE FILE pkgIndex.tcl from lib/tix8.1/pref to a directory on your
|
||
|
PYTHONPATH. Then the following should work:
|
||
|
|
||
|
import Tkinter
|
||
|
root = Tkinter.Tk()
|
||
|
import WmDefault
|
||
|
WmDefault.setup(root)
|
||
|
WmDefault.addoptions(root, {'foreground': 'red'})
|
||
|
print WmDefault.getoptions(root)
|
||
|
|
||
|
|
||
|
SETTINGS
|
||
|
--------
|
||
|
|
||
|
Here is a list of all the settings controlled by WmDefault:
|
||
|
wm - one of windows gnome kde1 kde2 cde kde
|
||
|
background
|
||
|
foreground
|
||
|
disabledforeground
|
||
|
disabledbackground
|
||
|
textfamily
|
||
|
systemfamily
|
||
|
menufamily
|
||
|
fixedfamily
|
||
|
fontsize - in pixels under Unix, in points under Windows
|
||
|
textbackground
|
||
|
textforeground
|
||
|
disabledtextbackground
|
||
|
selectbackground
|
||
|
selectforeground
|
||
|
selectcolor
|
||
|
highlightcolor
|
||
|
highlightbackground
|
||
|
scrollbars - scrollbar trough color
|
||
|
borderwidth
|
||
|
priority
|
||
|
menubackground
|
||
|
menuforeground
|
||
|
activebackground
|
||
|
activeforeground
|
||
|
system_font - a Tcl font spec, a list of family size weight
|
||
|
menu_font
|
||
|
fixed_font
|
||
|
text_font
|
||
|
linkcolor - not working completely yet
|
||
|
vlinkcolor
|
||
|
alinkcolor
|
||
|
|
||
|
|
||
|
|
||
|
TO MAKE A PREVIOUS TIX USE THIS AS THE DEFAULT SCHEME:
|
||
|
------------------------------------------------------
|
||
|
|
||
|
1) Compile Tix with
|
||
|
-DTIX_DEF_SCHEME "WmDefault"
|
||
|
-DTIX_DEF_FONTSET "WmDefault"
|
||
|
or change the defines in generic/tixInit.c
|
||
|
|
||
|
#define TIX_DEF_SCHEME "WmDefault"
|
||
|
#define TIX_DEF_FONTSET "WmDefault"
|
||
|
|
||
|
2) Edit the installed lib/8.1/Tix.tcl and change the -configspec
|
||
|
in tixClass tixAppContext with the following
|
||
|
{-fontset WmDefault}
|
||
|
{-scheme WmDefault}
|
||
|
|
||
|
3) Copy the files WmDefault.* AND pkgIndex.tcl to the installed
|
||
|
lib/tix8.1/pref
|
||
|
|
||
|
4) Make or edit the file lib/tix8.1/pkgIndex.tcl and add the lines
|
||
|
|
||
|
package ifneeded wm_default 1.0 \
|
||
|
[list source [file join $dir pref WmDefault.tcl]]
|
||
|
|