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?