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).
Trait Implementations§
Source§impl Default for Interaction
impl Default for Interaction
Source§fn default() -> Interaction
fn default() -> Interaction
Auto Trait Implementations§
impl Freeze for Interaction
impl RefUnwindSafe for Interaction
impl Send for Interaction
impl Sync for Interaction
impl Unpin for Interaction
impl UnsafeUnpin for Interaction
impl UnwindSafe for Interaction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.