pub struct InteractionSnapshot {
pub clicked: Option<Id>,
pub long_touched: Option<Id>,
pub drag_started: Option<Id>,
pub dragged: Option<Id>,
pub drag_stopped: Option<Id>,
pub hovered: IntSet<Id>,
pub contains_pointer: IntSet<Id>,
}
Expand description
Calculated at the start of each frame based on:
- Widget rects from precious frame
- Mouse/touch input
- Current
InteractionState
.
Fields§
§clicked: Option<Id>
The widget that got clicked this frame.
long_touched: Option<Id>
This widget was long-pressed on a touch screen, so trigger a secondary click on it (context menu).
drag_started: Option<Id>
Drag started on this widget this frame.
This will also be found in dragged
this frame.
dragged: Option<Id>
This widget is being dragged this frame.
Set the same frame a drag starts, but unset the frame a drag ends.
NOTE: this may not have a corresponding crate::WidgetRect
,
if this for instance is a drag-and-drop widget which
isn’t painted whilst being dragged
drag_stopped: Option<Id>
This widget was let go this frame, after having been dragged.
The widget will not be found in Self::dragged
this frame.
hovered: IntSet<Id>
A small set of widgets (usually 0-1) that the pointer is hovering over.
Show these widgets as highlighted, if they are interactive.
While dragging or clicking something, nothing else is hovered.
Use Self::contains_pointer
to find a drop-zone for drag-and-drop.
contains_pointer: IntSet<Id>
All widgets that contain the pointer this frame, regardless if the user is currently clicking or dragging.
This is usually a larger set than Self::hovered
,
and can be used for e.g. drag-and-drop zones.
Implementations§
Trait Implementations§
Source§impl Clone for InteractionSnapshot
impl Clone for InteractionSnapshot
Source§fn clone(&self) -> InteractionSnapshot
fn clone(&self) -> InteractionSnapshot
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more