mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 01:36:31 +02:00
104 lines
3.1 KiB
C#
104 lines
3.1 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 System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace KeyboardManagerEditorUI.Interop
|
|||
|
|
{
|
|||
|
|
public class ShortcutKeyMapping
|
|||
|
|
{
|
|||
|
|
public string OriginalKeys { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public string TargetKeys { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public string TargetApp { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public ShortcutOperationType OperationType { get; set; }
|
|||
|
|
|
|||
|
|
public string TargetText { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public string ProgramPath { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public string ProgramArgs { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public string StartInDirectory { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public ElevationLevel Elevation { get; set; } = ElevationLevel.NonElevated;
|
|||
|
|
|
|||
|
|
public ProgramAlreadyRunningAction IfRunningAction { get; set; } = ProgramAlreadyRunningAction.ShowWindow;
|
|||
|
|
|
|||
|
|
public StartWindowType Visibility { get; set; } = StartWindowType.Normal;
|
|||
|
|
|
|||
|
|
public string UriToOpen { get; set; } = string.Empty;
|
|||
|
|
|
|||
|
|
public enum ElevationLevel
|
|||
|
|
{
|
|||
|
|
NonElevated = 0,
|
|||
|
|
Elevated = 1,
|
|||
|
|
DifferentUser = 2,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public enum StartWindowType
|
|||
|
|
{
|
|||
|
|
Normal = 0,
|
|||
|
|
Hidden = 1,
|
|||
|
|
Minimized = 2,
|
|||
|
|
Maximized = 3,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public enum ProgramAlreadyRunningAction
|
|||
|
|
{
|
|||
|
|
ShowWindow = 0,
|
|||
|
|
StartAnother = 1,
|
|||
|
|
DoNothing = 2,
|
|||
|
|
Close = 3,
|
|||
|
|
EndTask = 4,
|
|||
|
|
CloseAndEndTask = 5,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override bool Equals(object? obj)
|
|||
|
|
{
|
|||
|
|
if (obj is not ShortcutKeyMapping other)
|
|||
|
|
{
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return OriginalKeys == other.OriginalKeys &&
|
|||
|
|
TargetKeys == other.TargetKeys &&
|
|||
|
|
TargetApp == other.TargetApp &&
|
|||
|
|
OperationType == other.OperationType &&
|
|||
|
|
TargetText == other.TargetText &&
|
|||
|
|
ProgramPath == other.ProgramPath &&
|
|||
|
|
ProgramArgs == other.ProgramArgs &&
|
|||
|
|
StartInDirectory == other.StartInDirectory &&
|
|||
|
|
Elevation == other.Elevation &&
|
|||
|
|
IfRunningAction == other.IfRunningAction &&
|
|||
|
|
Visibility == other.Visibility &&
|
|||
|
|
UriToOpen == other.UriToOpen;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public override int GetHashCode()
|
|||
|
|
{
|
|||
|
|
HashCode hash = default(HashCode);
|
|||
|
|
hash.Add(OriginalKeys);
|
|||
|
|
hash.Add(TargetKeys);
|
|||
|
|
hash.Add(TargetApp);
|
|||
|
|
hash.Add(OperationType);
|
|||
|
|
hash.Add(TargetText);
|
|||
|
|
hash.Add(ProgramPath);
|
|||
|
|
hash.Add(ProgramArgs);
|
|||
|
|
hash.Add(StartInDirectory);
|
|||
|
|
hash.Add(Elevation);
|
|||
|
|
hash.Add(IfRunningAction);
|
|||
|
|
hash.Add(Visibility);
|
|||
|
|
hash.Add(UriToOpen);
|
|||
|
|
return hash.ToHashCode();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|