incular-gestures 0.1.0

Platform-neutral gesture recognition and input interaction primitives for Incular
Documentation
  • Coverage
  • 41.41%
    106 out of 256 items documented0 out of 0 items with examples
  • Size
  • Source code size: 154.6 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 6.3 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 9s Average build duration of successful builds.
  • all releases: 11s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • FabortLabs/incular
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • fabort-labs

incular-gestures

Architecture and support

Contract Status
Ownership Pointer recognition, gesture arbitration, keyboard and focus mechanisms.
API class application; re-exports and path overrides follow the architecture contract.
Support Available; shared observation contracts consolidate in C/G.

Platform-neutral pointer recognizers and interaction state for Incular.

This crate owns pointer event values, a pending/accept/reject/cancel gesture arena, tap/drag/scale recognizers, pointer hover tracking, focus nodes, and keyboard shortcut dispatch. It depends only on incular-core; retained widget regions and native event loops adapt these primitives rather than the other way around.

GestureDetector::observe selects an action without calling application code; the retained GestureDetector adapter uses that boundary to wait for GestureArena arbitration. Direct GestureDetector::handle remains available for standalone use. Arena keys include both window and pointer identity. Scale members explicitly opt into simultaneous compatibility, while tap, long-press, pan, and directional drag members remain exclusive and receive GestureCallbacks::on_cancel when they lose.

Focus-highlight notifications

FocusHighlightManager commits modality changes before notifying listeners. Callbacks may read the manager, change strategy, or register/drop subscriptions without borrowing its internal state. Reentrant changes update the current mode immediately; notifications are delivered synchronously in commit order after the current event, not recursively. Event values describe committed transitions; queries return the latest state. Newly registered listeners start with a later commit, and dropping a subscription cancels even its queued notifications.

Unchanged input/mode creates no notification. Pending delivery holds weak registrations and no persistent event history. Application transition sequences must converge. A callback panic propagates, leaves committed state intact and discards unfinished delivery; later changes remain usable. This contract concerns modality, not focus-scope selection transactions.