diff options
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/keyboard.rs | 2 | ||||
-rw-r--r-- | core/src/keyboard/event.rs | 31 |
2 files changed, 33 insertions, 0 deletions
diff --git a/core/src/keyboard.rs b/core/src/keyboard.rs index d98b2989..b26bdb3d 100644 --- a/core/src/keyboard.rs +++ b/core/src/keyboard.rs @@ -1,6 +1,8 @@ //! Reuse basic keyboard types. +mod event; mod key_code; mod modifiers_state; +pub use event::Event; pub use key_code::KeyCode; pub use modifiers_state::ModifiersState; diff --git a/core/src/keyboard/event.rs b/core/src/keyboard/event.rs new file mode 100644 index 00000000..bc8437a8 --- /dev/null +++ b/core/src/keyboard/event.rs @@ -0,0 +1,31 @@ +use super::{KeyCode, ModifiersState}; + +/// A keyboard event. +/// +/// _**Note:** This type is largely incomplete! If you need to track +/// additional events, feel free to [open an issue] and share your use case!_ +/// +/// [open an issue]: https://github.com/hecrj/iced/issues +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Event { + /// A keyboard key was pressed. + KeyPressed { + /// The key identifier + key_code: KeyCode, + + /// The state of the modifier keys + modifiers: ModifiersState, + }, + + /// A keyboard key was released. + KeyReleased { + /// The key identifier + key_code: KeyCode, + + /// The state of the modifier keys + modifiers: ModifiersState, + }, + + /// A unicode character was received. + CharacterReceived(char), +} |