On 3/11/2011 06:22, Andrew Green wrote:
I have been researching how i could implement the gsoc Theming - Implement Wine theming support. Though I'm a bit confused what is wanted. So is the case that completely separate dll's should be written for different versions and be loaded by side-by-side assembly. So you would end up with "comctl32v5.dll","comctl32v6.dll","comctl32v7.dll"? Would these be 3 different code basses or should they be made to share most of there code?
Multiple comctl32 should be the last thing to think about, only if there's absolutely no way to implement everything needed in one comctl32.
From what I understand uxtheme already loads XP theme files. So would
all the work be isolated to creating different versions of comdlg32 and comctl32?
No sure what you mean. uxtheme purpose is to load theme data, draw theme primitives and retrieve theme components data.
Client dll such as comctl32 should only use that public api when drawing controls, that's all. Also comdlg32 was never a question, cause it doesn't provide new controls.
Also does wine support side by side assembly? I did a very quick google search and i didn't see anything.
Yes wine does support installation and loading of SxS assemblies, and by assembly I mean native dlls installed in SxS directory and referenced with embedded or external manifest file. Loader supports manifest files, not fully but simple things should work.
I hope I'm not asking too much at once and/or too silly questions.
No, it's not silly to ask at all. But one of the most important things to be done for that is to implement support of window class redirection. In version 6 all user32 controls are reimplemented with theme support in comctl32, while user32 classes are kept of course. This is done with specific entries in comctl32 manifest, on load comctl32 all builtin classes are re-registered to the ones from comctl32. I definitely want to see some solution for that, having themed comctl32 controls while scrollbars and buttons are drawn with default appearance makes theme support kind of useless.