// 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.Collections.Generic; using System.Text.Json.Serialization; using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; namespace Microsoft.PowerToys.Settings.UI.Library { public class CropAndLockSettings : BasePTModuleSettings, ISettingsConfig, IHotkeyConfig { public const string ModuleName = "CropAndLock"; public const string ModuleVersion = "0.0.1"; public CropAndLockSettings() { Name = ModuleName; Version = ModuleVersion; Properties = new CropAndLockProperties(); } [JsonPropertyName("properties")] public CropAndLockProperties Properties { get; set; } public string GetModuleName() { return Name; } public ModuleType GetModuleType() => ModuleType.CropAndLock; public HotkeyAccessor[] GetAllHotkeyAccessors() { var hotkeyAccessors = new List { new HotkeyAccessor( () => Properties.ReparentHotkey.Value, value => Properties.ReparentHotkey.Value = value ?? CropAndLockProperties.DefaultReparentHotkeyValue, "CropAndLock_ReparentActivation_Shortcut"), new HotkeyAccessor( () => Properties.ThumbnailHotkey.Value, value => Properties.ThumbnailHotkey.Value = value ?? CropAndLockProperties.DefaultThumbnailHotkeyValue, "CropAndLock_ThumbnailActivation_Shortcut"), new HotkeyAccessor( () => Properties.ScreenshotHotkey.Value, value => Properties.ScreenshotHotkey.Value = value ?? CropAndLockProperties.DefaultScreenshotHotkeyValue, "CropAndLock_ScreenshotActivation_Shortcut"), }; return hotkeyAccessors.ToArray(); } public bool UpgradeSettingsConfiguration() { return false; } } }