Skip to main content

PointerSample

Struct PointerSample 

Source
pub struct PointerSample {
    pub pointer: PointerInfo,
    pub phase: PointerPhase,
    pub position: Point,
    pub button: Option<PointerButton>,
    pub modifiers: Modifiers,
    pub coalesced: Vec<CoalescedSample>,
}
Expand description

One pointer sample as it enters the tree.

The unit WidgetTree::dispatch_pointer consumes. A backend produces exactly one of these per OS packet, folding any intermediate positions the OS batched into coalesced.

Fields§

§pointer: PointerInfo

Who is pointing.

§phase: PointerPhase

What happened.

§position: Point

Where, in window-logical coordinates.

§button: Option<PointerButton>

The button that changed on a Down or Up. None for a move, a cancel, and for a buttonless direct-pointer contact.

§modifiers: Modifiers

Modifier keys held when the sample was produced.

§coalesced: Vec<CoalescedSample>

Positions the OS batched into this packet, oldest first, excluding position (which is the newest).

A velocity tracker integrates over these; a drawing surface draws through them; everything else ignores them. Deliberately a Vec and not a SmallVec: this costs one allocation per packet that actually coalesced, and teksilo-core’s dependency set is small on purpose.

Reaches a handler as EventContext::coalesced.

Implementations§

Source§

impl PointerSample

Source

pub fn mouse(phase: PointerPhase, position: Point, time: EventTime) -> Self

A mouse sample with no coalesced history — the shape every legacy WidgetEvent lowers to.

Source

pub fn with_button(self, button: PointerButton) -> Self

This sample with button recorded as the button that changed.

Source

pub fn with_modifiers(self, modifiers: Modifiers) -> Self

This sample with modifiers recorded.

Trait Implementations§

Source§

impl Clone for PointerSample

Source§

fn clone(&self) -> PointerSample

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PointerSample

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.