mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-04 10:16:24 +02:00
* [Analyzers][Settings] Fix SA1516 * [Analyzers][Workspaces] Fix SA1516 * [Analyzers][Awake] Fix SA1516 * [Analyzers][Wox] Fix SA1516 * [MWB] Disable CA1716 warning on class name * [Wox] Update ExecuteFilePath property visibility for Json Source Generator * [Analyzers][MWB] Fix CA1716 on NativeMethods. --------- Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
50 lines
1.6 KiB
C#
50 lines
1.6 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 Microsoft.PowerToys.Settings.UI.Library;
|
|
using Microsoft.PowerToys.Settings.UI.Library.Interfaces;
|
|
using Microsoft.UI.Xaml;
|
|
|
|
namespace Microsoft.PowerToys.Settings.UI.Services
|
|
{
|
|
public class ThemeService
|
|
{
|
|
private readonly ISettingsRepository<GeneralSettings> _generalSettingsRepository;
|
|
|
|
public event EventHandler<ElementTheme> ThemeChanged;
|
|
|
|
public ElementTheme Theme { get; private set; } = ElementTheme.Default;
|
|
|
|
public ThemeService(ISettingsRepository<GeneralSettings> generalSettingsRepository)
|
|
{
|
|
_generalSettingsRepository = generalSettingsRepository;
|
|
Theme = GetTheme();
|
|
}
|
|
|
|
public void ApplyTheme()
|
|
{
|
|
Theme = GetTheme();
|
|
ThemeChanged?.Invoke(null, Theme);
|
|
}
|
|
|
|
private ElementTheme GetTheme()
|
|
{
|
|
switch (_generalSettingsRepository.SettingsConfig.Theme.ToUpperInvariant())
|
|
{
|
|
case "LIGHT":
|
|
return ElementTheme.Light;
|
|
case "DARK":
|
|
return ElementTheme.Dark;
|
|
case "SYSTEM":
|
|
return ElementTheme.Default;
|
|
default:
|
|
ManagedCommon.Logger.LogError($"Unexpected theme name: {_generalSettingsRepository.SettingsConfig.Theme}");
|
|
return ElementTheme.Default;
|
|
}
|
|
}
|
|
}
|
|
}
|