2025-11-05 03:28:25 -08:00
|
|
|
// 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 CursorWrapSettings : BasePTModuleSettings, ISettingsConfig, IHotkeyConfig
|
|
|
|
|
{
|
|
|
|
|
public const string ModuleName = "CursorWrap";
|
|
|
|
|
|
|
|
|
|
[JsonPropertyName("properties")]
|
|
|
|
|
public CursorWrapProperties Properties { get; set; }
|
|
|
|
|
|
|
|
|
|
public CursorWrapSettings()
|
|
|
|
|
{
|
|
|
|
|
Name = ModuleName;
|
|
|
|
|
Properties = new CursorWrapProperties();
|
|
|
|
|
Version = "1.0";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string GetModuleName()
|
|
|
|
|
{
|
|
|
|
|
return Name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ModuleType GetModuleType() => ModuleType.CursorWrap;
|
|
|
|
|
|
|
|
|
|
public HotkeyAccessor[] GetAllHotkeyAccessors()
|
|
|
|
|
{
|
|
|
|
|
var hotkeyAccessors = new List<HotkeyAccessor>
|
|
|
|
|
{
|
|
|
|
|
new HotkeyAccessor(
|
|
|
|
|
() => Properties.ActivationShortcut,
|
|
|
|
|
value => Properties.ActivationShortcut = value ?? Properties.DefaultActivationShortcut,
|
|
|
|
|
"MouseUtils_CursorWrap_ActivationShortcut"),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return hotkeyAccessors.ToArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This can be utilized in the future if the settings.json file is to be modified/deleted.
|
|
|
|
|
public bool UpgradeSettingsConfiguration()
|
|
|
|
|
{
|
2026-01-27 05:27:11 +00:00
|
|
|
bool settingsUpgraded = false;
|
|
|
|
|
|
|
|
|
|
// Add WrapMode property if it doesn't exist (for users upgrading from older versions)
|
|
|
|
|
if (Properties.WrapMode == null)
|
|
|
|
|
{
|
|
|
|
|
Properties.WrapMode = new IntProperty(0); // Default to Both
|
|
|
|
|
settingsUpgraded = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return settingsUpgraded;
|
2025-11-05 03:28:25 -08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|