limelight_yew/
key_event.rs1#[derive(Clone, Copy, PartialEq, Debug)]
2pub enum KeyCode {
3 PrintableCharacter(char),
4 Unidentified,
5 Alt,
6 AltGraph,
7 ArrowDown,
8 ArrowLeft,
9 ArrowRight,
10 ArrowUp,
11 Backspace,
12 CapsLock,
13 Clear,
14 Control,
15 Copy,
16 CrSel,
17 Cut,
18 Delete,
19 End,
20 Enter,
21 EraseEof,
22 ExSel,
23 Fn,
24 FnLock,
25 Home,
26 Insert,
27 Meta,
28 NumLock,
29 PageDown,
30 PageUp,
31 Paste,
32 Redo,
33 ScrollLock,
34 Shift,
35 Symbol,
36 SymbolLock,
37 Tab,
38 Undo,
39}
40
41impl From<&str> for KeyCode {
42 fn from(key: &str) -> Self {
43 match key {
44 "Alt" => KeyCode::Alt,
45 "AltGraph" => KeyCode::AltGraph,
46 "ArrowDown" => KeyCode::ArrowDown,
47 "ArrowLeft" => KeyCode::ArrowLeft,
48 "ArrowRight" => KeyCode::ArrowRight,
49 "ArrowUp" => KeyCode::ArrowUp,
50 "Backspace" => KeyCode::Backspace,
51 "CapsLock" => KeyCode::CapsLock,
52 "Clear" => KeyCode::Clear,
53 "Control" => KeyCode::Control,
54 "Copy" => KeyCode::Copy,
55 "CrSel" => KeyCode::CrSel,
56 "Cut" => KeyCode::Cut,
57 "Delete" => KeyCode::Delete,
58 "End" => KeyCode::End,
59 "Enter" => KeyCode::Enter,
60 "EraseEof" => KeyCode::EraseEof,
61 "ExSel" => KeyCode::ExSel,
62 "Fn" => KeyCode::Fn,
63 "FnLock" => KeyCode::FnLock,
64 "Home" => KeyCode::Home,
65 "Insert" => KeyCode::Insert,
66 "Meta" => KeyCode::Meta,
67 "NumLock" => KeyCode::NumLock,
68 "PageDown" => KeyCode::PageDown,
69 "PageUp" => KeyCode::PageUp,
70 "Paste" => KeyCode::Paste,
71 "Redo" => KeyCode::Redo,
72 "ScrollLock" => KeyCode::ScrollLock,
73 "Shift" => KeyCode::Shift,
74 "Symbol" => KeyCode::Symbol,
75 "SymbolLock" => KeyCode::SymbolLock,
76 "Tab" => KeyCode::Tab,
77 "Undo" => KeyCode::Undo,
78 c if c.len() == 1 => KeyCode::PrintableCharacter(c.chars().next().unwrap()),
79 _ => KeyCode::Unidentified,
80 }
81 }
82}