diff options
author | 2019-07-20 19:12:31 +0200 | |
---|---|---|
committer | 2019-07-20 19:12:31 +0200 | |
commit | 2b7ad3d50eae48b1963aa8e866e184c41133ca3d (patch) | |
tree | ae5b0c851aebb2dd8c01c08620d1cea7aa9d2466 /src/input/keyboard | |
parent | eefdcbe06cce97b452ee71ccb6fcd1a423d29075 (diff) | |
download | iced-2b7ad3d50eae48b1963aa8e866e184c41133ca3d.tar.gz iced-2b7ad3d50eae48b1963aa8e866e184c41133ca3d.tar.bz2 iced-2b7ad3d50eae48b1963aa8e866e184c41133ca3d.zip |
Decouple `iced` from `coffee`
Diffstat (limited to 'src/input/keyboard')
-rw-r--r-- | src/input/keyboard/event.rs | 21 | ||||
-rw-r--r-- | src/input/keyboard/key_code.rs | 197 |
2 files changed, 218 insertions, 0 deletions
diff --git a/src/input/keyboard/event.rs b/src/input/keyboard/event.rs new file mode 100644 index 00000000..3804c42d --- /dev/null +++ b/src/input/keyboard/event.rs @@ -0,0 +1,21 @@ +use super::KeyCode; +use crate::input::ButtonState; + +#[derive(Debug, Clone, Copy, PartialEq)] +/// A keyboard event. +pub enum Event { + /// A keyboard key was pressed or released. + Input { + /// The state of the key + state: ButtonState, + + /// The key identifier + key_code: KeyCode, + }, + + /// Text was entered. + TextEntered { + /// The character entered + character: char, + }, +} diff --git a/src/input/keyboard/key_code.rs b/src/input/keyboard/key_code.rs new file mode 100644 index 00000000..5cf9301f --- /dev/null +++ b/src/input/keyboard/key_code.rs @@ -0,0 +1,197 @@ +/// The symbolic name of a keyboard key +#[derive(Debug, Hash, Ord, PartialOrd, PartialEq, Eq, Clone, Copy)] +#[repr(u32)] +pub enum KeyCode { + /// 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, + F16, + F17, + F18, + F19, + F20, + F21, + F22, + F23, + F24, + + /// 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, +} |