[GSoC] Support of pluggable theming engines

Nikolay Sivov bunglehead at gmail.com
Sun Mar 27 00:48:35 CDT 2016


On 26.03.2016 22:34, Ivan Akulinchev wrote:
> I wrote a brief roadmap:
> 
> 1. Improve uxtheme handles. Currently they are just void pointers to
>    the internal structures. All other libraries do it using a handle
>    table [1, 2, 3].

Right.

> 2. Move all MSSTYLES-related code to winemsstyles.drv. At this step
>    such uxtheme functions as DrawThemeBackground will be stubbed.

I don't think this step is needed, MSSTYLES stuff could stay in uxtheme,
acting similar to null driver from user32.

> 3. Add support for uxtheme drivers. At the startup the registry key
>    HKCU\Software\Wine\Drivers\Theme will be read. This is a comma-
>    separated list such as "gtk3,qt5,mac,msstyles". In the loop all
>    drivers will be tried until the working one found. Note the
>    suggested order. If winegtk3.drv see the DESKTOP_SESSION
>    environment variable is set to KDE, it should return FALSE from the
>    entry point, so wineqt5.drv will be tried. This is a bug founded by
>    Ruslan Kabatsayev last year [4]. If nothing found, the last one
>    (winemsstyles.drv) should be used.

Just curious, did you explore the ways to implement qt5 variant (let
alone mac)?

> 4. Work on the activation context. This is a complex step I need to
>    describe separately...

Class redirection context support is already there, user32 does not
honor it, that's the problem.

> 6. Add double buffering support to comctl32 (I hate flipping!!!)

Some controls have double buffering mode, when working without theme.
You mean here only the case when theme is active?

> 7. Add support for animated transitions like Windows Vista does.

What is affected by this exactly?

> 8. Fix other problems in comctl32 that I hate...

Sure, but could you give a draft list for that?




More information about the wine-devel mailing list