| 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]] | |