Files
MicrosoftIris/UIX/Microsoft/Iris/InputHandlers/ShortcutHandler.cs
T

95 lines
2.5 KiB
C#
Raw Normal View History

2022-03-03 08:14:05 -06:00
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.InputHandlers.ShortcutHandler
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
// Assembly location: C:\Program Files\Zune\UIX.dll
using Microsoft.Iris.Input;
using Microsoft.Iris.Library;
using Microsoft.Iris.Markup;
using Microsoft.Iris.ModelItems;
using Microsoft.Iris.UI;
namespace Microsoft.Iris.InputHandlers
{
internal class ShortcutHandler : InputHandler
{
private ShortcutHandlerCommand _shortcut;
private IUICommand _command;
private bool _handle;
public ShortcutHandler() => _handle = true;
protected override void ConfigureInteractivity()
{
base.ConfigureInteractivity();
if (!HandleDirect)
return;
UI.KeyInteractive = true;
}
public ShortcutHandlerCommand Shortcut
{
get => _shortcut;
set
{
if (_shortcut == value)
return;
_shortcut = value;
FireNotification(NotificationID.Shortcut);
}
}
public IUICommand Command
{
get => _command;
set
{
if (_command == value)
return;
_command = value;
FireNotification(NotificationID.Command);
}
}
public bool Handle
{
get => _handle;
set
{
if (_handle == value)
return;
_handle = value;
FireNotification(NotificationID.Handle);
}
}
protected override void OnCommandDown(UIClass ui, KeyCommandInfo info)
{
if (info.Command != (CommandCode)_shortcut)
return;
InvokeCommand();
if (!_handle)
return;
info.MarkHandled();
}
protected override void OnCommandUp(UIClass ui, KeyCommandInfo info)
{
if (info.Command != (CommandCode)_shortcut || !_handle)
return;
info.MarkHandled();
}
private void InvokeCommand()
{
FireNotification(NotificationID.Invoked);
if (_command == null)
return;
_command.Invoke();
}
public override string ToString() => InvariantString.Format("{0}({1})", GetType().Name, _shortcut);
}
}