Improve the Inputsystem for ModernUI
This commit is contained in:
parent
d942f502e5
commit
a6d50e8c72
@ -109,10 +109,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="SharpDX">
|
<Reference Include="SharpDX">
|
||||||
<HintPath>..\..\lib\SharpDX\Bin\Win8Metro\SharpDX.dll</HintPath>
|
<HintPath>..\..\lib\SharpDX\Bin\Standard-net20\SharpDX.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SharpDX.XInput">
|
<Reference Include="SharpDX.XInput">
|
||||||
<HintPath>..\..\lib\SharpDX\Bin\Win8Metro\SharpDX.XInput.dll</HintPath>
|
<HintPath>..\..\lib\SharpDX\Bin\Standard-net20\SharpDX.XInput.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -111,10 +111,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="SharpDX">
|
<Reference Include="SharpDX">
|
||||||
<HintPath>..\..\lib\SharpDX\Bin\Win8Metro\SharpDX.dll</HintPath>
|
<HintPath>..\..\lib\sharpdx\bin\standard-winrt\sharpdx.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SharpDX.XInput">
|
<Reference Include="SharpDX.XInput">
|
||||||
<HintPath>..\..\lib\SharpDX\Bin\Win8Metro\SharpDX.XInput.dll</HintPath>
|
<HintPath>..\..\lib\sharpdx\bin\standard-winrt\sharpdx.xinput.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using ANX.Framework.Input;
|
using ANX.Framework.Input;
|
||||||
using ANX.Framework.NonXNA.Development;
|
using ANX.Framework.NonXNA.Development;
|
||||||
using SharpDX.XInput;
|
using SharpDX.XInput;
|
||||||
|
using Windows.System;
|
||||||
|
|
||||||
// This file is part of the ANX.Framework created by the
|
// This file is part of the ANX.Framework created by the
|
||||||
// "ANX.Framework developer group" and released under the Ms-PL license.
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
||||||
@ -14,10 +15,12 @@ namespace ANX.InputDevices.Windows.ModernUI
|
|||||||
internal static class FormatConverter
|
internal static class FormatConverter
|
||||||
{
|
{
|
||||||
private static Dictionary<GamepadButtonFlags, Buttons> gamePadButtonsMap;
|
private static Dictionary<GamepadButtonFlags, Buttons> gamePadButtonsMap;
|
||||||
|
private static Dictionary<VirtualKey, Keys> keyboardKeyMap;
|
||||||
|
|
||||||
static FormatConverter()
|
static FormatConverter()
|
||||||
{
|
{
|
||||||
CreateGamePadButtonMap();
|
CreateGamePadButtonMap();
|
||||||
|
CreateKeyboardKeyMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region CreateGamePadButtonMap
|
#region CreateGamePadButtonMap
|
||||||
@ -77,6 +80,151 @@ namespace ANX.InputDevices.Windows.ModernUI
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region CreateKeyboardKeyMap
|
||||||
|
private static void CreateKeyboardKeyMap()
|
||||||
|
{
|
||||||
|
keyboardKeyMap = new Dictionary<VirtualKey, Keys>();
|
||||||
|
keyboardKeyMap.Add(VirtualKey.A, Keys.A);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Accept, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Add, Keys.Add);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Application, Keys.Apps);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.B, Keys.B);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Back, Keys.Back);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.C, Keys.C);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Cancel, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.CapitalLock, Keys.CapsLock);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Clear, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Control, Keys.Crsel);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Convert, Keys.ImeConvert);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.D, Keys.D);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Decimal, Keys.Decimal);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Delete, Keys.Delete);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Divide, Keys.Divide);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Down, Keys.Down);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.E, Keys.E);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.End, Keys.End);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Enter, Keys.Enter);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Escape, Keys.Escape);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Execute, Keys.Execute);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F, Keys.F);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F1, Keys.F1);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F10, Keys.F10);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F11, Keys.F11);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F12, Keys.F12);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F13, Keys.F13);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F14, Keys.F14);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F15, Keys.F15);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F16, Keys.F16);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F17, Keys.F17);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F18, Keys.F18);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F19, Keys.F19);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F20, Keys.F20);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F21, Keys.F21);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F22, Keys.F22);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F23, Keys.F23);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F24, Keys.F24);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F3, Keys.F3);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F4, Keys.F4);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F5, Keys.F5);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F6, Keys.F6);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F7, Keys.F7);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F8, Keys.F8);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F9, Keys.F9);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.F2, Keys.F2);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Final, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.G, Keys.G);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.H, Keys.H);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Hangul, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Hanja, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Help, Keys.Help);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Home, Keys.Home);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.I, Keys.I);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Insert, Keys.Insert);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.J, Keys.J);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Junja, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.K, Keys.K);
|
||||||
|
//keyboardKeyMap.Add(VirtualKey.Kana, Keys.Kana);
|
||||||
|
//keyboardKeyMap.Add(VirtualKey.Kanji, Keys.Kanji);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.L, Keys.L);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Left, Keys.Left);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.LeftButton, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.LeftControl, Keys.LeftControl);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.LeftMenu, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.LeftShift, Keys.LeftShift);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.LeftWindows, Keys.LeftWindows);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.M, Keys.M);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Menu, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.MiddleButton, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.ModeChange, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Multiply, Keys.Multiply);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.N, Keys.N);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NonConvert, Keys.ImeNoConvert);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.None, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number0, Keys.NumPad0);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number1, Keys.NumPad1);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number2, Keys.NumPad2);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number3, Keys.NumPad3);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number4, Keys.NumPad4);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number5, Keys.NumPad5);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number6, Keys.NumPad6);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number7, Keys.NumPad7);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number8, Keys.NumPad8);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Number9, Keys.NumPad9);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberKeyLock, Keys.NumLock);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad0, Keys.NumPad0);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad1, Keys.NumPad1);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad2, Keys.NumPad2);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad3, Keys.NumPad3);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad4, Keys.NumPad4);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad5, Keys.NumPad5);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad6, Keys.NumPad6);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad7, Keys.NumPad7);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad8, Keys.NumPad8);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.NumberPad9, Keys.NumPad9);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.O, Keys.O);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.P, Keys.P);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.PageDown, Keys.PageDown);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.PageUp, Keys.PageUp);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Pause, Keys.Pause);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Print, Keys.Print);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Q, Keys.Q);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.R, Keys.R);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Right, Keys.Right);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.RightButton, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.RightControl, Keys.RightControl);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.RightMenu, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.RightShift, Keys.RightShift);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.RightWindows, Keys.RightWindows);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.S, Keys.S);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Scroll, Keys.Scroll);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Select, Keys.Select);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Separator, Keys.Separator);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Shift, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Sleep, Keys.Sleep);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Snapshot, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Space, Keys.Space);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Subtract, Keys.Subtract);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.T, Keys.T);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Tab, Keys.Tab);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.U, Keys.U);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Up, Keys.Up);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.V, Keys.V);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.W, Keys.W);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.X, Keys.X);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.XButton1, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.XButton2, Keys.None);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Y, Keys.Y);
|
||||||
|
keyboardKeyMap.Add(VirtualKey.Z, Keys.Z);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Translate (VirtualKey)
|
||||||
|
public static Keys Translate(VirtualKey key)
|
||||||
|
{
|
||||||
|
return keyboardKeyMap.ContainsKey(key) ? keyboardKeyMap[key] : Keys.None;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,9 @@ using ANX.Framework.Input;
|
|||||||
using ANX.Framework.NonXNA;
|
using ANX.Framework.NonXNA;
|
||||||
using ANX.Framework.NonXNA.Development;
|
using ANX.Framework.NonXNA.Development;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Windows.System;
|
||||||
|
using Windows.UI.Core;
|
||||||
|
|
||||||
|
|
||||||
// This file is part of the ANX.Framework created by the
|
// This file is part of the ANX.Framework created by the
|
||||||
@ -11,26 +14,54 @@ using System;
|
|||||||
|
|
||||||
namespace ANX.InputDevices.Windows.ModernUI
|
namespace ANX.InputDevices.Windows.ModernUI
|
||||||
{
|
{
|
||||||
[PercentageComplete(0)]
|
[PercentageComplete(80)]
|
||||||
[TestState(TestStateAttribute.TestState.Untested)]
|
[TestState(TestStateAttribute.TestState.InProgress)]
|
||||||
[Developer("rene87")]
|
[Developer("rene87")]
|
||||||
class Keyboard : IKeyboard
|
public class Keyboard : IKeyboard
|
||||||
{
|
{
|
||||||
|
private IntPtr windowHandle;
|
||||||
|
KeyboardState _state;
|
||||||
public IntPtr WindowHandle
|
public IntPtr WindowHandle
|
||||||
{
|
{
|
||||||
get
|
get { return windowHandle; }
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
if (windowHandle != value)
|
||||||
|
{
|
||||||
|
windowHandle = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Keyboard()
|
||||||
|
{
|
||||||
|
CoreWindow.GetForCurrentThread().KeyDown += Keyboard_KeyDown;
|
||||||
|
CoreWindow.GetForCurrentThread().KeyUp += Keyboard_KeyUp;
|
||||||
|
_state = new KeyboardState(Keys.None);
|
||||||
|
_state.RemovePressedKey(Keys.None);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Keyboard_KeyUp(CoreWindow sender, KeyEventArgs args)
|
||||||
|
{
|
||||||
|
var key = FormatConverter.Translate(args.VirtualKey);
|
||||||
|
|
||||||
|
_state.RemovePressedKey(key);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Keyboard_KeyDown(CoreWindow sender, KeyEventArgs args)
|
||||||
|
{
|
||||||
|
var key = FormatConverter.Translate(args.VirtualKey);
|
||||||
|
if (key != Keys.None)
|
||||||
|
{
|
||||||
|
_state.AddPressedKey(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyboardState GetState()
|
public KeyboardState GetState()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
|
||||||
|
return _state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyboardState GetState(PlayerIndex playerIndex)
|
public KeyboardState GetState(PlayerIndex playerIndex)
|
||||||
|
@ -14,7 +14,7 @@ namespace ANX.InputDevices.Windows.ModernUI
|
|||||||
[PercentageComplete(80)]
|
[PercentageComplete(80)]
|
||||||
[TestState(TestStateAttribute.TestState.Untested)]
|
[TestState(TestStateAttribute.TestState.Untested)]
|
||||||
[Developer("rene87")]
|
[Developer("rene87")]
|
||||||
class Mouse : IMouse
|
public class Mouse : IMouse
|
||||||
{
|
{
|
||||||
private int _wheel;
|
private int _wheel;
|
||||||
private int _x;
|
private int _x;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user