wayland::shell_t(3)

🌸 NAME 🌸

wayland::shell_t β€” create desktop-style surfaces. This is the wayland::shell_t(3) page from the Wayland++ manual, bestie β€” buckle up, it's giving very specific proxy-wrapper lore. πŸ’–

✨ SYNOPSIS ✨

#include <wayland-client-protocol.hpp>

Inherits wayland::proxy_t.

πŸŽ€ Public Types πŸŽ€

enum class wrapper_type { standard, display, foreign, proxy_wrapper }

πŸ’… Public Member Functions πŸ’…

  • shell_surface_t get_shell_surface (surface_t const &surface) β€” create a shell surface from a 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 get_shell_surface_since_version = 1 β€” Minimum protocol version required for the get_shell_surface function.

πŸ’– Detailed Description πŸ’–

okay so shell_t is the whole β€œcreate desktop-style surfaces” vibe. This interface is implemented by servers that provide desktop-style user interfaces.

It allows clients to associate a wl_shell_surface with a basic surface. Iconic, honestly.

⚠️ Note! This protocol is deprecated and not intended for production use. For desktop-style user interfaces, use xdg_shell. Compositors and clients should not implement this interface. πŸ’€ no cap, don't do it.

Examples: egl.cpp.

Definition at line 1526 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. Very β€œwhat kind of wrapper are we even dealing with” energy.

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

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

πŸ’– shell_surface_t shell_t::get_shell_surface (surface_t const & surface)

create a shell surface from a surface.

Returns: shell surface to create.

Parameters:

  • surface β€” surface to be given the shell surface role

Create a shell surface for an existing surface. This gives the wl_surface the role of a shell surface. If the wl_surface already has another role, it raises a protocol error.

Only one shell surface can be associated with a given surface.

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

✨ 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::shell_t::get_shell_surface_since_version = 1 [static], [constexpr]

Minimum protocol version required for the get_shell_surface function.

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

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for Wayland++ from the source code.


mwah πŸ’‹ that's the whole wayland::shell_t(3) saga, bestie β€” footer energy: Version 1.0.1, dated Fri Mar 27 2026 13:15:00, straight from the Wayland++ manual. Bye, slay your Wayland era! πŸ’…βœ¨

πŸ“¦ where this page comes from