Module: wine Branch: master Commit: f34412b957cc465bebf54b4d9211c0d2180d9e51 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f34412b957cc465bebf54b4d...
Author: Frank Richter frank.richter@gmail.com Date: Mon Aug 14 17:02:37 2006 +0200
uxtheme: Enable gradient captions if a theme provides colors for them.
---
dlls/uxtheme/msstyles.c | 18 ++++++++++++++++++ dlls/uxtheme/system.c | 3 +++ 2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/dlls/uxtheme/msstyles.c b/dlls/uxtheme/msstyles.c index 76414d9..827bdf6 100644 --- a/dlls/uxtheme/msstyles.c +++ b/dlls/uxtheme/msstyles.c @@ -700,6 +700,7 @@ void MSSTYLES_ParseThemeIni(PTHEME_FILE int colorElements[TMT_LASTCOLOR-TMT_FIRSTCOLOR]; COLORREF colorRgb[TMT_LASTCOLOR-TMT_FIRSTCOLOR]; LPCWSTR lpValueEnd; + int captionColors = 0;
while((lpName=UXINI_GetNextValue(ini, &dwLen, &lpValue, &dwValueLen))) { lstrcpynW(szPropertyName, lpName, min(dwLen+1, sizeof(szPropertyName)/sizeof(szPropertyName[0]))); @@ -712,6 +713,21 @@ void MSSTYLES_ParseThemeIni(PTHEME_FILE if(MSSTYLES_GetNextInteger(lpValue, lpValueEnd, &lpValue, &b)) { colorElements[colorCount] = iPropertyId - TMT_FIRSTCOLOR; colorRgb[colorCount++] = RGB(r,g,b); + switch (iPropertyId) + { + case TMT_ACTIVECAPTION: + captionColors |= 0x1; + break; + case TMT_INACTIVECAPTION: + captionColors |= 0x2; + break; + case TMT_GRADIENTACTIVECAPTION: + captionColors |= 0x4; + break; + case TMT_GRADIENTINACTIVECAPTION: + captionColors |= 0x8; + break; + } } else { FIXME("Invalid color value for %s\n", debugstr_w(szPropertyName)); @@ -730,6 +746,8 @@ void MSSTYLES_ParseThemeIni(PTHEME_FILE } if (setMetrics && (colorCount > 0)) SetSysColors(colorCount, colorElements, colorRgb); + if (setMetrics && (captionColors == 0xf)) + SystemParametersInfoW (SPI_SETGRADIENTCAPTIONS, 0, (PVOID)TRUE, 0); continue; } if(MSSTYLES_ParseIniSectionName(lpName, dwLen, szAppName, szClassName, &iPartId, &iStateId)) { diff --git a/dlls/uxtheme/system.c b/dlls/uxtheme/system.c index 347074c..e19f913 100644 --- a/dlls/uxtheme/system.c +++ b/dlls/uxtheme/system.c @@ -249,6 +249,8 @@ static const WCHAR strColorKey[] = { 'C','o','n','t','r','o','l',' ','P','a','n','e','l','\', 'C','o','l','o','r','s',0 }; static const WCHAR keyFlatMenus[] = { 'F','l','a','t','M','e','n','u', 0}; +static const WCHAR keyGradientCaption[] = { 'G','r','a','d','i','e','n','t', + 'C','a','p','t','i','o','n', 0 };
static const struct BackupSysParam { @@ -257,6 +259,7 @@ static const struct BackupSysParam } backupSysParams[] = { {SPI_GETFLATMENU, SPI_SETFLATMENU, keyFlatMenus}, + {SPI_GETGRADIENTCAPTIONS, SPI_SETGRADIENTCAPTIONS, keyGradientCaption}, {-1, -1, 0} };