/ src / settings-ui / Settings.UI / Helpers / ModuleGpoHelper.cs
ModuleGpoHelper.cs
 1  // Copyright (c) Microsoft Corporation
 2  // The Microsoft Corporation licenses this file to you under the MIT license.
 3  // See the LICENSE file in the project root for more information.
 4  
 5  using global::PowerToys.GPOWrapper;
 6  using ManagedCommon;
 7  using Microsoft.PowerToys.Settings.UI.Library;
 8  using Microsoft.PowerToys.Settings.UI.Views;
 9  using Windows.UI;
10  
11  namespace Microsoft.PowerToys.Settings.UI.Helpers
12  {
13      internal sealed class ModuleGpoHelper
14      {
15          public static GpoRuleConfigured GetModuleGpoConfiguration(ModuleType moduleType)
16          {
17              switch (moduleType)
18              {
19                  case ModuleType.AdvancedPaste: return GPOWrapper.GetConfiguredAdvancedPasteEnabledValue();
20                  case ModuleType.AlwaysOnTop: return GPOWrapper.GetConfiguredAlwaysOnTopEnabledValue();
21                  case ModuleType.Awake: return GPOWrapper.GetConfiguredAwakeEnabledValue();
22                  case ModuleType.CmdPal: return GPOWrapper.GetConfiguredCmdPalEnabledValue();
23                  case ModuleType.ColorPicker: return GPOWrapper.GetConfiguredColorPickerEnabledValue();
24                  case ModuleType.CropAndLock: return GPOWrapper.GetConfiguredCropAndLockEnabledValue();
25                  case ModuleType.CursorWrap: return GPOWrapper.GetConfiguredCursorWrapEnabledValue();
26                  case ModuleType.EnvironmentVariables: return GPOWrapper.GetConfiguredEnvironmentVariablesEnabledValue();
27                  case ModuleType.FancyZones: return GPOWrapper.GetConfiguredFancyZonesEnabledValue();
28                  case ModuleType.FileLocksmith: return GPOWrapper.GetConfiguredFileLocksmithEnabledValue();
29                  case ModuleType.FindMyMouse: return GPOWrapper.GetConfiguredFindMyMouseEnabledValue();
30                  case ModuleType.Hosts: return GPOWrapper.GetConfiguredHostsFileEditorEnabledValue();
31                  case ModuleType.ImageResizer: return GPOWrapper.GetConfiguredImageResizerEnabledValue();
32                  case ModuleType.KeyboardManager: return GPOWrapper.GetConfiguredKeyboardManagerEnabledValue();
33                  case ModuleType.MouseHighlighter: return GPOWrapper.GetConfiguredMouseHighlighterEnabledValue();
34                  case ModuleType.MouseJump: return GPOWrapper.GetConfiguredMouseJumpEnabledValue();
35                  case ModuleType.MousePointerCrosshairs: return GPOWrapper.GetConfiguredMousePointerCrosshairsEnabledValue();
36                  case ModuleType.MouseWithoutBorders: return GPOWrapper.GetConfiguredMouseWithoutBordersEnabledValue();
37                  case ModuleType.NewPlus: return GPOWrapper.GetConfiguredNewPlusEnabledValue();
38                  case ModuleType.Peek: return GPOWrapper.GetConfiguredPeekEnabledValue();
39                  case ModuleType.PowerRename: return GPOWrapper.GetConfiguredPowerRenameEnabledValue();
40                  case ModuleType.PowerLauncher: return GPOWrapper.GetConfiguredPowerLauncherEnabledValue();
41                  case ModuleType.PowerAccent: return GPOWrapper.GetConfiguredQuickAccentEnabledValue();
42                  case ModuleType.Workspaces: return GPOWrapper.GetConfiguredWorkspacesEnabledValue();
43                  case ModuleType.RegistryPreview: return GPOWrapper.GetConfiguredRegistryPreviewEnabledValue();
44                  case ModuleType.MeasureTool: return GPOWrapper.GetConfiguredScreenRulerEnabledValue();
45                  case ModuleType.ShortcutGuide: return GPOWrapper.GetConfiguredShortcutGuideEnabledValue();
46                  case ModuleType.PowerOCR: return GPOWrapper.GetConfiguredTextExtractorEnabledValue();
47                  case ModuleType.PowerDisplay: return GPOWrapper.GetConfiguredPowerDisplayEnabledValue();
48                  case ModuleType.ZoomIt: return GPOWrapper.GetConfiguredZoomItEnabledValue();
49                  default: return GpoRuleConfigured.Unavailable;
50              }
51          }
52  
53          public static System.Type GetModulePageType(ModuleType moduleType)
54          {
55              return moduleType switch
56              {
57                  ModuleType.AdvancedPaste => typeof(AdvancedPastePage),
58                  ModuleType.AlwaysOnTop => typeof(AlwaysOnTopPage),
59                  ModuleType.Awake => typeof(AwakePage),
60                  ModuleType.CmdPal => typeof(CmdPalPage),
61                  ModuleType.ColorPicker => typeof(ColorPickerPage),
62                  ModuleType.CropAndLock => typeof(CropAndLockPage),
63                  ModuleType.CursorWrap => typeof(MouseUtilsPage),
64                  ModuleType.LightSwitch => typeof(LightSwitchPage),
65                  ModuleType.EnvironmentVariables => typeof(EnvironmentVariablesPage),
66                  ModuleType.FancyZones => typeof(FancyZonesPage),
67                  ModuleType.FileLocksmith => typeof(FileLocksmithPage),
68                  ModuleType.FindMyMouse => typeof(MouseUtilsPage),
69                  ModuleType.GeneralSettings => typeof(GeneralPage),
70                  ModuleType.Hosts => typeof(HostsPage),
71                  ModuleType.ImageResizer => typeof(ImageResizerPage),
72                  ModuleType.KeyboardManager => typeof(KeyboardManagerPage),
73                  ModuleType.MouseHighlighter => typeof(MouseUtilsPage),
74                  ModuleType.MouseJump => typeof(MouseUtilsPage),
75                  ModuleType.MousePointerCrosshairs => typeof(MouseUtilsPage),
76                  ModuleType.MouseWithoutBorders => typeof(MouseWithoutBordersPage),
77                  ModuleType.NewPlus => typeof(NewPlusPage),
78                  ModuleType.Peek => typeof(PeekPage),
79                  ModuleType.PowerRename => typeof(PowerRenamePage),
80                  ModuleType.PowerLauncher => typeof(PowerLauncherPage),
81                  ModuleType.PowerAccent => typeof(PowerAccentPage),
82                  ModuleType.Workspaces => typeof(WorkspacesPage),
83                  ModuleType.RegistryPreview => typeof(RegistryPreviewPage),
84                  ModuleType.MeasureTool => typeof(MeasureToolPage),
85                  ModuleType.ShortcutGuide => typeof(ShortcutGuidePage),
86                  ModuleType.PowerOCR => typeof(PowerOcrPage),
87                  ModuleType.PowerDisplay => typeof(PowerDisplayPage),
88                  ModuleType.ZoomIt => typeof(ZoomItPage),
89                  _ => typeof(DashboardPage), // never called, all values listed above
90              };
91          }
92      }
93  }