8 changed files with 282 additions and 28 deletions
@ -0,0 +1,211 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using Avalonia.Input; |
|||
|
|||
namespace Avalonia.Windowing |
|||
{ |
|||
public enum VirtualKeyCode : UInt32 |
|||
{ |
|||
/// The '1' key over the letters.
|
|||
Key1, |
|||
/// The '2' key over the letters.
|
|||
Key2, |
|||
/// The '3' key over the letters.
|
|||
Key3, |
|||
/// The '4' key over the letters.
|
|||
Key4, |
|||
/// The '5' key over the letters.
|
|||
Key5, |
|||
/// The '6' key over the letters.
|
|||
Key6, |
|||
/// The '7' key over the letters.
|
|||
Key7, |
|||
/// The '8' key over the letters.
|
|||
Key8, |
|||
/// The '9' key over the letters.
|
|||
Key9, |
|||
/// The '0' key over the 'O' and 'P' keys.
|
|||
Key0, |
|||
|
|||
A, |
|||
B, |
|||
C, |
|||
D, |
|||
E, |
|||
F, |
|||
G, |
|||
H, |
|||
I, |
|||
J, |
|||
K, |
|||
L, |
|||
M, |
|||
N, |
|||
O, |
|||
P, |
|||
Q, |
|||
R, |
|||
S, |
|||
T, |
|||
U, |
|||
V, |
|||
W, |
|||
X, |
|||
Y, |
|||
Z, |
|||
|
|||
/// The Escape key, next to F1.
|
|||
Escape, |
|||
|
|||
F1, |
|||
F2, |
|||
F3, |
|||
F4, |
|||
F5, |
|||
F6, |
|||
F7, |
|||
F8, |
|||
F9, |
|||
F10, |
|||
F11, |
|||
F12, |
|||
F13, |
|||
F14, |
|||
F15, |
|||
|
|||
/// Print Screen/SysRq.
|
|||
Snapshot, |
|||
/// Scroll Lock.
|
|||
Scroll, |
|||
/// Pause/Break key, next to Scroll lock.
|
|||
Pause, |
|||
|
|||
/// `Insert`, next to Backspace.
|
|||
Insert, |
|||
Home, |
|||
Delete, |
|||
End, |
|||
PageDown, |
|||
PageUp, |
|||
|
|||
Left, |
|||
Up, |
|||
Right, |
|||
Down, |
|||
|
|||
/// The Backspace key, right over Enter.
|
|||
// TODO: rename
|
|||
Back, |
|||
/// The Enter key.
|
|||
Return, |
|||
/// The space bar.
|
|||
Space, |
|||
|
|||
/// The "Compose" key on Linux.
|
|||
Compose, |
|||
|
|||
Caret, |
|||
|
|||
Numlock, |
|||
Numpad0, |
|||
Numpad1, |
|||
Numpad2, |
|||
Numpad3, |
|||
Numpad4, |
|||
Numpad5, |
|||
Numpad6, |
|||
Numpad7, |
|||
Numpad8, |
|||
Numpad9, |
|||
|
|||
AbntC1, |
|||
AbntC2, |
|||
Add, |
|||
Apostrophe, |
|||
Apps, |
|||
At, |
|||
Ax, |
|||
Backslash, |
|||
Calculator, |
|||
Capital, |
|||
Colon, |
|||
Comma, |
|||
Convert, |
|||
Decimal, |
|||
Divide, |
|||
Equals, |
|||
Grave, |
|||
Kana, |
|||
Kanji, |
|||
LAlt, |
|||
LBracket, |
|||
LControl, |
|||
LShift, |
|||
LWin, |
|||
Mail, |
|||
MediaSelect, |
|||
MediaStop, |
|||
Minus, |
|||
Multiply, |
|||
Mute, |
|||
MyComputer, |
|||
NavigateForward, // also called "Prior"
|
|||
NavigateBackward, // also called "Next"
|
|||
NextTrack, |
|||
NoConvert, |
|||
NumpadComma, |
|||
NumpadEnter, |
|||
NumpadEquals, |
|||
OEM102, |
|||
Period, |
|||
PlayPause, |
|||
Power, |
|||
PrevTrack, |
|||
RAlt, |
|||
RBracket, |
|||
RControl, |
|||
RShift, |
|||
RWin, |
|||
Semicolon, |
|||
Slash, |
|||
Sleep, |
|||
Stop, |
|||
Subtract, |
|||
Sysrq, |
|||
Tab, |
|||
Underline, |
|||
Unlabeled, |
|||
VolumeDown, |
|||
VolumeUp, |
|||
Wake, |
|||
WebBack, |
|||
WebFavorites, |
|||
WebForward, |
|||
WebHome, |
|||
WebRefresh, |
|||
WebSearch, |
|||
WebStop, |
|||
Yen, |
|||
Copy, |
|||
Paste, |
|||
Cut, |
|||
} |
|||
|
|||
public static class KeyTransform |
|||
{ |
|||
static readonly Dictionary<VirtualKeyCode, Key> Keys = new Dictionary<VirtualKeyCode, Key> |
|||
{ |
|||
[VirtualKeyCode.Key0] = Key.D0, |
|||
[VirtualKeyCode.Key1] = Key.D1, |
|||
|
|||
[VirtualKeyCode.A] = Key.A |
|||
}; |
|||
|
|||
public static Key? TransformKeyCode(VirtualKeyCode code) |
|||
{ |
|||
if (Keys.TryGetValue(code, out var rv)) |
|||
return rv; |
|||
return null; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue