#[repr(C)]pub struct KeyboardState {
pub current_virtual_keycode: OptionVirtualKeyCode,
pub pressed_virtual_keycodes: VirtualKeyCodeVec,
pub pressed_scancodes: ScanCodeVec,
}Expand description
Determines which keys are pressed currently (modifiers, etc.)
Fields§
§current_virtual_keycode: OptionVirtualKeyCodeCurrently pressed virtual keycode - DO NOT USE THIS FOR TEXT INPUT.
For text input, use the text_input parameter in callbacks.
For example entering à will fire a VirtualKeyCode::Grave, then VirtualKeyCode::A,
so to correctly combine characters, the framework handles text composition internally.
pressed_virtual_keycodes: VirtualKeyCodeVecCurrently pressed virtual keycodes (READONLY) - it can happen that more than one key is pressed
This is essentially an “extension” of current_scancodes - current_keys stores the
characters, but what if the pressed key is not a character (such as ArrowRight or
PgUp)?
Note that this can have an overlap, so pressing “a” on the keyboard will insert
both a VirtualKeyCode::A into current_virtual_keycodes and text input will be handled
by the framework automatically for contenteditable nodes.
pressed_scancodes: ScanCodeVecSame as current_virtual_keycodes, but the scancode identifies the physical key pressed,
independent of the keyboard layout. The scancode does not change if the user adjusts the
host’s keyboard map. Use when the physical location of the key is more important than
the key’s host GUI semantics, such as for movement controls in a first-person game
(German keyboard: Z key, UK keyboard: Y key, etc.)
Implementations§
Source§impl KeyboardState
impl KeyboardState
pub fn shift_down(&self) -> bool
pub fn ctrl_down(&self) -> bool
pub fn alt_down(&self) -> bool
pub fn super_down(&self) -> bool
pub fn is_key_down(&self, key: VirtualKeyCode) -> bool
Sourcepub fn matches_accelerator(&self, chord: &[AcceleratorKey]) -> bool
pub fn matches_accelerator(&self, chord: &[AcceleratorKey]) -> bool
Returns true iff every entry of chord is currently active in this
keyboard state. Used by accelerator/keymap registrations to evaluate
shortcuts like [Ctrl, Shift, Key(VirtualKeyCode::S)].
An empty chord matches trivially.
Trait Implementations§
Source§impl Clone for KeyboardState
impl Clone for KeyboardState
Source§fn clone(&self) -> KeyboardState
fn clone(&self) -> KeyboardState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for KeyboardState
impl Debug for KeyboardState
Source§impl Default for KeyboardState
impl Default for KeyboardState
Source§fn default() -> KeyboardState
fn default() -> KeyboardState
Source§impl PartialEq for KeyboardState
impl PartialEq for KeyboardState
Source§fn eq(&self, other: &KeyboardState) -> bool
fn eq(&self, other: &KeyboardState) -> bool
self and other values to be equal, and is used by ==.