summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/src/keyboard.rs2
-rw-r--r--core/src/keyboard/event.rs31
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),
+}