pub struct ButtonDevice { /* private fields */ }Expand description
LPAR-04 §8 Button input device adapter.
Maps each configured hardware button to a screen point. A button press
synthesizes PointerDown at the mapped point; a button release synthesizes
PointerUp. Both are fed through an owned PointerDevice so the full
recognizer chain applies — no new Event variants are introduced.
Two ButtonDevices do not share recognizer state (per-device-instance
rule, §8.4).
Implementations§
Source§impl ButtonDevice
impl ButtonDevice
Sourcepub fn new(frame_hz: u32, mappings: Vec<ButtonMapping>) -> Self
pub fn new(frame_hz: u32, mappings: Vec<ButtonMapping>) -> Self
Create a button device with the given button→point mappings and frame rate.
frame_hz is forwarded to the owned PointerDevice for threshold
conversion.
Process a button press: synthesize PointerDown at the mapped point
and feed it through the pointer device.
Returns Disposition::NoTarget if button_id is not registered.
Process a button release: synthesize PointerUp at the mapped point
and feed it through the pointer device.
Returns Disposition::NoTarget if button_id is not registered.
Sourcepub fn tick(&mut self, root: &mut ObjectNode) -> Disposition
pub fn tick(&mut self, root: &mut ObjectNode) -> Disposition
Advance the owned pointer device’s timers one tick.
Drives long-press and double-tap timers for button contacts.