diff --git a/uppsrc/CtrlLib/Ch.h b/uppsrc/CtrlLib/Ch.h index 1d672d966..752c6970a 100644 --- a/uppsrc/CtrlLib/Ch.h +++ b/uppsrc/CtrlLib/Ch.h @@ -9,6 +9,11 @@ void ChFlatSkin(); void ChFlatDarkSkin(); void ChFlatGraySkin(); +#ifdef PLATFORM_WIN32 +void ChHostSkinLight(); +void ChHostSkinDark(); +#endif + Vector> GetAllChSkins(); enum { diff --git a/uppsrc/CtrlLib/ChWin32.cpp b/uppsrc/CtrlLib/ChWin32.cpp index 12bfe4dce..a2e79e69c 100644 --- a/uppsrc/CtrlLib/ChWin32.cpp +++ b/uppsrc/CtrlLib/ChWin32.cpp @@ -380,7 +380,7 @@ bool IsSystemThemeDark() return GetEnv("UPP_DARKMODE__") == "1" ? !b : b; } -void ChHostSkin() +void ChHostSkin0() { if(Ctrl::IsUHDEnabled()) { HRESULT (STDAPICALLTYPE *SetProcessDpiAwareness)(int); @@ -395,8 +395,6 @@ void ChHostSkin() } } - sEmulateDarkTheme = Ctrl::IsDarkThemeEnabled() && IsSystemThemeDark() && !IsDark(Color::FromCR(GetSysColor(COLOR_WINDOW))); - NONCLIENTMETRICSW ncm; #if (WINVER >= 0x0600 && !defined(__MINGW32_VERSION)) ncm.cbSize = sizeof(ncm) - sizeof(ncm.iPaddedBorderWidth); // WinXP does not like it... @@ -742,6 +740,24 @@ void ChHostSkin() ChClassicSkin(); } +void ChHostSkin() +{ + sEmulateDarkTheme = Ctrl::IsDarkThemeEnabled() && IsSystemThemeDark() && !IsDark(Color::FromCR(GetSysColor(COLOR_WINDOW))); + ChHostSkin0(); +} + +void ChHostSkinLight() +{ + sEmulateDarkTheme = false; + ChHostSkin0(); +} + +void ChHostSkinDark() +{ + sEmulateDarkTheme = true; + ChHostSkin0(); +} + } #endif