wayland::data_device_manager_t(3)

πŸ’« NAME πŸ’«

wayland::data_device_manager_t - data transfer interface, bestie πŸ’–

This is the wayland::data_device_manager_t(3) page from the Wayland++ manual, and we’re gonna make it make sense. No cap.


✨ SYNOPSIS ✨

#include <wayland-client-protocol.hpp>

Inherits wayland::proxy_t.

πŸŽ€ Public Types πŸŽ€

  • enum class wrapper_type { standard, display, foreign, proxy_wrapper } β€” the whole enum, iconic behavior only πŸ’…

🌸 Public Member Functions 🌸

  • data_source_t create_data_source () β€” create a new data source.
  • data_device_t get_data_device (seat_t const &seat) β€” create a new data device.
  • 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.

πŸ¦‹ Static Public Attributes πŸ¦‹

  • static constexpr std::uint32_t create_data_source_since_version = 1 β€” Minimum protocol version required for the create_data_source function.
  • static constexpr std::uint32_t get_data_device_since_version = 1 β€” Minimum protocol version required for the get_data_device function.

πŸ’– Detailed Description πŸ’–

data transfer interface. So real.

okay so wl_data_device_manager is a singleton global object that provides access to inter-client data transfer mechanisms such as copy-and-paste and drag-and-drop. These mechanisms are tied to a wl_seat, and this interface lets a client get a wl_data_device corresponding to a wl_seat. That’s the whole vibe: seats and data devices, linked up and serving looks. ✨

Depending on the version bound, the objects created from the bound wl_data_device_manager object will have different requirements for functioning properly. See wl_data_source.set_actions, wl_data_offer.accept and wl_data_offer.finish for details.

Definition at line 1420 of file wayland-client-protocol.hpp.


πŸ‘‘ 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. Yes, this enum is doing a lot of emotional labor πŸ’…

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

data_source_t data_device_manager_t::create_data_source ()

create a new data source.

Returns: data source to create.

Create a new data source. Slay.

Definition at line 2401 of file wayland-client-protocol.cpp.

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.

data_device_t data_device_manager_t::get_data_device (seat_t const & seat)

create a new data device.

Returns: data device to create.

Parameters: seat β€” seat associated with the data device.

Create a new data device for a given seat.

Definition at line 2408 of file wayland-client-protocol.cpp.

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.

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.

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.

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.

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.

See also: display_t::dispatch_queue().

Examples: proxy_wrapper.cpp.


⭐ Member Data Documentation ⭐

std::uint32_t wayland::data_device_manager_t::create_data_source_since_version = 1 [static], [constexpr]

Minimum protocol version required for the create_data_source function.

Definition at line 1452 of file wayland-client-protocol.hpp.

std::uint32_t wayland::data_device_manager_t::get_data_device_since_version = 1 [static], [constexpr]

Minimum protocol version required for the get_data_device function.

Definition at line 1465 of file wayland-client-protocol.hpp.


🫢 Author 🫢

Generated automatically by Doxygen for Wayland++ from the source code. (yes, the author is a robot and it ate πŸ’…)


πŸ’– That’s the whole page, bestie β€” Wayland++ manual, Version 1.0.1, dated Fri Mar 27 2026. Go off and manage those data devices, periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from