by lf0 » Fri Dec 11, 2009 8:52 pm
Disclaimer: Based on this Wishlist thread I decided to open bugs for the separate issues at hand. I think it makes sense to bring them to bug forum (see my post in the linked thread for my reasoning) so individual bug numbers can be assigned. Thanks.
Problem:
Menus don't use the Aero theme using the non-skinned version of MediaMonkey 3.2
Current look:

Correct look:
The menu is based on TBXToolbar, which obviously lacks support for the Vista (and 7) Aero specific enhancements to the UxTheme API.
Thus, instead of drawing a plain area, something like
Code: Select all
DrawThemeBackground(MENU_THEME, DC, MENU_BARITEM, MBI_HOT, rect, 0);
and
Code: Select all
DrawThemeBackground(MENU_THEME, DC, MENU_POPUPITEM, MBI_HOT, rect, 0);
should be used on Vista/7 (with correct MBI_* branching of course).
See the
Visual Styles Reference for details.
Taking a short look at the TBX source it should be fairly straight forward. Add the MENU_* and MBI_* definitions from the Vista/7 SDK, assign MENU_THEME via OpenThemeData, then do the appropriate rendering (DrawThemeBackground) in TTBXDefaultTheme.PaintMenuItemFrame and TTBXDefaultTheme.PaintButton and probably some more places.
This is untested as I don't have Delphi (haven't used it for like 10 years or so ...) but should work

. Of course this should also only be done under Vista/7 as the specific UxTheme elements are new.
[color=#888888]Disclaimer: Based on this [url=http://www.mediamonkey.com/forum/viewtopic.php?f=4&t=43342]Wishlist thread[/url] I decided to open bugs for the separate issues at hand. I think it makes sense to bring them to bug forum (see [url=http://www.mediamonkey.com/forum/viewtopic.php?f=4&t=43342&st=0&sk=t&sd=a&start=45#p235925]my post[/url] in the linked thread for my reasoning) so individual bug numbers can be assigned. Thanks.[/color]
[b]Problem:[/b]
Menus don't use the Aero theme using the non-skinned version of MediaMonkey 3.2
Current look:
[img]http://i38.tinypic.com/24osit3.jpg[/img]
Correct look:
[img]http://i38.tinypic.com/343ol5i.jpg[/img]
The menu is based on TBXToolbar, which obviously lacks support for the Vista (and 7) Aero specific enhancements to the UxTheme API.
Thus, instead of drawing a plain area, something like
[code]DrawThemeBackground(MENU_THEME, DC, MENU_BARITEM, MBI_HOT, rect, 0);[/code]
and
[code]DrawThemeBackground(MENU_THEME, DC, MENU_POPUPITEM, MBI_HOT, rect, 0);[/code]
should be used on Vista/7 (with correct MBI_* branching of course).
See the [url=http://msdn.microsoft.com/en-us/library/bb773178(VS.85).aspx]Visual Styles Reference[/url] for details.
Taking a short look at the TBX source it should be fairly straight forward. Add the MENU_* and MBI_* definitions from the Vista/7 SDK, assign MENU_THEME via OpenThemeData, then do the appropriate rendering (DrawThemeBackground) in TTBXDefaultTheme.PaintMenuItemFrame and TTBXDefaultTheme.PaintButton and probably some more places.
This is untested as I don't have Delphi (haven't used it for like 10 years or so ...) but should work :lol:. Of course this should also only be done under Vista/7 as the specific UxTheme elements are new.