键盘设备键值字段接口调整

This commit is contained in:
ALIENJACK\alien 2025-03-17 10:50:17 +08:00
parent 3257e15dda
commit a93f6449c8
2 changed files with 122 additions and 132 deletions

View File

@ -135,9 +135,10 @@ namespace AxibugEmuOnline.Client.InputDevices
/// <summary> 控件名,这个控件名称必须是唯一的 </summary>
public abstract string ControlName { get; }
public string GetPath()
internal InputControl(InputDevice device)
{
return $"{Device.UniqueName}/{ControlName}";
Device = device;
}
}

View File

@ -9,23 +9,30 @@ namespace AxibugEmuOnline.Client.InputDevices
/// </summary>
public partial class KeyBoard : InputDevice
{
Dictionary<KeyCode, KeyboardKey> m_keyControllerMap = new Dictionary<KeyCode, KeyboardKey>();
public KeyBoard(InputResolver resolver) : base(resolver) { }
protected override IEnumerable<InputControl> DefineControls()
{
var keys = s_keyboardKeys.Select(kc => new KeyboardKey(kc) as InputControl);
var keys = s_keyboardKeys.Select(kc => new KeyboardKey(kc, this) as InputControl);
foreach (KeyboardKey key in keys)
{
m_keyControllerMap[key.m_keycode] = key;
}
return keys;
}
public class KeyboardKey : InputControl
{
KeyCode m_keycode;
internal KeyCode m_keycode;
public override bool Start => Device.Resolver.GetKeyDown(Device as KeyBoard, m_keycode);
public override bool Release => Device.Resolver.GetKeyUp(Device as KeyBoard, m_keycode);
public override bool Performing => Device.Resolver.GetKey(Device as KeyBoard, m_keycode);
public KeyboardKey(KeyCode listenKey)
internal KeyboardKey(KeyCode listenKey, KeyBoard keyboard)
: base(keyboard)
{
m_keycode = listenKey;
}
@ -90,133 +97,115 @@ namespace AxibugEmuOnline.Client.InputDevices
KeyCode.Clear
};
// 字母键 A-Z
public KeyboardKey A { get; private set; } = new KeyboardKey(KeyCode.A);
public KeyboardKey B { get; private set; } = new KeyboardKey(KeyCode.B);
public KeyboardKey C { get; private set; } = new KeyboardKey(KeyCode.C);
public KeyboardKey D { get; private set; } = new KeyboardKey(KeyCode.D);
public KeyboardKey E { get; private set; } = new KeyboardKey(KeyCode.E);
public KeyboardKey F { get; private set; } = new KeyboardKey(KeyCode.F);
public KeyboardKey G { get; private set; } = new KeyboardKey(KeyCode.G);
public KeyboardKey H { get; private set; } = new KeyboardKey(KeyCode.H);
public KeyboardKey I { get; private set; } = new KeyboardKey(KeyCode.I);
public KeyboardKey J { get; private set; } = new KeyboardKey(KeyCode.J);
public KeyboardKey K { get; private set; } = new KeyboardKey(KeyCode.K);
public KeyboardKey L { get; private set; } = new KeyboardKey(KeyCode.L);
public KeyboardKey M { get; private set; } = new KeyboardKey(KeyCode.M);
public KeyboardKey N { get; private set; } = new KeyboardKey(KeyCode.N);
public KeyboardKey O { get; private set; } = new KeyboardKey(KeyCode.O);
public KeyboardKey P { get; private set; } = new KeyboardKey(KeyCode.P);
public KeyboardKey Q { get; private set; } = new KeyboardKey(KeyCode.Q);
public KeyboardKey R { get; private set; } = new KeyboardKey(KeyCode.R);
public KeyboardKey S { get; private set; } = new KeyboardKey(KeyCode.S);
public KeyboardKey T { get; private set; } = new KeyboardKey(KeyCode.T);
public KeyboardKey U { get; private set; } = new KeyboardKey(KeyCode.U);
public KeyboardKey V { get; private set; } = new KeyboardKey(KeyCode.V);
public KeyboardKey W { get; private set; } = new KeyboardKey(KeyCode.W);
public KeyboardKey X { get; private set; } = new KeyboardKey(KeyCode.X);
public KeyboardKey Y { get; private set; } = new KeyboardKey(KeyCode.Y);
public KeyboardKey Z { get; private set; } = new KeyboardKey(KeyCode.Z);
// 数字键 0-9
public KeyboardKey Alpha0 { get; private set; } = new KeyboardKey(KeyCode.Alpha0);
public KeyboardKey Alpha1 { get; private set; } = new KeyboardKey(KeyCode.Alpha1);
public KeyboardKey Alpha2 { get; private set; } = new KeyboardKey(KeyCode.Alpha2);
public KeyboardKey Alpha3 { get; private set; } = new KeyboardKey(KeyCode.Alpha3);
public KeyboardKey Alpha4 { get; private set; } = new KeyboardKey(KeyCode.Alpha4);
public KeyboardKey Alpha5 { get; private set; } = new KeyboardKey(KeyCode.Alpha5);
public KeyboardKey Alpha6 { get; private set; } = new KeyboardKey(KeyCode.Alpha6);
public KeyboardKey Alpha7 { get; private set; } = new KeyboardKey(KeyCode.Alpha7);
public KeyboardKey Alpha8 { get; private set; } = new KeyboardKey(KeyCode.Alpha8);
public KeyboardKey Alpha9 { get; private set; } = new KeyboardKey(KeyCode.Alpha9);
// 功能键 F1-F15
public KeyboardKey F1 { get; private set; } = new KeyboardKey(KeyCode.F1);
public KeyboardKey F2 { get; private set; } = new KeyboardKey(KeyCode.F2);
public KeyboardKey F3 { get; private set; } = new KeyboardKey(KeyCode.F3);
public KeyboardKey F4 { get; private set; } = new KeyboardKey(KeyCode.F4);
public KeyboardKey F5 { get; private set; } = new KeyboardKey(KeyCode.F5);
public KeyboardKey F6 { get; private set; } = new KeyboardKey(KeyCode.F6);
public KeyboardKey F7 { get; private set; } = new KeyboardKey(KeyCode.F7);
public KeyboardKey F8 { get; private set; } = new KeyboardKey(KeyCode.F8);
public KeyboardKey F9 { get; private set; } = new KeyboardKey(KeyCode.F9);
public KeyboardKey F10 { get; private set; } = new KeyboardKey(KeyCode.F10);
public KeyboardKey F11 { get; private set; } = new KeyboardKey(KeyCode.F11);
public KeyboardKey F12 { get; private set; } = new KeyboardKey(KeyCode.F12);
public KeyboardKey F13 { get; private set; } = new KeyboardKey(KeyCode.F13);
public KeyboardKey F14 { get; private set; } = new KeyboardKey(KeyCode.F14);
public KeyboardKey F15 { get; private set; } = new KeyboardKey(KeyCode.F15);
// 方向键
public KeyboardKey UpArrow { get; private set; } = new KeyboardKey(KeyCode.UpArrow);
public KeyboardKey DownArrow { get; private set; } = new KeyboardKey(KeyCode.DownArrow);
public KeyboardKey LeftArrow { get; private set; } = new KeyboardKey(KeyCode.LeftArrow);
public KeyboardKey RightArrow { get; private set; } = new KeyboardKey(KeyCode.RightArrow);
// 控制键
public KeyboardKey Space { get; private set; } = new KeyboardKey(KeyCode.Space);
public KeyboardKey Return { get; private set; } = new KeyboardKey(KeyCode.Return);
public KeyboardKey Escape { get; private set; } = new KeyboardKey(KeyCode.Escape);
public KeyboardKey Tab { get; private set; } = new KeyboardKey(KeyCode.Tab);
/// <summary>
/// <img src="./test.png" alt="test"/>
/// </summary>
public KeyboardKey Backspace { get; private set; } = new KeyboardKey(KeyCode.Backspace);
public KeyboardKey CapsLock { get; private set; } = new KeyboardKey(KeyCode.CapsLock);
public KeyboardKey LeftShift { get; private set; } = new KeyboardKey(KeyCode.LeftShift);
public KeyboardKey RightShift { get; private set; } = new KeyboardKey(KeyCode.RightShift);
public KeyboardKey LeftControl { get; private set; } = new KeyboardKey(KeyCode.LeftControl);
public KeyboardKey RightControl { get; private set; } = new KeyboardKey(KeyCode.RightControl);
public KeyboardKey LeftAlt { get; private set; } = new KeyboardKey(KeyCode.LeftAlt);
public KeyboardKey RightAlt { get; private set; } = new KeyboardKey(KeyCode.RightAlt);
public KeyboardKey LeftCommand { get; private set; } = new KeyboardKey(KeyCode.LeftCommand);
public KeyboardKey RightCommand { get; private set; } = new KeyboardKey(KeyCode.RightCommand);
public KeyboardKey Menu { get; private set; } = new KeyboardKey(KeyCode.Menu);
// 符号键
public KeyboardKey Comma { get; private set; } = new KeyboardKey(KeyCode.Comma);
public KeyboardKey Period { get; private set; } = new KeyboardKey(KeyCode.Period);
public KeyboardKey Slash { get; private set; } = new KeyboardKey(KeyCode.Slash);
public KeyboardKey BackQuote { get; private set; } = new KeyboardKey(KeyCode.BackQuote);
public KeyboardKey Quote { get; private set; } = new KeyboardKey(KeyCode.Quote);
public KeyboardKey Semicolon { get; private set; } = new KeyboardKey(KeyCode.Semicolon);
public KeyboardKey LeftBracket { get; private set; } = new KeyboardKey(KeyCode.LeftBracket);
public KeyboardKey RightBracket { get; private set; } = new KeyboardKey(KeyCode.RightBracket);
public KeyboardKey Backslash { get; private set; } = new KeyboardKey(KeyCode.Backslash);
public KeyboardKey Minus { get; private set; } = new KeyboardKey(KeyCode.Minus);
public KeyboardKey Equals_k { get; private set; } = new KeyboardKey(KeyCode.Equals);
public KeyboardKey Tilde { get; private set; } = new KeyboardKey(KeyCode.Tilde);
// 小键盘
public KeyboardKey Keypad0 { get; private set; } = new KeyboardKey(KeyCode.Keypad0);
public KeyboardKey Keypad1 { get; private set; } = new KeyboardKey(KeyCode.Keypad1);
public KeyboardKey Keypad2 { get; private set; } = new KeyboardKey(KeyCode.Keypad2);
public KeyboardKey Keypad3 { get; private set; } = new KeyboardKey(KeyCode.Keypad3);
public KeyboardKey Keypad4 { get; private set; } = new KeyboardKey(KeyCode.Keypad4);
public KeyboardKey Keypad5 { get; private set; } = new KeyboardKey(KeyCode.Keypad5);
public KeyboardKey Keypad6 { get; private set; } = new KeyboardKey(KeyCode.Keypad6);
public KeyboardKey Keypad7 { get; private set; } = new KeyboardKey(KeyCode.Keypad7);
public KeyboardKey Keypad8 { get; private set; } = new KeyboardKey(KeyCode.Keypad8);
public KeyboardKey Keypad9 { get; private set; } = new KeyboardKey(KeyCode.Keypad9);
public KeyboardKey KeypadPeriod { get; private set; } = new KeyboardKey(KeyCode.KeypadPeriod);
public KeyboardKey KeypadDivide { get; private set; } = new KeyboardKey(KeyCode.KeypadDivide);
public KeyboardKey KeypadMultiply { get; private set; } = new KeyboardKey(KeyCode.KeypadMultiply);
public KeyboardKey KeypadMinus { get; private set; } = new KeyboardKey(KeyCode.KeypadMinus);
public KeyboardKey KeypadPlus { get; private set; } = new KeyboardKey(KeyCode.KeypadPlus);
public KeyboardKey KeypadEnter { get; private set; } = new KeyboardKey(KeyCode.KeypadEnter);
public KeyboardKey Numlock { get; private set; } = new KeyboardKey(KeyCode.Numlock);
// 其他标准键
public KeyboardKey Print { get; private set; } = new KeyboardKey(KeyCode.Print);
public KeyboardKey Insert { get; private set; } = new KeyboardKey(KeyCode.Insert);
public KeyboardKey Delete { get; private set; } = new KeyboardKey(KeyCode.Delete);
public KeyboardKey Home { get; private set; } = new KeyboardKey(KeyCode.Home);
public KeyboardKey End { get; private set; } = new KeyboardKey(KeyCode.End);
public KeyboardKey PageUp { get; private set; } = new KeyboardKey(KeyCode.PageUp);
public KeyboardKey PageDown { get; private set; } = new KeyboardKey(KeyCode.PageDown);
public KeyboardKey Pause { get; private set; } = new KeyboardKey(KeyCode.Pause);
public KeyboardKey ScrollLock { get; private set; } = new KeyboardKey(KeyCode.ScrollLock);
public KeyboardKey Clear { get; private set; } = new KeyboardKey(KeyCode.Clear);
public KeyboardKey A => m_keyControllerMap[KeyCode.A];
public KeyboardKey B => m_keyControllerMap[KeyCode.B];
public KeyboardKey C => m_keyControllerMap[KeyCode.C];
public KeyboardKey D => m_keyControllerMap[KeyCode.D];
public KeyboardKey E => m_keyControllerMap[KeyCode.E];
public KeyboardKey F => m_keyControllerMap[KeyCode.F];
public KeyboardKey G => m_keyControllerMap[KeyCode.G];
public KeyboardKey H => m_keyControllerMap[KeyCode.H];
public KeyboardKey I => m_keyControllerMap[KeyCode.I];
public KeyboardKey J => m_keyControllerMap[KeyCode.J];
public KeyboardKey K => m_keyControllerMap[KeyCode.K];
public KeyboardKey L => m_keyControllerMap[KeyCode.L];
public KeyboardKey M => m_keyControllerMap[KeyCode.M];
public KeyboardKey N => m_keyControllerMap[KeyCode.N];
public KeyboardKey O => m_keyControllerMap[KeyCode.O];
public KeyboardKey P => m_keyControllerMap[KeyCode.P];
public KeyboardKey Q => m_keyControllerMap[KeyCode.Q];
public KeyboardKey R => m_keyControllerMap[KeyCode.R];
public KeyboardKey S => m_keyControllerMap[KeyCode.S];
public KeyboardKey T => m_keyControllerMap[KeyCode.T];
public KeyboardKey U => m_keyControllerMap[KeyCode.U];
public KeyboardKey V => m_keyControllerMap[KeyCode.V];
public KeyboardKey W => m_keyControllerMap[KeyCode.W];
public KeyboardKey X => m_keyControllerMap[KeyCode.X];
public KeyboardKey Y => m_keyControllerMap[KeyCode.Y];
public KeyboardKey Z => m_keyControllerMap[KeyCode.Z];
public KeyboardKey Alpha0 => m_keyControllerMap[KeyCode.Alpha0];
public KeyboardKey Alpha1 => m_keyControllerMap[KeyCode.Alpha1];
public KeyboardKey Alpha2 => m_keyControllerMap[KeyCode.Alpha2];
public KeyboardKey Alpha3 => m_keyControllerMap[KeyCode.Alpha3];
public KeyboardKey Alpha4 => m_keyControllerMap[KeyCode.Alpha4];
public KeyboardKey Alpha5 => m_keyControllerMap[KeyCode.Alpha5];
public KeyboardKey Alpha6 => m_keyControllerMap[KeyCode.Alpha6];
public KeyboardKey Alpha7 => m_keyControllerMap[KeyCode.Alpha7];
public KeyboardKey Alpha8 => m_keyControllerMap[KeyCode.Alpha8];
public KeyboardKey Alpha9 => m_keyControllerMap[KeyCode.Alpha9];
public KeyboardKey F1 => m_keyControllerMap[KeyCode.F1];
public KeyboardKey F2 => m_keyControllerMap[KeyCode.F2];
public KeyboardKey F3 => m_keyControllerMap[KeyCode.F3];
public KeyboardKey F4 => m_keyControllerMap[KeyCode.F4];
public KeyboardKey F5 => m_keyControllerMap[KeyCode.F5];
public KeyboardKey F6 => m_keyControllerMap[KeyCode.F6];
public KeyboardKey F7 => m_keyControllerMap[KeyCode.F7];
public KeyboardKey F8 => m_keyControllerMap[KeyCode.F8];
public KeyboardKey F9 => m_keyControllerMap[KeyCode.F9];
public KeyboardKey F10 => m_keyControllerMap[KeyCode.F10];
public KeyboardKey F11 => m_keyControllerMap[KeyCode.F11];
public KeyboardKey F12 => m_keyControllerMap[KeyCode.F12];
public KeyboardKey F13 => m_keyControllerMap[KeyCode.F13];
public KeyboardKey F14 => m_keyControllerMap[KeyCode.F14];
public KeyboardKey F15 => m_keyControllerMap[KeyCode.F15];
public KeyboardKey UpArrow => m_keyControllerMap[KeyCode.UpArrow];
public KeyboardKey DownArrow => m_keyControllerMap[KeyCode.DownArrow];
public KeyboardKey LeftArrow => m_keyControllerMap[KeyCode.LeftArrow];
public KeyboardKey RightArrow => m_keyControllerMap[KeyCode.RightArrow];
public KeyboardKey Space => m_keyControllerMap[KeyCode.Space];
public KeyboardKey Return => m_keyControllerMap[KeyCode.Return];
public KeyboardKey Escape => m_keyControllerMap[KeyCode.Escape];
public KeyboardKey Tab => m_keyControllerMap[KeyCode.Tab];
public KeyboardKey Backspace => m_keyControllerMap[KeyCode.Backspace];
public KeyboardKey CapsLock => m_keyControllerMap[KeyCode.CapsLock];
public KeyboardKey LeftShift => m_keyControllerMap[KeyCode.LeftShift];
public KeyboardKey RightShift => m_keyControllerMap[KeyCode.RightShift];
public KeyboardKey LeftControl => m_keyControllerMap[KeyCode.LeftControl];
public KeyboardKey RightControl => m_keyControllerMap[KeyCode.RightControl];
public KeyboardKey LeftAlt => m_keyControllerMap[KeyCode.LeftAlt];
public KeyboardKey RightAlt => m_keyControllerMap[KeyCode.RightAlt];
public KeyboardKey LeftCommand => m_keyControllerMap[KeyCode.LeftCommand];
public KeyboardKey RightCommand => m_keyControllerMap[KeyCode.RightCommand];
public KeyboardKey Menu => m_keyControllerMap[KeyCode.Menu];
public KeyboardKey Comma => m_keyControllerMap[KeyCode.Comma];
public KeyboardKey Period => m_keyControllerMap[KeyCode.Period];
public KeyboardKey Slash => m_keyControllerMap[KeyCode.Slash];
public KeyboardKey BackQuote => m_keyControllerMap[KeyCode.BackQuote];
public KeyboardKey Quote => m_keyControllerMap[KeyCode.Quote];
public KeyboardKey Semicolon => m_keyControllerMap[KeyCode.Semicolon];
public KeyboardKey LeftBracket => m_keyControllerMap[KeyCode.LeftBracket];
public KeyboardKey RightBracket => m_keyControllerMap[KeyCode.RightBracket];
public KeyboardKey Backslash => m_keyControllerMap[KeyCode.Backslash];
public KeyboardKey Minus => m_keyControllerMap[KeyCode.Minus];
public KeyboardKey Equals_k => m_keyControllerMap[KeyCode.Equals];
public KeyboardKey Tilde => m_keyControllerMap[KeyCode.Tilde];
public KeyboardKey Keypad0 => m_keyControllerMap[KeyCode.Keypad0];
public KeyboardKey Keypad1 => m_keyControllerMap[KeyCode.Keypad1];
public KeyboardKey Keypad2 => m_keyControllerMap[KeyCode.Keypad2];
public KeyboardKey Keypad3 => m_keyControllerMap[KeyCode.Keypad3];
public KeyboardKey Keypad4 => m_keyControllerMap[KeyCode.Keypad4];
public KeyboardKey Keypad5 => m_keyControllerMap[KeyCode.Keypad5];
public KeyboardKey Keypad6 => m_keyControllerMap[KeyCode.Keypad6];
public KeyboardKey Keypad7 => m_keyControllerMap[KeyCode.Keypad7];
public KeyboardKey Keypad8 => m_keyControllerMap[KeyCode.Keypad8];
public KeyboardKey Keypad9 => m_keyControllerMap[KeyCode.Keypad9];
public KeyboardKey KeypadPeriod => m_keyControllerMap[KeyCode.KeypadPeriod];
public KeyboardKey KeypadDivide => m_keyControllerMap[KeyCode.KeypadDivide];
public KeyboardKey KeypadMultiply => m_keyControllerMap[KeyCode.KeypadMultiply];
public KeyboardKey KeypadMinus => m_keyControllerMap[KeyCode.KeypadMinus];
public KeyboardKey KeypadPlus => m_keyControllerMap[KeyCode.KeypadPlus];
public KeyboardKey KeypadEnter => m_keyControllerMap[KeyCode.KeypadEnter];
public KeyboardKey Numlock => m_keyControllerMap[KeyCode.Numlock];
public KeyboardKey Print => m_keyControllerMap[KeyCode.Print];
public KeyboardKey Insert => m_keyControllerMap[KeyCode.Insert];
public KeyboardKey Delete => m_keyControllerMap[KeyCode.Delete];
public KeyboardKey Home => m_keyControllerMap[KeyCode.Home];
public KeyboardKey End => m_keyControllerMap[KeyCode.End];
public KeyboardKey PageUp => m_keyControllerMap[KeyCode.PageUp];
public KeyboardKey PageDown => m_keyControllerMap[KeyCode.PageDown];
public KeyboardKey Pause => m_keyControllerMap[KeyCode.Pause];
public KeyboardKey ScrollLock => m_keyControllerMap[KeyCode.ScrollLock];
public KeyboardKey Clear => m_keyControllerMap[KeyCode.Clear];
}
#endregion
}