Add ModifiersState to keyboard::Event::Input

This commit is contained in:
Héctor Ramón Jiménez 2019-12-06 04:01:48 +01:00
parent 31b0b7f580
commit 65cac922b3
6 changed files with 44 additions and 3 deletions

View file

@ -1,6 +1,8 @@
//! Build keyboard events.
mod event;
mod key_code;
mod modifiers_state;
pub use event::Event;
pub use key_code::KeyCode;
pub use modifiers_state::ModifiersState;

View file

@ -1,13 +1,13 @@
use super::KeyCode;
use super::{KeyCode, ModifiersState};
use crate::input::ButtonState;
#[derive(Debug, Clone, Copy, PartialEq)]
/// 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 or released.
Input {
@ -16,6 +16,9 @@ pub enum Event {
/// The key identifier
key_code: KeyCode,
/// The state of the modifier keys
modifiers: ModifiersState,
},
/// A unicode character was received.

View file

@ -0,0 +1,15 @@
/// The current state of the keyboard modifiers.
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct ModifiersState {
/// Whether a shift key is pressed
pub shift: bool,
/// Whether a control key is pressed
pub control: bool,
/// Whether an alt key is pressed
pub alt: bool,
/// Whether a logo key is pressed (e.g. windows key, command key...)
pub logo: bool,
}