Mercurial > hg > svcore
diff system/os-win10.cpp @ 1883:e5d0ea9ac8f1
OK I give in, we are going to have to put this in a separate DLL so we can deploy a version on Win7 that doesn't have the WinRT dependency
author | Chris Cannam |
---|---|
date | Tue, 21 Jul 2020 13:59:14 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/system/os-win10.cpp Tue Jul 21 13:59:14 2020 +0100 @@ -0,0 +1,49 @@ + +#ifndef AVOID_WINRT_DEPENDENCY +#ifdef _MSC_VER +#include <winrt/Windows.UI.ViewManagement.h> +#endif +#endif + +extern "C" { + +bool +OSReportsDarkThemeActive() +{ +#ifndef AVOID_WINRT_DEPENDENCY +#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 +#endif + return false; +} + +bool +OSQueryAccentColour(int *r, int *g, int *b) +{ +#ifndef AVOID_WINRT_DEPENDENCY +#ifdef _MSC_VER + using namespace winrt::Windows::UI::ViewManagement; + bool dark = OSReportsDarkThemeActive(); + UISettings settings; + auto accent = settings.GetColorValue + (dark ? UIColorType::AccentLight1 : UIColorType::Accent); + *r = accent.R; + *g = accent.G; + *b = accent.B; + return true; +#endif +#endif + (void)r; + (void)g; + (void)b; + return false; +} + +} +