Expand description
This is simple Rust crate for managing and querying input state.
It treats the mouse and keyboard as an immutable data structure that you can query to find which keys and buttons are pressed (or where the pointer is).
The core data structures of Mouse and Keyboard are generic, in theory
supporting multiple windowing libraries. You can roll your own, or you can
enable the winit which has factory methods to easily create
a Mouse and Keyboard which work with the winit library.
As stated, the mouse and keyboard are immutable. To track input changes,
each provide a begin_frame_input method which return an object you can
make changes to for the frame.
§Examples
ⓘ
use buttons::prelude::*;
let mut event_loop = winit::event_loop::EventLoop::new();
let mut keyboard = buttons::support::winit::keyboard();
let mut mouse = buttons::support::winit::mouse();
let mut touch = buttons::support::winit::touch();
// Track input
event_loop.run(move |event, _, _| {
keyboard.handle_event(&event);
mouse.handle_event(&event);
touch.handle_event(&event);
// Check state
if keyboard.pressed(VirtualKeyCode::Escape)
|| mouse.released(MouseButton::Right)
|| touch.first_touch().is_some()
{
// Do something
}
});Modules§
- prelude
- Prelude that exports traits for supported input device types.
- support
- Parent module for third-party support modules (such as
winit).
Structs§
- Keyboard
- A structure representing the current state of a keyboard.
- Modifiers
- The current state of the modifier keys. You can use this if the windowing library you are using doesn’t have an equivalent.
- Mouse
- A structure representing the current state of a mouse.
- Touch
- Represents an active touch on the touch device.
- Touchpad
- A structure representing the current state of touches on a touch device.
Traits§
- Event
- A trait for events that can modify input state.
- Keyboard
Interface - A trait for objects that can represent the state of a keyboard.
- Mouse
Interface - A trait for objects that can represent the state of a mouse.
- Touch
Interface - A trait for objects that can represent the state of a touch device.