uxtheme.dll

James Gregory james at linuxaus.com
Wed Oct 1 01:48:47 CDT 2003


On Wed, 2003-10-01 at 12:21, Kevin Koltzau wrote:
> I'm aware of the scope of the project. The general design of uxtheme lends 
> itself well to being done incrementally, eg. controls could be modified as 
> support for the particular control is implemented, etc.
> Also part of the API are a few functions (IsThemeActive & IsAppThemed) which 
> will allow themes to be disabled in the beginning for theme aware 
> applications until sufficient support has been built or if themes are 
> disabled via config/registry.

Some time ago I started hacking in support for GTK themes. When I first
suggested this project to the list there was suggestions that doing it
with uxtheme.dll was the way to go. I agreed, but didn't have winxp to
play with, so I kept tinkering on this project with the intent of
learning a bit more about how wine works (which meant learning a lot
about how GDI and X works, though I didn't realise that I'd need to know
that stuff when I started on the project). I actually managed to get
some results which were starting to look promising (though there's no
way I'd submit that code as a patch). Screenshots here (the checkbox
being the only important part):
        
        http://james.id.au/wine/wine-ss1.png
        http://james.id.au/wine/wine-ss2.png
        http://james.id.au/wine/wine-ss3.png
        
Anyway, the reason I'm posting is not to suggest that this code be used
(nor the approach I took), but to mention that if theming code is to be
written that I think it's really important to have a way to pass off
rendering of controls etc to a .so that can be dlopened and called with
dlsym. IIRC the existing system uses a function lookup table, so there
shouldn't be much that needs to change for this to occur -- only the
initialisation of this function table and probably some hooks so that
these .sos can detect whether or not they'll work with the current
configuration (as an example the way I was doing gtk theming won't work
with anything that isn't x11drv. I don't like breaking encapsulation
like this, but it sounds like it's practical in this case). I don't know
if I can be of any help, but I'm interested in trying -- please keep me
posted.

James.

> On Tuesday 30 September 2003 02:21 am, Roderick Colenbrander wrote:
> > I hope you know what you will begin with. (For the ones that don't know
> > uxtheme.dll is the dll that takes care of all theming on WinXP and it is
> > the dll that dlls like comctl32 and all others use for theming)
> >
> > Some time ago I checked out uxtheme.dll a bit and it seems that it needs
> > changes all over Wine. As I understand it WinXP ships with two sets of
> > comctl32.dll and friends. One is the "old" version and one is a new uxtheme
> > aware version. The uxtheme aware version contains lots of changes and uses
> > uxtheme for theming. To use uxtheme you need to add uxtheme support to the
> > dlls that need it which looks like a huge job. Perhaps this is something
> > post Wine-1.0?
> >
> > Roderick Colenbrander
> 
> 




More information about the wine-devel mailing list