.TH "wayland::seat_t" 3 "Wed May 3 2023" "Version 1.0.0" "Wayland++" \" -*- nroff -*- .ad l .nh .SH NAME wayland::seat_t \- group of input devices .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBwayland::proxy_t\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum class \fBwrapper_type\fP { \fBstandard\fP, \fBdisplay\fP, \fBforeign\fP, \fBproxy_wrapper\fP }" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBpointer_t\fP \fBget_pointer\fP ()" .br .RI "return pointer object " .ti -1c .RI "\fBkeyboard_t\fP \fBget_keyboard\fP ()" .br .RI "return keyboard object " .ti -1c .RI "\fBtouch_t\fP \fBget_touch\fP ()" .br .RI "return touch object " .ti -1c .RI "void \fBrelease\fP ()" .br .RI "release the seat object " .ti -1c .RI "bool \fBcan_release\fP () const" .br .RI "Check whether the \fBrelease\fP function is available with the currently bound version of the protocol\&. " .ti -1c .RI "std::function< void(\fBseat_capability\fP)> & \fBon_capabilities\fP ()" .br .RI "seat capabilities changed " .ti -1c .RI "std::function< void(std::string)> & \fBon_name\fP ()" .br .RI "unique identifier for this seat " .ti -1c .RI "uint32_t \fBget_id\fP () const" .br .RI "Get the id of a proxy object\&. " .ti -1c .RI "std::string \fBget_class\fP () const" .br .RI "Get the interface name (class) of a proxy object\&. " .ti -1c .RI "uint32_t \fBget_version\fP () const" .br .RI "Get the protocol object version of a proxy object\&. " .ti -1c .RI "\fBwrapper_type\fP \fBget_wrapper_type\fP () const" .br .RI "Get the type of a proxy object\&. " .ti -1c .RI "void \fBset_queue\fP (\fBevent_queue_t\fP queue)" .br .RI "Assign a proxy to an event queue\&. " .ti -1c .RI "wl_proxy * \fBc_ptr\fP () const" .br .RI "Get a pointer to the underlying C struct\&. " .ti -1c .RI "bool \fBproxy_has_object\fP () const" .br .RI "Check whether this wrapper actually wraps an object\&. " .ti -1c .RI "\fBoperator bool\fP () const" .br .RI "Check whether this wrapper actually wraps an object\&. " .ti -1c .RI "bool \fBoperator==\fP (const \fBproxy_t\fP &right) const" .br .RI "Check whether two wrappers refer to the same object\&. " .ti -1c .RI "bool \fBoperator!=\fP (const \fBproxy_t\fP &right) const" .br .RI "Check whether two wrappers refer to different objects\&. " .ti -1c .RI "void \fBproxy_release\fP ()" .br .RI "Release the wrapped object (if any), making this an empty wrapper\&. " .in -1c .SS "Static Public Attributes" .in +1c .ti -1c .RI "static constexpr std::uint32_t \fBget_pointer_since_version\fP = 1" .br .RI "Minimum protocol version required for the \fBget_pointer\fP function\&. " .ti -1c .RI "static constexpr std::uint32_t \fBget_keyboard_since_version\fP = 1" .br .RI "Minimum protocol version required for the \fBget_keyboard\fP function\&. " .ti -1c .RI "static constexpr std::uint32_t \fBget_touch_since_version\fP = 1" .br .RI "Minimum protocol version required for the \fBget_touch\fP function\&. " .ti -1c .RI "static constexpr std::uint32_t \fBrelease_since_version\fP = 5" .br .RI "Minimum protocol version required for the \fBrelease\fP function\&. " .in -1c .SH "Detailed Description" .PP group of input devices A seat is a group of keyboards, pointer and touch devices\&. This object is published as a global during start up, or when such a device is hot plugged\&. A seat typically has a pointer and maintains a keyboard focus and a pointer focus\&. .PP \fBExamples\fP .in +1c \fBegl\&.cpp\fP, \fBproxy_wrapper\&.cpp\fP, and \fBshm\&.cpp\fP\&. .PP Definition at line \fB2490\fP of file \fBwayland\-client\-protocol\&.hpp\fP\&. .SH "Member Enumeration Documentation" .PP .SS "enum class \fBwayland::proxy_t::wrapper_type\fP\fC [strong]\fP, \fC [inherited]\fP" Underlying wl_proxy type and properties of a \fBproxy_t\fP that affect construction, destruction, and event handling .PP \fBEnumerator\fP .in +1c .TP \fB\fIstandard \fP\fP C pointer is a standard type compatible with wl_proxy*\&. Events are dispatched and it is destructed when the \fBproxy_t\fP is destructed\&. User data is set\&. .TP \fB\fIdisplay \fP\fP C pointer is a wl_display*\&. No events are dispatched, wl_display_disconnect is called when the \fBproxy_t\fP is destructed\&. User data is set\&. .TP \fB\fIforeign \fP\fP 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 \fBproxy_t\fP is destructed, user data is not touched\&. Consequently, there is no reference counting for the \fBproxy_t\fP\&. Lifetime of such wrappers should preferably be short to minimize the chance that the owning library decides to destroy the wl_proxy\&. .TP \fB\fIproxy_wrapper \fP\fP 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 \fBproxy_t\fP is destroyed\&. Reference counting is active\&. A reference to the \fBproxy_t\fP creating this proxy wrapper is held to extend its lifetime until after the proxy wrapper is destroyed\&. .PP Definition at line \fB115\fP of file \fBwayland\-client\&.hpp\fP\&. .SH "Member Function Documentation" .PP .SS "wl_proxy * wayland::proxy_t::c_ptr () const\fC [inherited]\fP" .PP Get a pointer to the underlying C struct\&. .PP \fBReturns\fP .RS 4 The underlying wl_proxy wrapped by this \fBproxy_t\fP if it exists, otherwise an exception is thrown .RE .PP .SS "bool seat_t::can_release () const" .PP Check whether the \fBrelease\fP function is available with the currently bound version of the protocol\&. .PP Definition at line \fB2875\fP of file \fBwayland\-client\-protocol\&.cpp\fP\&. .SS "std::string wayland::proxy_t::get_class () const\fC [inherited]\fP" .PP Get the interface name (class) of a proxy object\&. .PP \fBReturns\fP .RS 4 The interface name of the object associated with the proxy .RE .PP .SS "uint32_t wayland::proxy_t::get_id () const\fC [inherited]\fP" .PP Get the id of a proxy object\&. .PP \fBReturns\fP .RS 4 The id the object associated with the proxy .RE .PP .SS "\fBkeyboard_t\fP seat_t::get_keyboard ()" .PP return keyboard object .PP \fBReturns\fP .RS 4 seat keyboard .RE .PP The ID provided will be initialized to the wl_keyboard interface for this seat\&. .PP This request only takes effect if the seat has the keyboard capability, or has had the keyboard capability in the past\&. It is a protocol violation to issue this request on a seat that has never had the keyboard capability\&. The missing_capability error will be sent in this case\&. .PP \fBExamples\fP .in +1c \fBegl\&.cpp\fP, \fBproxy_wrapper\&.cpp\fP, and \fBshm\&.cpp\fP\&. .PP Definition at line \fB2856\fP of file \fBwayland\-client\-protocol\&.cpp\fP\&. .SS "\fBpointer_t\fP seat_t::get_pointer ()" .PP return pointer object .PP \fBReturns\fP .RS 4 seat pointer .RE .PP The ID provided will be initialized to the wl_pointer interface for this seat\&. .PP This request only takes effect if the seat has the pointer capability, or has had the pointer capability in the past\&. It is a protocol violation to issue this request on a seat that has never had the pointer capability\&. The missing_capability error will be sent in this case\&. .PP \fBExamples\fP .in +1c \fBegl\&.cpp\fP, and \fBshm\&.cpp\fP\&. .PP Definition at line \fB2849\fP of file \fBwayland\-client\-protocol\&.cpp\fP\&. .SS "\fBtouch_t\fP seat_t::get_touch ()" .PP return touch object .PP \fBReturns\fP .RS 4 seat touch interface .RE .PP The ID provided will be initialized to the wl_touch interface for this seat\&. .PP This request only takes effect if the seat has the touch capability, or has had the touch capability in the past\&. It is a protocol violation to issue this request on a seat that has never had the touch capability\&. The missing_capability error will be sent in this case\&. .PP Definition at line \fB2863\fP of file \fBwayland\-client\-protocol\&.cpp\fP\&. .SS "uint32_t wayland::proxy_t::get_version () const\fC [inherited]\fP" .PP 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\&. .PP 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\&. .PP \fBdisplay_t\fP will always return version 0\&. .PP \fBReturns\fP .RS 4 The protocol object version of the proxy or 0 .RE .PP .SS "\fBwrapper_type\fP wayland::proxy_t::get_wrapper_type () const\fC [inline]\fP, \fC [inherited]\fP" .PP Get the type of a proxy object\&. .PP Definition at line \fB301\fP of file \fBwayland\-client\&.hpp\fP\&. .SS "std::function< void(\fBseat_capability\fP)> & seat_t::on_capabilities ()" .PP seat capabilities changed .PP \fBParameters\fP .RS 4 \fIcapabilities\fP capabilities of the seat .RE .PP This is emitted whenever a seat gains or loses the pointer, keyboard or touch capabilities\&. The argument is a capability enum containing the complete set of capabilities this seat has\&. .PP When the pointer capability is added, a client may create a wl_pointer object using the wl_seat\&.get_pointer request\&. This object will receive pointer events until the capability is removed in the future\&. .PP When the pointer capability is removed, a client should destroy the wl_pointer objects associated with the seat where the capability was removed, using the wl_pointer\&.release request\&. No further pointer events will be received on these objects\&. .PP In some compositors, if a seat regains the pointer capability and a client has a previously obtained wl_pointer object of version 4 or less, that object may start sending pointer events again\&. This behavior is considered a misinterpretation of the intended behavior and must not be relied upon by the client\&. wl_pointer objects of version 5 or later must not send events if created before the most recent event notifying the client of an added pointer capability\&. .PP The above behavior also applies to wl_keyboard and wl_touch with the keyboard and touch capabilities, respectively\&. .PP \fBExamples\fP .in +1c \fBegl\&.cpp\fP, and \fBshm\&.cpp\fP\&. .PP Definition at line \fB2881\fP of file \fBwayland\-client\-protocol\&.cpp\fP\&. .SS "std::function< void(std::string)> & seat_t::on_name ()" .PP unique identifier for this seat .PP \fBParameters\fP .RS 4 \fIname\fP seat identifier .RE .PP In a multi-seat configuration the seat name can be used by clients to help identify which physical devices the seat represents\&. .PP The seat name is a UTF-8 string with no convention defined for its contents\&. Each name is unique among all wl_seat globals\&. The name is only guaranteed to be unique for the current compositor instance\&. .PP The same seat names are used for all clients\&. Thus, the name can be shared across processes to refer to a specific wl_seat global\&. .PP The name event is sent after binding to the seat global\&. This event is only sent once per seat object, and the name does not change over the lifetime of the wl_seat global\&. .PP Compositors may re-use the same seat name if the wl_seat global is destroyed and re-created later\&. .PP Definition at line \fB2886\fP of file \fBwayland\-client\-protocol\&.cpp\fP\&. .SS "wayland::proxy_t::operator bool () const\fC [inherited]\fP" .PP Check whether this wrapper actually wraps an object\&. .PP \fBReturns\fP .RS 4 true if there is an underlying object, false if this wrapper is empty .RE .PP .SS "bool wayland::proxy_t::operator!= (const \fBproxy_t\fP & right) const\fC [inherited]\fP" .PP Check whether two wrappers refer to different objects\&. .SS "bool wayland::proxy_t::operator== (const \fBproxy_t\fP & right) const\fC [inherited]\fP" .PP Check whether two wrappers refer to the same object\&. .SS "bool wayland::proxy_t::proxy_has_object () const\fC [inherited]\fP" .PP Check whether this wrapper actually wraps an object\&. .PP \fBReturns\fP .RS 4 true if there is an underlying object, false if this wrapper is empty .RE .PP .SS "void wayland::proxy_t::proxy_release ()\fC [inherited]\fP" .PP Release the wrapped object (if any), making this an empty wrapper\&. Note that \fBdisplay_t\fP instances cannot be released this way\&. Attempts to do so are ignored\&. .PP \fBExamples\fP .in +1c \fBforeign_display\&.cpp\fP\&. .SS "void seat_t::release ()" .PP release the seat object Using this request a client can tell the server that it is not going to use the seat object anymore\&. .PP Definition at line \fB2870\fP of file \fBwayland\-client\-protocol\&.cpp\fP\&. .SS "void wayland::proxy_t::set_queue (\fBevent_queue_t\fP queue)\fC [inherited]\fP" .PP Assign a proxy to an event queue\&. .PP \fBParameters\fP .RS 4 \fIqueue\fP The event queue that will handle this proxy .RE .PP Assign proxy to event queue\&. Events coming from proxy will be queued in queue instead of the display's main queue\&. .PP See also: \fBdisplay_t::dispatch_queue()\fP\&. .PP \fBExamples\fP .in +1c \fBproxy_wrapper\&.cpp\fP\&. .SH "Member Data Documentation" .PP .SS "constexpr std::uint32_t wayland::seat_t::get_keyboard_since_version = 1\fC [static]\fP, \fC [constexpr]\fP" .PP Minimum protocol version required for the \fBget_keyboard\fP function\&. .PP Definition at line \fB2550\fP of file \fBwayland\-client\-protocol\&.hpp\fP\&. .SS "constexpr std::uint32_t wayland::seat_t::get_pointer_since_version = 1\fC [static]\fP, \fC [constexpr]\fP" .PP Minimum protocol version required for the \fBget_pointer\fP function\&. .PP Definition at line \fB2531\fP of file \fBwayland\-client\-protocol\&.hpp\fP\&. .SS "constexpr std::uint32_t wayland::seat_t::get_touch_since_version = 1\fC [static]\fP, \fC [constexpr]\fP" .PP Minimum protocol version required for the \fBget_touch\fP function\&. .PP Definition at line \fB2569\fP of file \fBwayland\-client\-protocol\&.hpp\fP\&. .SS "constexpr std::uint32_t wayland::seat_t::release_since_version = 5\fC [static]\fP, \fC [constexpr]\fP" .PP Minimum protocol version required for the \fBrelease\fP function\&. .PP Definition at line \fB2581\fP of file \fBwayland\-client\-protocol\&.hpp\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Wayland++ from the source code\&.