Wine integration with native (Gtk, Qt, Cocoa/Carbon) themes

Tomasz Sałaciński tsalacinski at gmail.com
Sat Nov 1 10:05:18 CDT 2008


IMHO WINE developers should first focus on applications, not their look.
I believe most users would like to see Visual Studio running in gray
instead of not running as native.

Dnia 2008-11-01, sob o godzinie 14:58 +0000, Reece Dunn pisze:
> 2008/11/1 Roderick Colenbrander <thunderbird2k at gmx.net>:
> > In the end we need to support a bunch of different theme engines GTK, QT, Cocoa and perhaps later on more. In theory it would be possible to create a different uxtheme backend for each different toolkit. One major issue is the language which each of these toolktis is written in. GTK would be fine as it is C but QT and Cocoa require respectively C++ and Objective C. Alexandre doesn't want such languages in (although he might make an exception for the winecocoa driver if it is really, really needed).
> 
> I mentioned that in my email. The idea that wine would host the XP
> msstyles theme (the fallback behaviour for uxtheme), and a GTK plugin
> to support GTK themes. Then other projects can provide a Qt and Cocoa
> plugin, so they can be written in the toolkit's language.
> 
> > While using a language different than C is a definitive no, I think Alexandre might allow the use of other languages in helper programs. The best way would be to write a separate program (which would have backends for all the needed toolkits) which generates a .msstyles theme (or if Vista uses a newer and better format, lets directly move to that format). The main issue would then be on how to sync themes. I guess that would need to be done at wine startup.
> 
> The problem with the Vista theme is that it is binary and completely
> undocumented, making it very difficult to reverse engineer.
> 
> Moving forward, we'll probably need to be able to support both XP and
> Vista themes (possibly Windows 7 and later as well if the theme format
> has changed). I don't know if moving the processing of that into a
> separate process would help, though.
> 
> When syncing themes, you can have uxtheme.dll loading the correct
> engine if enabled (see my "Use the native theme" option idea in my
> previous discussion on improving winecfg). Then, if the system theme
> changes, the WM_THEMECHANGED message needs to be sent to all top-level
> applications so they can refresh themselves to use that new theme. How
> that happens and where needs to be figured out.
> 
> And yes, the bugs in uxtheme and the various controls need fixing.
> 
> - Reece
> 
> 




More information about the wine-devel mailing list