wayland::zxdg_exporter_v2_t(3)

🌸 NAME 🌸

wayland::zxdg_exporter_v2_t β€” bestie, this is the interface for exporting surfaces ✨ (and yes, this is the Wayland++ manual, page wayland::zxdg_exporter_v2_t(3), hiii 🫢)


✨ SYNOPSIS ✨

okay so first things first, you gotta pull it in:

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

And it Inherits wayland::proxy_t β€” so like, all the proxy_t stuff is lowkey already yours πŸ’…

πŸŽ€ Public Types πŸŽ€

  • enum class wrapper_type { standard, display, foreign, proxy_wrapper } β€” the whole little family of wrapper flavors, more on each one below πŸ‘‡

πŸ’– Public Member Functions πŸ’–

  • zxdg_exported_v2_t export_toplevel (surface_t const &surface) β€” export a toplevel surface
  • 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 export_toplevel_since_version = 1 β€” Minimum protocol version required for the export_toplevel function.

πŸ’– DESCRIPTION πŸ’–

So, interface for exporting surfaces β€” that's the whole vibe. πŸ¦‹

It's a global interface used for exporting surfaces that can later be imported using xdg_importer. Like, you hand a surface off, and somebody else can pick it up later. Iconic behavior, honestly 😌

Definition at line 7253 of file wayland-client-protocol-unstable.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. Basically: which flavor of proxy wrapper are we even dealing with rn πŸ€”

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-est default that ever defaulted ✨
  • 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. Main character energy, but it does NOT want to chat πŸ’…
  • 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. ⚠️ not yours, don't touch it, keep it brief fr fr
  • 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. 🫢 it holds on to its parent so nobody gets ghosted
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. Peek behind the curtain πŸ‘€

Returns: The underlying wl_proxy wrapped by this proxy_t if it exists, otherwise an exception is thrown. So like, check first or catch it, bestie 😭


zxdg_exported_v2_t zxdg_exporter_v2_t::export_toplevel (surface_t const & surface)

export a toplevel surface β€” the main event, the whole reason we're here πŸ‘‘

Returns: the new xdg_exported object

Parameters:

  • surface β€” the surface to export

The export_toplevel request exports the passed surface so that it can later be imported via xdg_importer. When called, a new xdg_exported object will be created and xdg_exported.handle will be sent immediately. See the corresponding interface and event for details. ⭐

A surface may be exported multiple times, and each exported handle may be used to create an xdg_imported multiple times. Only xdg_toplevel equivalent surfaces may be exported, otherwise an invalid_surface protocol error is sent. πŸ’€ so yeah, don't try to export something that isn't toplevel-equivalent, the protocol WILL call you out.

Definition at line 9246 of file wayland-client-protocol-unstable.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


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. πŸ™ˆ like, you don't know, so don't pretend you do.

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. Which wrapper flavor are we, bestie? πŸŽ€

Definition at line 303 of file wayland-client.hpp.

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

Check whether this wrapper actually wraps an object. Vibe check on the wrapper ✨

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. πŸ«₯ literally just ignored, no drama, no error, nothing.

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. 🧚 redirecting the whole flow, love that for you.

See also: display_t::dispatch_queue().

Examples: proxy_wrapper.cpp.


⭐ MEMBER DATA DOCUMENTATION ⭐

std::uint32_t wayland::zxdg_exporter_v2_t::export_toplevel_since_version = 1 [static], [constexpr]

Minimum protocol version required for the export_toplevel function. So version 1 is the floor, no cap 🧒

Definition at line 7294 of file wayland-client-protocol-unstable.hpp.

πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically by Doxygen for Wayland++ from the source code. No human wrote this, it's giving robot ghostwriter πŸ€–πŸ’…


and that's the whole page, bestie!! 🌈 Version 1.0.1, dated Fri Mar 27 2026 13:15 β€” okay go forth and export those surfaces, you absolute icon πŸŽ€πŸ’–πŸ¦‹

πŸ“¦ where this page comes from