#[repr(C)]pub struct KeyboardState {
pub current_char: OptionChar,
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_char: OptionCharCurrently pressed key, already converted to a char - (READONLY)
current_virtual_keycode: OptionVirtualKeyCodeSame as current_char, but .
DO NOT USE THIS FOR TEXT INPUT, USE current_char and On::TextInput instead.
For example entering à will fire a VirtualKeyCode::Grave, then VirtualKeyCode::A,
so to correctly combine characters, use the current_char field.
pressed_virtual_keycodes: VirtualKeyCodeVecCurrently pressed virtual keycodes (READONLY) - it can happen that more t
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 an "a" as a char into
current_keys.
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
Trait Implementations§
Source§impl Clone for KeyboardState
impl Clone for KeyboardState
Source§fn clone(&self) -> KeyboardState
fn clone(&self) -> KeyboardState
1.0.0 · 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
impl StructuralPartialEq for KeyboardState
Auto Trait Implementations§
impl Freeze for KeyboardState
impl RefUnwindSafe for KeyboardState
impl Send for KeyboardState
impl Sync for KeyboardState
impl Unpin for KeyboardState
impl UnwindSafe for KeyboardState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more