[GSoC] Support of pluggable theming engines
Ivan Akulinchev
ivan.akulinchev at gmail.com
Sat Mar 26 14:34:22 CDT 2016
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].
2. Move all MSSTYLES-related code to winemsstyles.drv. At this step
such uxtheme functions as DrawThemeBackground will be stubbed.
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.
4. Work on the activation context. This is a complex step I need to
describe separately...
5. Implement Buffered Paint API [5].
6. Add double buffering support to comctl32 (I hate flipping!!!)
7. Add support for animated transitions like Windows Vista does.
8. Fix other problems in comctl32 that I hate...
9. Move the existing code from uxthemegtk [6] to winegtk3.drv.
10. Improve winegt3.drv until the deadline ;-)
[1] https://github.com/wine-mirror/wine/blob/master/dlls/gdi32/gdiobj.c
[2] https://github.com/wine-mirror/wine/blob/master/dlls/winhttp/handle.c
[3] https://github.com/wine-mirror/wine/blob/master/server/handle.c
[4] https://www.winehq.org/pipermail/wine-devel/2015-July/108232.html
[5]
https://msdn.microsoft.com/en-us/library/windows/desktop/bb773257%28v=vs.85%29.aspx
[6] https://github.com/akulinchev/uxthemegtk
More information about the wine-devel
mailing list