2021-11-07 04:46:17 +00:00
|
|
|
|
|
|
|
#[derive(Copy, Clone, Debug, PartialEq)]
|
|
|
|
pub enum Key {
|
|
|
|
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,
|
|
|
|
Num1,
|
|
|
|
Num2,
|
|
|
|
Num3,
|
|
|
|
Num4,
|
|
|
|
Num5,
|
|
|
|
Num6,
|
|
|
|
Num7,
|
|
|
|
Num8,
|
|
|
|
Num9,
|
|
|
|
Num0,
|
|
|
|
Enter,
|
|
|
|
Escape,
|
|
|
|
Backspace,
|
|
|
|
Tab,
|
|
|
|
Space,
|
|
|
|
Minus,
|
|
|
|
Equals,
|
|
|
|
LeftBracket,
|
|
|
|
RightBracket,
|
|
|
|
Backslash,
|
|
|
|
Semicolon,
|
|
|
|
Apostrophe,
|
|
|
|
Backquote,
|
|
|
|
Comma,
|
|
|
|
Period,
|
|
|
|
Slash,
|
|
|
|
F1,
|
|
|
|
F2,
|
|
|
|
F3,
|
|
|
|
F4,
|
|
|
|
F5,
|
|
|
|
F6,
|
|
|
|
F7,
|
|
|
|
F8,
|
|
|
|
F9,
|
|
|
|
F10,
|
|
|
|
F11,
|
|
|
|
F12,
|
|
|
|
PrintScreen,
|
|
|
|
ScrollLock,
|
|
|
|
Pause,
|
|
|
|
Insert,
|
|
|
|
Home,
|
|
|
|
PageUp,
|
|
|
|
Delete,
|
|
|
|
End,
|
|
|
|
PageDown,
|
|
|
|
Right,
|
|
|
|
Left,
|
|
|
|
Down,
|
|
|
|
Up,
|
|
|
|
|
|
|
|
NumLock,
|
|
|
|
CapsLock,
|
|
|
|
LeftShift,
|
|
|
|
RightShift,
|
|
|
|
LeftCtrl,
|
|
|
|
RightCtrl,
|
|
|
|
LeftAlt,
|
|
|
|
RightAlt,
|
|
|
|
LeftSuper,
|
|
|
|
RightSuper,
|
|
|
|
|
|
|
|
NumPad0,
|
|
|
|
NumPad1,
|
|
|
|
NumPad2,
|
|
|
|
NumPad3,
|
|
|
|
NumPad4,
|
|
|
|
NumPad5,
|
|
|
|
NumPad6,
|
|
|
|
NumPad7,
|
|
|
|
NumPad8,
|
|
|
|
NumPad9,
|
|
|
|
NumPadDot,
|
|
|
|
NumPadSlash,
|
|
|
|
NumPadAsterisk,
|
|
|
|
NumPadMinus,
|
|
|
|
NumPadPlus,
|
|
|
|
NumPadEnter,
|
|
|
|
|
|
|
|
Unknown,
|
|
|
|
}
|
|
|
|
|
2022-10-03 03:39:02 +00:00
|
|
|
pub struct KeyEvent {
|
|
|
|
pub key: Key,
|
|
|
|
pub state: bool,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl KeyEvent {
|
|
|
|
pub fn new(key: Key, state: bool) -> Self {
|
|
|
|
Self {
|
|
|
|
key,
|
|
|
|
state,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|