UXTheme and Vista Styles potential problem
UXTheme and Vista Styles potential problem
Sure I know vista styles tend to use png images, but I seem to have noticed a potential problem. Unless wine has its own window manager, styles like Windows Aero may look very strange in wine. Reason: Aero is intended to be a unified look and imagine a partial glass look with metacity chopping off part of the theme. Also, how would we know were to start drawing in the aero image resource if we do not have a winewm to use it? I think a winewm needs to be worked on and I would be willing to work on it if needed. That would send desktop integration leaps and bounds forward because you can tell environments like kde, gnome, and xfce to use it.
Vista&7 use a different msstyles format that is not supported. I think transparency shouldn't be a problem,
a) because Vista/7 themes themselves contain an opaque version (the bright blue one) + the transparent version can be set to opacity 100%.
b) Even now Wine does not draw window frames and titles when you use a XP theme. Drawing window frames is a job of the default window manager and not Wine (not yet to speak of inconsistent behaviour for shortcuts, window buttons etc.)
Normally Windows themes don't contain transparent elements inside of the window frames (many pngs, but they don't let the desktop penetrate). Nevertheless proper RGBA and compositing support would be good. I also agree that it's time to increase support for current Windows and Vista&7 themes because they are now around for so long and Microsoft advances so fast.
a) because Vista/7 themes themselves contain an opaque version (the bright blue one) + the transparent version can be set to opacity 100%.
b) Even now Wine does not draw window frames and titles when you use a XP theme. Drawing window frames is a job of the default window manager and not Wine (not yet to speak of inconsistent behaviour for shortcuts, window buttons etc.)
Normally Windows themes don't contain transparent elements inside of the window frames (many pngs, but they don't let the desktop penetrate). Nevertheless proper RGBA and compositing support would be good. I also agree that it's time to increase support for current Windows and Vista&7 themes because they are now around for so long and Microsoft advances so fast.
Actually, it is not the transparency that I worry about. RGBA profiles or xshape support would actually fix ugly GUI artifacts in non-rectangular window frames. I was thinking more about the fact that the Windows Aero theme is actually a kind of unified look just as the brushed metal mac look is and one would have to have the window manager draw the titlebar of the wine window itself for things to look right.Fred2 wrote:Vista&7 use a different msstyles format that is not supported. I think transparency shouldn't be a problem,
a) because Vista/7 themes themselves contain an opaque version (the bright blue one) + the transparent version can be set to opacity 100%.
b) Even now Wine does not draw window frames and titles when you use a XP theme. Drawing window frames is a job of the default window manager and not Wine (not yet to speak of inconsistent behaviour for shortcuts, window buttons etc.)
Normally Windows themes don't contain transparent elements inside of the window frames (many pngs, but they don't let the desktop penetrate). Nevertheless proper RGBA and compositing support would be good. I also agree that it's time to increase support for current Windows and Vista&7 themes because they are now around for so long and Microsoft advances so fast.
On another note: if the theme engine can hook into other GUI toolkits externally as well (such as cocoa, qt, and gtk+), that too would be good because you could make wine apps seamlessly blend in with those on your desktop.
At the first thought, having Wine windows with different borders than native gtk/qt windows makes no sense but even more inconsistency. But on the other side, "unified look" (in applications where content merges into titlebar) is also an argument.
But what themes would users use? Even on Windows, the amount of users who know how to change a theme or who care about is low. I imagine Wine users would either use an original Windows theme or a theme that matches their gtk/qt theme (or no theme at all).
Any thoughts by wine developers on that? When and how would this be possible? At least for system colors and system icons should be feasible. Hooking GTK into msstyles (for bitmap-styled buttons etc.) is understandably the most challenging and probably above the scope.
But what themes would users use? Even on Windows, the amount of users who know how to change a theme or who care about is low. I imagine Wine users would either use an original Windows theme or a theme that matches their gtk/qt theme (or no theme at all).
So that is the way to go!If the theme engine can hook into other GUI toolkits externally as well [...] you could make wine apps seamlessly blend in with those on your desktop.
Any thoughts by wine developers on that? When and how would this be possible? At least for system colors and system icons should be feasible. Hooking GTK into msstyles (for bitmap-styled buttons etc.) is understandably the most challenging and probably above the scope.
Metatheme has done the reverse (msstyles in qt and gtk+) so I am sure it can be done, I may try it if I can have a crack at it.Fred2 wrote:So that is the way to go!If the theme engine can hook into other GUI toolkits externally as well [...] you could make wine apps seamlessly blend in with those on your desktop.
Any thoughts by wine developers on that? When and how would this be possible? At least for system colors and system icons should be feasible. Hooking GTK into msstyles (for bitmap-styled buttons etc.) is understandably the most challenging and probably above the scope.
Wow! I didn't know about metatheme before, but it's really cool (and I believe I've used it without knowing, always when I use qt or java apps).
In some way Windows applications are just a different toolkit. Even when Wine will be more advanced, more stable and better integrated, it will only be as good as another "foreign" toolkit. Thus besides the efforts of high priority (the big things like audio, dib-engine etc.) I think it is worth to blend Wine apps also visually as good as possible into the system.
Tell me if you find out more or if there is something I could help (but I don't know much programming).
In some way Windows applications are just a different toolkit. Even when Wine will be more advanced, more stable and better integrated, it will only be as good as another "foreign" toolkit. Thus besides the efforts of high priority (the big things like audio, dib-engine etc.) I think it is worth to blend Wine apps also visually as good as possible into the system.
Tell me if you find out more or if there is something I could help (but I don't know much programming).
metatheme reverse engineering to make wine better
since metatheme is open source I assume I can get my hands on the source code and figure out how it works and maybe even use such knowledge to get toolkit integration.
Yes, the source code is the best way, otherwise Microsoft has very poor documentation (no docs) but there was lots of reverse-engineering and community docs. For creating msstyles there is a software 'StyleBuilder' (but company bankrupt, runs only on WinXP before SP3).
http://www.deviantart.com/users/outgoin ... 71534.html
I once created a visual style, but it was quite awkward because Microsoft has a lot of hardcoded fonts. http://freddi67.deviantart.com/art/Ubun ... -177514325
Hope this info can be useful.
http://www.deviantart.com/users/outgoin ... 71534.html
I once created a visual style, but it was quite awkward because Microsoft has a lot of hardcoded fonts. http://freddi67.deviantart.com/art/Ubun ... -177514325
Hope this info can be useful.
Any news?
Now with the new DIB engine, this topic gets a new meaning:
http://markmail.org/message/42t5azci4j5pcskq
Now with the new DIB engine, this topic gets a new meaning:
http://markmail.org/message/42t5azci4j5pcskq
-
- Level 5
- Posts: 336
- Joined: Mon Nov 24, 2008 8:10 am
The way we render the controls in Wine is not correct which causes the limited theming we have not to work properly. Big parts of the code have to be rewritten and done differently. In the old days buttons and other widgets lived within user32 but the themed versions live inside comctl32. We need to do proper class redirection and themed drawing.
Just to get an idea what the current code does. For instance a button is currently a 'classic' button for which we overwrite the drawing part. This is not correct and causes weird rendering issues. There are some bug reports on bugzilla about this.
Just to get an idea what the current code does. For instance a button is currently a 'classic' button for which we overwrite the drawing part. This is not correct and causes weird rendering issues. There are some bug reports on bugzilla about this.