PowerToys/src/settings-ui/Microsoft.PowerToys.Settings.UI/Converters/ModuleEnabledToForegroundConverter.cs
Andrey Nekrasov 212ea2de30
common: refactor common library pt2 (#8588)
- remove common lib
- split settings, remove common-md
- move ipc interop/kb_layout to interop
- rename core -> settings, settings -> old_settings
- os-detect header-only; interop -> PowerToysInterop
- split notifications, move single-use headers where they're used
- winstore lib
- rename com utils
- rename Updating and Telemetry projects
- rename core -> settings-ui and remove examples folder
- rename settings-ui folder + consisent common/version include
2020-12-15 15:16:09 +03:00

64 lines
2.3 KiB
C#

// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Globalization;
using Microsoft.PowerToys.Settings.UI.Library;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
namespace Microsoft.PowerToys.Settings.UI.Converters
{
public sealed class ModuleEnabledToForegroundConverter : IValueConverter
{
private readonly ISettingsUtils settingsUtils = new SettingsUtils();
private string selectedTheme = string.Empty;
public object Convert(object value, Type targetType, object parameter, string language)
{
bool isEnabled = (bool)value;
var defaultTheme = new Windows.UI.ViewManagement.UISettings();
// Using InvariantCulture as this is an internal string and expected to be in hexadecimal
var uiTheme = defaultTheme.GetColorValue(Windows.UI.ViewManagement.UIColorType.Background).ToString(CultureInfo.InvariantCulture);
// Normalize strings to uppercase according to Fxcop
selectedTheme = SettingsRepository<GeneralSettings>.GetInstance(settingsUtils).SettingsConfig.Theme.ToUpperInvariant();
if (selectedTheme == "DARK" || (selectedTheme == "SYSTEM" && uiTheme == "#FF000000"))
{
// DARK
if (isEnabled)
{
return (SolidColorBrush)Application.Current.Resources["DarkForegroundBrush"];
}
else
{
return (SolidColorBrush)Application.Current.Resources["DarkForegroundDisabledBrush"];
}
}
else
{
// LIGHT
if (isEnabled)
{
return (SolidColorBrush)Application.Current.Resources["LightForegroundBrush"];
}
else
{
return (SolidColorBrush)Application.Current.Resources["LightForegroundDisabledBrush"];
}
}
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return value;
}
}
}