mirror of
https://github.com/ZuneDev/MicrosoftIris.git
synced 2026-07-27 13:13:29 -07:00
95 lines
2.5 KiB
C#
95 lines
2.5 KiB
C#
// 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);
|
||
|
|
}
|
||
|
|
}
|