Skip to main content

ButtonSource

Enum ButtonSource 

Source
#[non_exhaustive]
pub enum ButtonSource { Mouse(MouseButton), Touch { finger_id: FingerId, force: Option<Force>, }, TabletTool { kind: TabletToolKind, button: TabletToolButton, data: TabletToolData, }, Unknown(u16), }
Expand description

Represents the pointer type of a WindowEvent::PointerButton.

Wayland/X11: Unknown device types are converted to known variants by the system.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Mouse(MouseButton)

§Platform-specific
§macOS

Users may expect holding CTRL while clicking MouseButton::Left to result in a “secondary” click, but the way these clicks behave natively is slightly different from how a physical secondary button press would, depending on the content under the cursor when clicked. If applications want this behavior they should implement it themselves by interpreting Left clicks as secondary when CTRL is held and their internal logic deems it appropriate for the content under the pointer. See also https://github.com/rust-windowing/winit/issues/4469.

§

Touch

See PointerSource::Touch for more details.

§Platform-specific

macOS: Unsupported.

Fields

§finger_id: FingerId
§force: Option<Force>
§

TabletTool

§

Unknown(u16)

A pointer button of unknown source.

Codes are undefined and may not be reproducible across platforms or winit versions.

Implementations§

Source§

impl ButtonSource

Source

pub fn mouse_button(self) -> Option<MouseButton>

Try to convert a ButtonSource to an equivalent MouseButton. If a pointer type has no special handling in an application, this method can be used to handle it like any generic mouse input.

Trait Implementations§

Source§

impl Clone for ButtonSource

Source§

fn clone(&self) -> ButtonSource

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 ButtonSource

Source§

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

Formats the value using the given formatter. Read more
Source§

impl From<MouseButton> for ButtonSource

Source§

fn from(mouse: MouseButton) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for ButtonSource

Source§

fn eq(&self, other: &ButtonSource) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ButtonSource

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.