LenovoLegionToolkit

Форк
0
65 строк · 2.3 Кб
1
using System;
2
using LenovoLegionToolkit.WPF.Resources;
3

4
namespace LenovoLegionToolkit.WPF;
5

6
public readonly struct DashboardGroup
7
{
8
    public static readonly DashboardGroup[] DefaultGroups =
9
    {
10
        new(DashboardGroupType.Power, null,
11
            DashboardItem.PowerMode,
12
            DashboardItem.BatteryMode,
13
            DashboardItem.BatteryNightChargeMode,
14
            DashboardItem.AlwaysOnUsb,
15
            DashboardItem.InstantBoot,
16
            DashboardItem.FlipToStart),
17
        new(DashboardGroupType.Graphics, null,
18
            DashboardItem.HybridMode,
19
            DashboardItem.DiscreteGpu,
20
            DashboardItem.OverclockDiscreteGpu),
21
        new(DashboardGroupType.Display, null,
22
            DashboardItem.Resolution,
23
            DashboardItem.RefreshRate,
24
            DashboardItem.DpiScale,
25
            DashboardItem.Hdr,
26
            DashboardItem.OverDrive,
27
            DashboardItem.TurnOffMonitors),
28
        new(DashboardGroupType.Other, null,
29
            DashboardItem.Microphone,
30
            DashboardItem.WhiteKeyboardBacklight,
31
            DashboardItem.PanelLogoBacklight,
32
            DashboardItem.PortsBacklight,
33
            DashboardItem.TouchpadLock,
34
            DashboardItem.FnLock,
35
            DashboardItem.WinKeyLock)
36
    };
37

38
    public DashboardGroupType Type { get; }
39

40
    public string? CustomName { get; }
41

42
    public DashboardItem[] Items { get; }
43

44
    public DashboardGroup(DashboardGroupType type, string? customName, params DashboardItem[] items)
45
    {
46
        Type = type;
47
        CustomName = type == DashboardGroupType.Custom ? customName : null;
48
        Items = items;
49
    }
50

51
    public string GetName() => Type switch
52
    {
53
        DashboardGroupType.Power => Resource.DashboardPage_Power_Title,
54
        DashboardGroupType.Graphics => Resource.DashboardPage_Graphics_Title,
55
        DashboardGroupType.Display => Resource.DashboardPage_Display_Title,
56
        DashboardGroupType.Other => Resource.DashboardPage_Other_Title,
57
        DashboardGroupType.Custom => CustomName ?? string.Empty,
58
        _ => throw new InvalidOperationException($"Invalid type {Type}"),
59
    };
60

61
    public override string ToString() =>
62
        $"{nameof(Type)}: {Type}," +
63
        $" {nameof(CustomName)}: {CustomName}," +
64
        $" {nameof(Items)}: {string.Join(",", Items)}";
65
}
66

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.