Enum TabletToolEvent

Source
#[non_exhaustive]
pub enum TabletToolEvent { Axis(TabletToolAxisEvent), Proximity(TabletToolProximityEvent), Tip(TabletToolTipEvent), Button(TabletToolButtonEvent), }
Expand description

An event related to a tablet tool

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.
§

Axis(TabletToolAxisEvent)

One or more axes have changed state on a device with the DeviceCapability::TabletTool capability.

This event is only sent when the tool is in proximity, see TabletToolProximityEvent for details.

The proximity event contains the initial state of the axis as the tool comes into proximity. An event of type TabletToolAxisEvent is only sent when an axis value changes from this initial state. It is possible for a tool to enter and leave proximity without sending an event of type TabletToolAxisEvent.

An event of type TabletToolAxisEvent is sent when the tip state does not change. See the documentation for TabletToolTipEvent for more details.

§

Proximity(TabletToolProximityEvent)

Signals that a tool has come in or out of proximity of a device with the DeviceCapability::TabletTool capability.

Proximity events contain each of the current values for each axis, and these values may be extracted from them in the same way they are with TabletToolAxisEvent events.

Some tools may always be in proximity. For these tools, proximity events with ProximityState::In are sent only once after DeviceAddedEvent, and proximity events with ProximityState::Out are sent only once before DeviceRemovedEvent.

If the tool that comes into proximity supports x/y coordinates, libinput guarantees that both x and y are set in the proximity event.

When a tool goes out of proximity, the value of every axis should be assumed to have an undefined state and any buttons that are currently held down on the stylus are marked as released. Button release events for each button that was held down on the stylus are sent before the proximity out event.

§

Tip(TabletToolTipEvent)

Signals that a tool has come in contact with the surface of a device with the DeviceCapability::TabletTool capability.

On devices without distance proximity detection, the TabletToolTipEvent is sent immediately after TabletToolProximityEvent for the tip down event, and immediately before for the tip up event.

The decision when a tip touches the surface is device-dependent and may be derived from pressure data or other means. If the tip state is changed by axes changing state, the TabletToolTipEvent includes the changed axes and no additional axis event is sent for this state change. In other words, a caller must look at both TabletToolAxisEvent and TabletToolTipEvent events to know the current state of the axes.

If a button state change occurs at the same time as a tip state change, the order of events is device-dependent.

§

Button(TabletToolButtonEvent)

Signals that a tool has changed a logical button state on a device with the DeviceCapability::TabletTool capability.

Button state changes occur on their own and do not include axis state changes. If button and axis state changes occur within the same logical hardware event, the order of the TabletToolButtonEvent and TabletToolAxisEvent is device-specific.

This event is not to be confused with the button events emitted by the tablet pad. See TabletPadButtonEvent.

Trait Implementations§

Source§

impl AsRaw<libinput_event_tablet_tool> for TabletToolEvent

Source§

fn as_raw(&self) -> *const libinput_event_tablet_tool

Receive a raw pointer representing this type.
Source§

impl Context for TabletToolEvent

Source§

fn context(&self) -> &Libinput

Returns the underlying libinput context
Source§

impl Debug for TabletToolEvent

Source§

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

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

impl EventTrait for TabletToolEvent

Source§

fn into_event(self) -> Event
where Self: Sized,

Convert into a general Event again
Source§

fn device(&self) -> Device

Return the device associated with this event. Read more
Source§

impl FromRaw<libinput_event_tablet_tool> for TabletToolEvent

Source§

unsafe fn from_raw( event: *mut libinput_event_tablet_tool, context: &Libinput, ) -> Self

Create a new instance of this type from a raw pointer and it’s context. If the type of the struct is a valid libinput type, but is unknown to this library, it panics instead. Read more
Source§

impl Hash for TabletToolEvent

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for TabletToolEvent

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for TabletToolEvent

Source§

impl StructuralPartialEq for TabletToolEvent

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> 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> TabletToolEventTrait for T

Source§

fn time(&self) -> u32

The event time for this event
Source§

fn time_usec(&self) -> u64

The event time for this event in microseconds
Source§

fn distance_has_changed(&self) -> bool

Check if the distance axis was updated in this event. Read more
Source§

fn distance(&self) -> f64

Returns the current distance from the tablet’s sensor, normalized to the range [0, 1]. Read more
Source§

fn dx(&self) -> f64

Return the delta between the last event and the current event. Read more
Source§

fn dy(&self) -> f64

Return the delta between the last event and the current event. Read more
Source§

fn pressure_has_changed(&self) -> bool

Check if the pressure axis was updated in this event. For TabletToolButtonEvents this function always returns false.
Source§

fn pressure(&self) -> f64

Returns the current pressure being applied on the tool in use, normalized to the range [0, 1]. Read more
Source§

fn rotation_has_changed(&self) -> bool

Check if the z-rotation axis was updated in this event. Read more
Source§

fn rotation(&self) -> f64

Returns the current z rotation of the tool in degrees, clockwise from the tool’s logical neutral position. Read more
Source§

fn slider_has_changed(&self) -> bool

Check if the slider axis was updated in this event. Read more
Source§

fn slider_position(&self) -> f64

Returns the current position of the slider on the tool, normalized to the range [-1, 1]. Read more
Source§

fn tilt_x_has_changed(&self) -> bool

Check if the tilt x axis was updated in this event. Read more
Source§

fn tilt_y_has_changed(&self) -> bool

Check if the tilt y axis was updated in this event. Read more
Source§

fn tilt_x(&self) -> f64

Returns the current tilt along the X axis of the tablet’s current logical orientation, in degrees off the tablet’s z axis. Read more
Source§

fn tilt_y(&self) -> f64

Returns the current tilt along the Y axis of the tablet’s current logical orientation, in degrees off the tablet’s z axis. Read more
Source§

fn size_major_has_changed(&self) -> bool

Check if the size major axis was updated in this event. Read more
Source§

fn size_minor_has_changed(&self) -> bool

Check if the size minor axis was updated in this event. Read more
Source§

fn size_major(&self) -> f64

Returns the current size in mm along the major axis of the touching ellipse. This axis is not necessarily aligned with either x or y, the rotation must be taken into account. Read more
Source§

fn size_minor(&self) -> f64

Returns the current size in mm along the minor axis of the touching ellipse. This axis is not necessarily aligned with either x or y, the rotation must be taken into account. Read more
Source§

fn wheel_has_changed(&self) -> bool

Check if the wheel axis was updated in this event. Read more
Source§

fn wheel_delta(&self) -> f64

Return the delta for the wheel in degrees.
Source§

fn wheel_delta_discrete(&self) -> f64

Return the delta for the wheel in discrete steps (e.g. wheel clicks).
Source§

fn x_has_changed(&self) -> bool

Check if the x axis was updated in this event. Read more
Source§

fn y_has_changed(&self) -> bool

Check if the y axis was updated in this event. Read more
Source§

fn x(&self) -> f64

Returns the X coordinate of the tablet tool, in mm from the top left corner of the tablet in its current logical orientation. Read more
Source§

fn y(&self) -> f64

Returns the Y coordinate of the tablet tool, in mm from the top left corner of the tablet in its current logical orientation. Read more
Source§

fn x_transformed(&self, width: u32) -> f64

Return the current absolute x coordinate of the tablet tool event, transformed to screen coordinates. Read more
Source§

fn y_transformed(&self, height: u32) -> f64

Return the current absolute y coordinate of the tablet tool event, transformed to screen coordinates. Read more
Source§

fn tool(&self) -> TabletTool

Returns the tool that was in use during this event. Read more
Source§

fn into_tablet_tool_event(self) -> TabletToolEvent
where Self: Sized,

Convert into a general TabletToolEvent again
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.