Mercurial > hg > svcore
diff system/System.cpp @ 1818:c5ee0746bdef background-mode
Determine whether a dark background is indicated
author | Chris Cannam |
---|---|
date | Fri, 17 Jan 2020 21:36:07 +0000 |
parents | 85903b0e9b42 |
children | 4eda6ba5b5d8 |
line wrap: on
line diff
--- a/system/System.cpp Tue Jan 14 15:48:22 2020 +0000 +++ b/system/System.cpp Fri Jan 17 21:36:07 2020 +0000 @@ -27,6 +27,10 @@ #include <unistd.h> #endif +#ifdef _MSC_VER +#include <winrt/Windows.UI.ViewManagement.h> +#endif + #ifdef __APPLE__ #include <sys/param.h> #include <sys/sysctl.h> @@ -334,6 +338,21 @@ } } +bool +OSThemeIsDark() +{ + SVCERR << "OSThemeIsDark() called" << endl; +#ifdef _MSC_VER + using namespace winrt::Windows::UI::ViewManagement; + UISettings settings; + auto background = settings.GetColorValue(UIColorType::Background); + if (int(background.R) + int(background.G) + int(background.B) < 384) { + return true; + } +#endif + return false; +} + double mod(double x, double y) { return x - (y * floor(x / y)); } float modf(float x, float y) { return x - (y * floorf(x / y)); }