mirror of
https://github.com/libsdl-org/SDL.git
synced 2024-11-24 03:13:34 +08:00
Rewrite WIN_GetSystemTheme() so we don't need to bump Windows SDK versions
This commit is contained in:
parent
edc8f0b841
commit
c044cff4c7
@ -41,7 +41,7 @@
|
||||
#elif defined(HAVE_SHELLSCALINGAPI_H)
|
||||
#define _WIN32_WINNT 0x603 /* For DPI support */
|
||||
#else
|
||||
#define _WIN32_WINNT 0x502 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices(), 0x501 for raw input, 0x502 for RegGetValue() */
|
||||
#define _WIN32_WINNT 0x501 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices(), 0x501 for raw input */
|
||||
#endif
|
||||
#define WINVER _WIN32_WINNT
|
||||
|
||||
|
@ -680,21 +680,22 @@ SDL_bool SDL_DXGIGetOutputInfo(SDL_DisplayID displayID, int *adapterIndex, int *
|
||||
|
||||
SDL_SystemTheme WIN_GetSystemTheme(void)
|
||||
{
|
||||
DWORD type;
|
||||
DWORD value;
|
||||
DWORD count = sizeof(value);
|
||||
LSTATUS status;
|
||||
SDL_SystemTheme theme = SDL_SYSTEM_THEME_LIGHT;
|
||||
HKEY hKey;
|
||||
DWORD dwType = REG_DWORD;
|
||||
DWORD value = ~0;
|
||||
DWORD length = sizeof(value);
|
||||
|
||||
/* Technically this isn't the system theme, but it's the preference for applications */
|
||||
status = RegGetValue(HKEY_CURRENT_USER,
|
||||
TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"),
|
||||
TEXT("AppsUseLightTheme"),
|
||||
RRF_RT_REG_DWORD, &type, &value, &count);
|
||||
if (status == ERROR_SUCCESS && type == REG_DWORD && value == 0) {
|
||||
return SDL_SYSTEM_THEME_DARK;
|
||||
} else {
|
||||
return SDL_SYSTEM_THEME_LIGHT;
|
||||
if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", 0, KEY_READ, &hKey) == ERROR_SUCCESS) {
|
||||
if (RegQueryValueExW(hKey, L"AppsUseLightTheme", 0, &dwType, (LPBYTE)&value, &length) == ERROR_SUCCESS) {
|
||||
if (value == 0) {
|
||||
theme = SDL_SYSTEM_THEME_DARK;
|
||||
}
|
||||
}
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
return theme;
|
||||
}
|
||||
|
||||
SDL_bool WIN_IsPerMonitorV2DPIAware(_THIS)
|
||||
|
Loading…
Reference in New Issue
Block a user