TermUI.Mouse.Tracker (TermUI v0.2.0)
View SourceTracks mouse state for drag and hover detection.
The tracker maintains state for:
- Drag operations (press → move → release)
- Hover detection (enter/leave events)
- Last known mouse position
Usage
# Create new tracker
tracker = Tracker.new()
# Process mouse events
{tracker, events} = Tracker.process(tracker, mouse_event)
# Events may include:
# - {:drag_start, button, x, y}
# - {:drag_move, button, x, y, dx, dy}
# - {:drag_end, button, x, y}
# - {:hover_enter, component_id}
# - {:hover_leave, component_id}
Summary
Functions
Returns the button currently pressed.
Returns whether a drag operation is in progress.
Returns the currently hovered component.
Creates a new mouse tracker.
Processes a mouse event and returns updated tracker and generated events.
Resets drag state (useful on focus loss).
Updates hover state and returns enter/leave events.
Types
Functions
Returns the button currently pressed.
Returns whether a drag operation is in progress.
Returns the currently hovered component.
Creates a new mouse tracker.
Options
:drag_threshold- Pixels of movement before drag starts (default: 3)
@spec process(t(), TermUI.Event.Mouse.t()) :: {t(), list()}
Processes a mouse event and returns updated tracker and generated events.
Generated events:
{:drag_start, button, x, y}- Drag operation started{:drag_move, button, x, y, dx, dy}- Mouse moved during drag{:drag_end, button, x, y}- Drag operation ended
Resets drag state (useful on focus loss).
Updates hover state and returns enter/leave events.