On 26.03.2016 22:34, Ivan Akulinchev wrote:
I wrote a brief roadmap:
- 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.
- 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.
- 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)?
- 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.
- 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?
- Add support for animated transitions like Windows Vista does.
What is affected by this exactly?
- Fix other problems in comctl32 that I hate...
Sure, but could you give a draft list for that?