Enum PointerSource
pub enum PointerSource {
Mouse,
Touch {
finger_id: FingerId,
force: Option<Force>,
},
TabletTool {
kind: TabletToolKind,
data: TabletToolData,
},
Unknown,
}Expand description
Represents the pointer type and its data for a pointer event.
Wayland/X11: Unknown device types are converted to known variants by the
system.
Variants§
Mouse
Touch
Represents a touch event.
Every time the user touches the screen, a WindowEvent::PointerEntered and a
WindowEvent::PointerButton with ElementState::Pressed event with an unique
identifier for the finger is emitted. When a finger is lifted, a
WindowEvent::PointerButton with ElementState::Released and a
WindowEvent::PointerLeft event is generated with the same FingerId.
After a WindowEvent::PointerEntered event has been emitted, there may be zero or more
WindowEvent::PointerMoved events when the finger is moved or the touch pressure
changes.
A WindowEvent::PointerLeft without a WindowEvent::PointerButton with
ElementState::Released event is emitted when the system has canceled tracking this
touch, such as when the window loses focus, or on mobile devices if the user moves the
device against their face.
The FingerId may be reused by the system after a WindowEvent::PointerLeft event.
The user should assume that a new WindowEvent::PointerEntered event received with the
same ID has nothing to do with the old finger and is a new finger.
§Platform-specific
macOS: Unsupported.
Fields
force: Option<Force>Describes how hard the screen was pressed. May be None if the hardware does not
support pressure sensitivity.
§Platform-specific
- MacOS / Orbital / Wayland / X11: Always emits
None. - Android: Will never be
None. If the device doesn’t support pressure sensitivity, force will either be 0.0 or 1.0. Also see the android documentation. - Web: Will never be
None. If the device doesn’t support pressure sensitivity, force will be 0.5 when a button is pressed or 0.0 otherwise.
TabletTool
Fields
kind: TabletToolKindDescribes as which tool kind the interaction happened.
data: TabletToolDataDescribes how the tool was held and used.
Unknown
Trait Implementations§
§impl Clone for PointerSource
impl Clone for PointerSource
§fn clone(&self) -> PointerSource
fn clone(&self) -> PointerSource
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PointerSource
impl Debug for PointerSource
§impl From<PointerSource> for PointerKind
impl From<PointerSource> for PointerKind
§fn from(source: PointerSource) -> PointerKind
fn from(source: PointerSource) -> PointerKind
§impl PartialEq for PointerSource
impl PartialEq for PointerSource
impl StructuralPartialEq for PointerSource
Auto Trait Implementations§
impl Freeze for PointerSource
impl RefUnwindSafe for PointerSource
impl Send for PointerSource
impl Sync for PointerSource
impl Unpin for PointerSource
impl UnwindSafe for PointerSource
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.