pub struct ZwpTabletPadV2 { /* private fields */ }
server
only.Expand description
a set of buttons, rings and strips
A pad device is a set of buttons, rings and strips usually physically present on the tablet device itself. Some exceptions exist where the pad device is physically detached, e.g. the Wacom ExpressKey Remote.
Pad devices have no axes that control the cursor and are generally auxiliary devices to the tool devices used on the tablet surface.
A pad device has a number of static characteristics, e.g. the number of rings. These capabilities are sent in an event sequence after the wp_tablet_seat.pad_added event before any actual events from this pad. This initial event sequence is terminated by a wp_tablet_pad.done event.
All pad features (buttons, rings and strips) are logically divided into groups and all pads have at least one group. The available groups are notified through the wp_tablet_pad.group event; the compositor will emit one event per group before emitting wp_tablet_pad.done.
Groups may have multiple modes. Modes allow clients to map multiple actions to a single pad feature. Only one mode can be active per group, although different groups may have different active modes.
See also the Request enum for this interface.
Implementations§
source§impl ZwpTabletPadV2
impl ZwpTabletPadV2
sourcepub fn group(&self, pad_group: &ZwpTabletPadGroupV2)
pub fn group(&self, pad_group: &ZwpTabletPadGroupV2)
group announced
Sent on wp_tablet_pad initialization to announce available groups. One event is sent for each pad group available.
This event is sent in the initial burst of events before the wp_tablet_pad.done event. At least one group will be announced.
sourcepub fn path(&self, path: String)
pub fn path(&self, path: String)
path to the device
A system-specific device path that indicates which device is behind this wp_tablet_pad. This information may be used to gather additional information about the device, e.g. through libwacom.
The format of the path is unspecified, it may be a device node, a sysfs path, or some other identifier. It is up to the client to identify the string provided.
This event is sent in the initial burst of events before the wp_tablet_pad.done event.
buttons announced
Sent on wp_tablet_pad initialization to announce the available buttons.
This event is sent in the initial burst of events before the wp_tablet_pad.done event. This event is only sent when at least one button is available.
sourcepub fn done(&self)
pub fn done(&self)
pad description event sequence complete
This event signals the end of the initial burst of descriptive events. A client may consider the static description of the pad to be complete and finalize initialization of the pad.
physical button state
Sent whenever the physical state of a button changes.
sourcepub fn enter(&self, serial: u32, tablet: &ZwpTabletV2, surface: &WlSurface)
pub fn enter(&self, serial: u32, tablet: &ZwpTabletV2, surface: &WlSurface)
enter event
Notification that this pad is focused on the specified surface.
sourcepub fn leave(&self, serial: u32, surface: &WlSurface)
pub fn leave(&self, serial: u32, surface: &WlSurface)
leave event
Notification that this pad is no longer focused on the specified surface.
sourcepub fn removed(&self)
pub fn removed(&self)
pad removed event
Sent when the pad has been removed from the system. When a tablet is removed its pad(s) will be removed too.
When this event is received, the client must destroy all rings, strips and groups that were offered by this pad, and issue wp_tablet_pad.destroy the pad itself.
Trait Implementations§
source§impl Borrow<ObjectId> for ZwpTabletPadV2
impl Borrow<ObjectId> for ZwpTabletPadV2
source§impl Clone for ZwpTabletPadV2
impl Clone for ZwpTabletPadV2
source§fn clone(&self) -> ZwpTabletPadV2
fn clone(&self) -> ZwpTabletPadV2
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ZwpTabletPadV2
impl Debug for ZwpTabletPadV2
source§impl Hash for ZwpTabletPadV2
impl Hash for ZwpTabletPadV2
source§impl PartialEq<Weak<ZwpTabletPadV2>> for ZwpTabletPadV2
impl PartialEq<Weak<ZwpTabletPadV2>> for ZwpTabletPadV2
source§impl PartialEq for ZwpTabletPadV2
impl PartialEq for ZwpTabletPadV2
source§impl Resource for ZwpTabletPadV2
impl Resource for ZwpTabletPadV2
source§fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>
source§fn handle(&self) -> &WeakHandle
fn handle(&self) -> &WeakHandle
source§fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
fn from_id(conn: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>
source§fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>
source§fn parse_request(
conn: &DisplayHandle,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(Self, Self::Request), DispatchError>
fn parse_request( conn: &DisplayHandle, msg: Message<ObjectId, OwnedFd>, ) -> Result<(Self, Self::Request), DispatchError>
source§fn write_event<'a>(
&self,
conn: &DisplayHandle,
msg: Self::Event<'a>,
) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
fn write_event<'a>( &self, conn: &DisplayHandle, msg: Self::Event<'a>, ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
source§fn is_alive(&self) -> bool
fn is_alive(&self) -> bool
impl Eq for ZwpTabletPadV2
Auto Trait Implementations§
impl Freeze for ZwpTabletPadV2
impl !RefUnwindSafe for ZwpTabletPadV2
impl Send for ZwpTabletPadV2
impl Sync for ZwpTabletPadV2
impl Unpin for ZwpTabletPadV2
impl !UnwindSafe for ZwpTabletPadV2
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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.