pub struct Interaction { /* private fields */ }Implementations§
Source§impl Interaction
impl Interaction
pub fn set_hits(&mut self, hits: Vec<HitRegion>)
Sourcepub fn set_hits_shaped(&mut self, hits: Vec<HitRegion>, shapes: HitShapes)
pub fn set_hits_shaped(&mut self, hits: Vec<HitRegion>, shapes: HitShapes)
set_hits with the points the regions’ shapes index.
Sourcepub fn take_pending(&mut self) -> Vec<UiEvent>
pub fn take_pending(&mut self) -> Vec<UiEvent>
Events produced outside handle (see pending); drivers take them
after finishing a frame so a hover change under a still cursor is
not delayed until the next input.
Sourcepub fn take_hit_buffer(&mut self) -> Vec<HitRegion>
pub fn take_hit_buffer(&mut self) -> Vec<HitRegion>
Hands back the previous frame’s hit buffer (cleared) so emission can refill it without reallocating.
Sourcepub fn take_shape_buffer(&mut self) -> HitShapes
pub fn take_shape_buffer(&mut self) -> HitShapes
The previous frame’s point list (cleared), on the same terms.
pub fn cursor(&self) -> Option<Vec2>
Sourcepub fn modifiers(&self) -> KeyMods
pub fn modifiers(&self) -> KeyMods
Physical modifier state as of the last InputEvent::Modifiers.
Sourcepub fn hits(&self) -> &[HitRegion]
pub fn hits(&self) -> &[HitRegion]
This frame’s hit regions in paint order (topmost last) — for hosts that mirror chrome regions into OS-level hit testing (e.g. answering Windows’ WM_NCHITTEST so snap layouts and native caption behavior work over custom-drawn controls).
Sourcepub fn is_scrollbar_dragging(&self, key: Key, axis: ScrollAxis) -> bool
pub fn is_scrollbar_dragging(&self, key: Key, axis: ScrollAxis) -> bool
Whether this bar is being thumb-dragged (for active styling).
The node holding button’s capture, if a claimed press of it is
held.
Sourcepub fn handle(&mut self, ev: InputEvent, out: &mut Vec<UiEvent>) -> usize
pub fn handle(&mut self, ev: InputEvent, out: &mut Vec<UiEvent>) -> usize
Returns how many of the events at the end of out a press made —
a drag in any phase, a click on the release — as against the
hover, context-menu and modifier events it also raises. That is
the mark Core::attach_pointer reads to give a click or drag its
cell and line / byte / clicks: said here, where the event
is built, rather than guessed afterwards from its payload’s
kind. Every arm pushes its pointer-made events last.
pub fn is_hovered(&self, key: Key) -> bool
Sourcepub fn is_drop_target(&self, key: Key) -> bool
pub fn is_drop_target(&self, key: Key) -> bool
Whether files dragged in from the OS are over key:
what drop_bg reads when the node opens.
Sourcepub fn drop_target(&self) -> Option<Key>
pub fn drop_target(&self) -> Option<Key>
The zone the dragged files are over, if any — what a driver answers the OS with (a copy cursor over a zone, not-allowed elsewhere) and what a test reads to say a zone was found.
pub fn is_pressed(&self, key: Key) -> bool
Sourcepub fn hovered(&self) -> Option<Key>
pub fn hovered(&self) -> Option<Key>
The hovered node, if any (its key from the last finished frame).
pub fn pressed_key(&self) -> Option<Key>
Sourcepub fn cursor_shape(&self) -> CursorShape
pub fn cursor_shape(&self) -> CursorShape
The pointer shape for where the pointer is now (see
crate::cursor): what the topmost region under it — the same
region a click would go to — declared with cursor, the I-beam
over text, and the arrow otherwise. A clickable or draggable node
that declared nothing is the arrow: a hand or a grab is the view’s
to say.
Sourcepub fn is_group_hovered(&self, group: u64) -> bool
pub fn is_group_hovered(&self, group: u64) -> bool
Whether any member of hover group group is hovered.
Sourcepub fn is_group_pressed(&self, group: u64) -> bool
pub fn is_group_pressed(&self, group: u64) -> bool
Whether the press started on a member of group and the pointer is
still over one (the group analogue of is_pressed).