[pygtk] pyGTK + windows + skins

Fabien COUTANT Fabien.Coutant at steria.com
Thu Mar 18 20:46:52 WST 2004


Hi!  Since I use GTK2 for a project at work I can give some advice on
this...

On Thursday, 18 March 2004, you (Tyler W. Wilson) wrote:
| - The standard location for themes is <GTK Folder>/2.0/share/themes. You 
| can drop any theme you want in there.

More exactly the location is <GTK folder>/share/themes.

| - Theme engines go into <GTK Folder>/lib/gtk-2.0/2.2.0/engines. The only 
| one included in the standard package is libwimp.dll. I have successfully 
| built and used cleanice and xfce - it was quite straightforward if you 
| have the GTK Dev package installed (I used Visual C++ 6).

Right.  I have personally successfully built several engines with MinGW
+ MSYS + some hand tweaking:  bluecurve, cleanice, galaxy, industrial,
thincream, thinice, xfce, pixbuf (aka pixmap in GTK1).

I also got other engines from a previous GTK/Win32 distro: 
lighthouseblue, metal, mist, redmond95, smooth, wimp.  I think all Unix
engines compile easily on Windows too, except maybe QtPixmap.

All themes mostly work with some off-by-one glitch drawing seen on the
right of some borders.  I have submitted a patch to sourceforge to
request their inclusion in the main distro a while ago, with no luck. 
Check the patches page on http://sourceforge.net/projects/gtk-win/ (I
had to split the file in 4 parts).

| The tricky bit is how to tell GTK on Windows which theme to use. There 
| are at least 3 ways to do this (though I have only tested 2):
|
| I was hoping to build a little theme-switcher in PyGTK, but have not 
| found the proper incantations to tell an application to redraw itself (I 
| am new at this PyGTK thing).

System-wide wise, you have to edit <GTK folder>/etc/gtk-2.0/gtkrc and
place an include directive inside for your wanted theme's gtkrc.

You can do it by hand or more easily use use gtk2_prefs by Alex Shaduri
from http://members.lycos.co.uk/alexv6/, which will also let you change
the font to use.

-- 
Hope this helps,
Fabien.


More information about the pygtk mailing list