Skip to main content

limelight_yew/
key_event.rs

1#[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}