Commit c963461f authored by Frank Richter's avatar Frank Richter Committed by Alexandre Julliard

Since uxtheme also returns a friendly display name from

EnumThemeColors() and EnumThemeSizes() use that in the color/size combos.
parent 0aef6795
...@@ -39,6 +39,14 @@ ...@@ -39,6 +39,14 @@
WINE_DEFAULT_DEBUG_CHANNEL(winecfg); WINE_DEFAULT_DEBUG_CHANNEL(winecfg);
/* UXTHEME functions not in the headers */ /* UXTHEME functions not in the headers */
typedef struct tagTHEMENAMES
{
WCHAR szName[MAX_PATH+1];
WCHAR szDisplayName[MAX_PATH+1];
WCHAR szTooltip[MAX_PATH+1];
} THEMENAMES, *PTHEMENAMES;
typedef void* HTHEMEFILE; typedef void* HTHEMEFILE;
typedef BOOL (CALLBACK *EnumThemeProc)(LPVOID lpReserved, typedef BOOL (CALLBACK *EnumThemeProc)(LPVOID lpReserved,
LPCWSTR pszThemeFileName, LPCWSTR pszThemeFileName,
...@@ -47,9 +55,9 @@ typedef BOOL (CALLBACK *EnumThemeProc)(LPVOID lpReserved, ...@@ -47,9 +55,9 @@ typedef BOOL (CALLBACK *EnumThemeProc)(LPVOID lpReserved,
LPVOID lpData); LPVOID lpData);
HRESULT WINAPI EnumThemeColors (LPWSTR pszThemeFileName, LPWSTR pszSizeName, HRESULT WINAPI EnumThemeColors (LPWSTR pszThemeFileName, LPWSTR pszSizeName,
DWORD dwColorNum, LPWSTR pszColorName); DWORD dwColorNum, PTHEMENAMES pszColorNames);
HRESULT WINAPI EnumThemeSizes (LPWSTR pszThemeFileName, LPWSTR pszColorName, HRESULT WINAPI EnumThemeSizes (LPWSTR pszThemeFileName, LPWSTR pszColorName,
DWORD dwSizeNum, LPWSTR pszSizeName); DWORD dwSizeNum, PTHEMENAMES pszSizeNames);
HRESULT WINAPI ApplyTheme (HTHEMEFILE hThemeFile, char* unknown, HWND hWnd); HRESULT WINAPI ApplyTheme (HTHEMEFILE hThemeFile, char* unknown, HWND hWnd);
HRESULT WINAPI OpenThemeFile (LPCWSTR pszThemeFileName, LPCWSTR pszColorName, HRESULT WINAPI OpenThemeFile (LPCWSTR pszThemeFileName, LPCWSTR pszColorName,
LPCWSTR pszSizeName, HTHEMEFILE* hThemeFile, LPCWSTR pszSizeName, HTHEMEFILE* hThemeFile,
...@@ -158,7 +166,7 @@ static void free_theme_files(void) ...@@ -158,7 +166,7 @@ static void free_theme_files(void)
themeFilesCount = 0; themeFilesCount = 0;
} }
typedef HRESULT (WINAPI * EnumTheme) (LPWSTR, LPWSTR, DWORD, LPWSTR); typedef HRESULT (WINAPI * EnumTheme) (LPWSTR, LPWSTR, DWORD, PTHEMENAMES);
/* fill a string list with either colors or sizes of a theme */ /* fill a string list with either colors or sizes of a theme */
static void fill_theme_string_array (const WCHAR* filename, static void fill_theme_string_array (const WCHAR* filename,
...@@ -166,14 +174,15 @@ static void fill_theme_string_array (const WCHAR* filename, ...@@ -166,14 +174,15 @@ static void fill_theme_string_array (const WCHAR* filename,
EnumTheme enumTheme) EnumTheme enumTheme)
{ {
DWORD index = 0; DWORD index = 0;
WCHAR name[MAX_PATH]; THEMENAMES names;
WINE_TRACE ("%s %p %p\n", wine_dbgstr_w (filename), wdsa, enumTheme); WINE_TRACE ("%s %p %p\n", wine_dbgstr_w (filename), wdsa, enumTheme);
while (SUCCEEDED (enumTheme ((WCHAR*)filename, NULL, index++, name))) while (SUCCEEDED (enumTheme ((WCHAR*)filename, NULL, index++, &names)))
{ {
WINE_TRACE ("%s\n", wine_dbgstr_w (name)); WINE_TRACE ("%s: %s\n", wine_dbgstr_w (names.szName),
color_or_size_dsa_add (wdsa, name, name); wine_dbgstr_w (names.szDisplayName));
color_or_size_dsa_add (wdsa, names.szName, names.szDisplayName);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment