wayland::zwp_tablet_v1_t(3)

✨ wayland::zwp_tablet_v1_t β€” graphics tablet device ✨

okay so real talk, this is a page from the Wayland++ manual, section 3 (wayland::zwp_tablet_v1_t(3)), and it's all about one single graphics tablet device. bestie, it's giving "small but iconic." let's get into it πŸ’…


🌸 NAME 🌸

wayland::zwp_tablet_v1_t β€” graphics tablet device. literally that's the whole thing. one tablet. one vibe. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <wayland-client-protocol-unstable.hpp>

Inherits wayland::proxy_t. so like, it's a proxy at heart, it just has tablet main character energy ✨

πŸ’– Public Types πŸ’–

  • enum class wrapper_type { standard, display, foreign, proxy_wrapper } β€” the whole roster of wrapper flavours, more on each of them below πŸ‘‡

πŸŽ€ Public Member Functions πŸŽ€

  • std::function< void(std::string)> & on_name () β€” tablet device name
  • std::function< void(uint32_t, uint32_t)> & on_id () β€” tablet device USB vendor/product id
  • std::function< void(std::string)> & on_path () β€” path to the device
  • std::function< void()> & on_done () β€” tablet description events sequence complete
  • std::function< void()> & on_removed () β€” tablet removed event
  • uint32_t get_id () const β€” Get the id of a proxy object.
  • std::string get_class () const β€” Get the interface name (class) of a proxy object.
  • uint32_t get_version () const β€” Get the protocol object version of a proxy object.
  • wrapper_type get_wrapper_type () const β€” Get the type of a proxy object.
  • void set_queue (event_queue_t queue) β€” Assign a proxy to an event queue.
  • wl_proxy * c_ptr () const β€” Get a pointer to the underlying C struct.
  • bool proxy_has_object () const β€” Check whether this wrapper actually wraps an object.
  • operator bool () const β€” Check whether this wrapper actually wraps an object.
  • bool operator== (const proxy_t &right) const β€” Check whether two wrappers refer to the same object.
  • bool operator!= (const proxy_t &right) const β€” Check whether two wrappers refer to different objects.
  • void proxy_release () β€” Release the wrapped object (if any), making this an empty wrapper.

🌈 Detailed Description 🌈

graphics tablet device. yes, again. it's a graphics tablet device, we been knew πŸ’β€β™€οΈ

The wp_tablet interface represents one graphics tablet device. and here's the tea: the tablet interface itself does not generate events β€” all events are generated by wp_tablet_tool objects when in proximity above a tablet. so the tablet is like, the backstage manager, and the tools are the ones actually performing 🎀

A tablet has a number of static characteristics, e.g. device name and pid/vid. These capabilities are sent in an event sequence after the wp_tablet_seat.tablet_added event. This initial event sequence is terminated by a wp_tablet.done event. so the order is: tablet_added β†’ the little burst of description events β†’ done, and then you can go off and live your life πŸ¦‹

Definition at line 4135 of file wayland-client-protocol-unstable.hpp. iykyk πŸ“

🧚 Member Enumeration Documentation 🧚

πŸ’œ enum class wayland::proxy_t::wrapper_type [strong], [inherited]

Underlying wl_proxy type and properties of a proxy_t that affect construction, destruction, and event handling. like a personality type but for C pointers, no cap.

🌟 Enumerator

  • standard β€” C pointer is a standard type compatible with wl_proxy*. Events are dispatched and it is destructed when the proxy_t is destructed. User data is set. the default, the classic, the blueprint πŸ’…
  • display β€” C pointer is a wl_display*. No events are dispatched, wl_display_disconnect is called when the proxy_t is destructed. User data is set.
  • foreign β€” C pointer is a standard type compatible with wl_proxy*, but another library owns it and it should not be touched in a way that could affect the operation of the other library. No events are dispatched, wl_proxy_destroy is not called when the proxy_t is destructed, user data is not touched. Consequently, there is no reference counting for the proxy_t. Lifetime of such wrappers should preferably be short to minimize the chance that the owning library decides to destroy the wl_proxy. πŸ™ˆ like borrowing your bestie's charger β€” return it fast.
  • proxy_wrapper β€” C pointer is a wl_proxy* that was constructed with wl_proxy_create_wrapper. No events are dispatched, wl_proxy_wrapper_destroy is called when the proxy_t is destroyed. Reference counting is active. A reference to the proxy_t creating this proxy wrapper is held to extend its lifetime until after the proxy wrapper is destroyed.
Definition at line 117 of file wayland-client.hpp. πŸ“

πŸ”₯ Member Function Documentation πŸ”₯

⭐ wl_proxy * wayland::proxy_t::c_ptr () const [inherited]

Get a pointer to the underlying C struct.

Returns: The underlying wl_proxy wrapped by this proxy_t if it exists, otherwise an exception is thrown. so like, it's there or it's not and you're getting yelled at 😭

⭐ std::string wayland::proxy_t::get_class () const [inherited]

Get the interface name (class) of a proxy object.

Returns: The interface name of the object associated with the proxy.

⭐ uint32_t wayland::proxy_t::get_id () const [inherited]

Get the id of a proxy object.

Returns: The id the object associated with the proxy.

⭐ uint32_t wayland::proxy_t::get_version () const [inherited]

Get the protocol object version of a proxy object. Gets the protocol object version of a proxy object, or 0 if the proxy was created with unversioned API.

A returned value of 0 means that no version information is available, so the caller must make safe assumptions about the object's real version. fr fr, don't assume β€” stay safe 🫢

display_t will always return version 0.

Returns: The protocol object version of the proxy or 0.

⭐ wrapper_type wayland::proxy_t::get_wrapper_type () const [inline], [inherited]

Get the type of a proxy object.

Definition at line 303 of file wayland-client.hpp. πŸ“

⭐ std::function< void()> & zwp_tablet_v1_t::on_done ()

tablet description events sequence complete. This event is sent immediately to signal the end of the initial burst of descriptive events. A client may consider the static description of the tablet to be complete and finalize initialization of the tablet. it's the "okay we're done here, go set yourself up" moment ✨

Definition at line 7147 of file wayland-client-protocol-unstable.cpp. πŸ“

⭐ std::function< void(uint32_t, uint32_t)> & zwp_tablet_v1_t::on_id ()

tablet device USB vendor/product id.

Parameters:

  • vid β€” USB vendor id
  • pid β€” USB product id

This event is sent in the initial burst of events before the wp_tablet.done event.

Definition at line 7137 of file wayland-client-protocol-unstable.cpp. πŸ“

⭐ std::function< void(std::string)> & zwp_tablet_v1_t::on_name ()

tablet device name.

Parameters:

  • name β€” the device name

This event is sent in the initial burst of events before the wp_tablet.done event.

Definition at line 7132 of file wayland-client-protocol-unstable.cpp. πŸ“

⭐ std::function< void(std::string)> & zwp_tablet_v1_t::on_path ()

path to the device.

Parameters:

  • path β€” path to local device

A system-specific device path that indicates which device is behind this wp_tablet. This information may be used to gather additional information about the device, e.g. through libwacom. bestie, it's the tablet's origin story πŸ•΅οΈβ€β™€οΈ

A device may have more than one device path. If so, multiple wp_tablet.path events are sent. A device may be emulated and not have a device path, and in that case this event will not be sent. so don't come for it if it ghosts you πŸ’€

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. literally whatever it wants to be, iconic behaviour.

This event is sent in the initial burst of events before the wp_tablet.done event.

Definition at line 7142 of file wayland-client-protocol-unstable.cpp. πŸ“

⭐ std::function< void()> & zwp_tablet_v1_t::on_removed ()

tablet removed event. Sent when the tablet has been removed from the system. When a tablet is removed, some tools may be removed. 😭 rip bozo

warning bestie: When this event is received, the client must wp_tablet.destroy the object. not optional. not "later." do it. πŸ‘€
Definition at line 7152 of file wayland-client-protocol-unstable.cpp. πŸ“

⭐ wayland::proxy_t::operator bool () const [inherited]

Check whether this wrapper actually wraps an object.

Returns: true if there is an underlying object, false if this wrapper is empty.

⭐ bool wayland::proxy_t::operator!= (const proxy_t & right) const [inherited]

Check whether two wrappers refer to different objects.

⭐ bool wayland::proxy_t::operator== (const proxy_t & right) const [inherited]

Check whether two wrappers refer to the same object.

⭐ bool wayland::proxy_t::proxy_has_object () const [inherited]

Check whether this wrapper actually wraps an object.

Returns: true if there is an underlying object, false if this wrapper is empty. vibe check: is there actually something in there or are we empty inside 🫠

⭐ void wayland::proxy_t::proxy_release () [inherited]

Release the wrapped object (if any), making this an empty wrapper. Note that display_t instances cannot be released this way. Attempts to do so are ignored. so like, don't even try with display, it said no πŸ’…

Examples: foreign_display.cpp.

⭐ void wayland::proxy_t::set_queue (event_queue_t queue) [inherited]

Assign a proxy to an event queue.

Parameters:

  • queue β€” The event queue that will handle this proxy

Assign proxy to event queue. Events coming from proxy will be queued in queue instead of the display's main queue. it's giving "put me in a different group chat" energy πŸ“²

See also: display_t::dispatch_queue().

Examples: proxy_wrapper.cpp.


πŸ“ Author πŸ“

Generated automatically by Doxygen for Wayland++ from the source code. not me being written by a robot and still having more personality than some humans πŸ˜ŒπŸ’€


✨ that's the whole page bestie, every last flag and line number, nothing skipped, periodt ✨

πŸŽ€ Version 1.0.1 Β· Fri Mar 27 2026 13:15:00 Β· wayland::zwp_tablet_v1_t(3) β€” mwah, go forth and slay your tablet protocol πŸ’–πŸŒΈπŸ«Ά
πŸ“¦ where this page comes from