SDL  2.0
xdg-decoration-unstable-v1-client-protocol.h
Go to the documentation of this file.
1 /* Generated by wayland-scanner 1.16.0 */
2 
3 #ifndef XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H
4 #define XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H
5 
6 #include <stdint.h>
7 #include <stddef.h>
8 #include "wayland-client.h"
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 /**
15  * @page page_xdg_decoration_unstable_v1 The xdg_decoration_unstable_v1 protocol
16  * @section page_ifaces_xdg_decoration_unstable_v1 Interfaces
17  * - @subpage page_iface_zxdg_decoration_manager_v1 - window decoration manager
18  * - @subpage page_iface_zxdg_toplevel_decoration_v1 - decoration object for a toplevel surface
19  * @section page_copyright_xdg_decoration_unstable_v1 Copyright
20  * <pre>
21  *
22  * Copyright © 2018 Simon Ser
23  *
24  * Permission is hereby granted, free of charge, to any person obtaining a
25  * copy of this software and associated documentation files (the "Software"),
26  * to deal in the Software without restriction, including without limitation
27  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
28  * and/or sell copies of the Software, and to permit persons to whom the
29  * Software is furnished to do so, subject to the following conditions:
30  *
31  * The above copyright notice and this permission notice (including the next
32  * paragraph) shall be included in all copies or substantial portions of the
33  * Software.
34  *
35  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
36  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
37  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
38  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
39  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
41  * DEALINGS IN THE SOFTWARE.
42  * </pre>
43  */
44 struct xdg_toplevel;
45 struct zxdg_decoration_manager_v1;
46 struct zxdg_toplevel_decoration_v1;
47 
48 /**
49  * @page page_iface_zxdg_decoration_manager_v1 zxdg_decoration_manager_v1
50  * @section page_iface_zxdg_decoration_manager_v1_desc Description
51  *
52  * This interface allows a compositor to announce support for server-side
53  * decorations.
54  *
55  * A window decoration is a set of window controls as deemed appropriate by
56  * the party managing them, such as user interface components used to move,
57  * resize and change a window's state.
58  *
59  * A client can use this protocol to request being decorated by a supporting
60  * compositor.
61  *
62  * If compositor and client do not negotiate the use of a server-side
63  * decoration using this protocol, clients continue to self-decorate as they
64  * see fit.
65  *
66  * Warning! The protocol described in this file is experimental and
67  * backward incompatible changes may be made. Backward compatible changes
68  * may be added together with the corresponding interface version bump.
69  * Backward incompatible changes are done by bumping the version number in
70  * the protocol and interface names and resetting the interface version.
71  * Once the protocol is to be declared stable, the 'z' prefix and the
72  * version number in the protocol and interface names are removed and the
73  * interface version number is reset.
74  * @section page_iface_zxdg_decoration_manager_v1_api API
75  * See @ref iface_zxdg_decoration_manager_v1.
76  */
77 /**
78  * @defgroup iface_zxdg_decoration_manager_v1 The zxdg_decoration_manager_v1 interface
79  *
80  * This interface allows a compositor to announce support for server-side
81  * decorations.
82  *
83  * A window decoration is a set of window controls as deemed appropriate by
84  * the party managing them, such as user interface components used to move,
85  * resize and change a window's state.
86  *
87  * A client can use this protocol to request being decorated by a supporting
88  * compositor.
89  *
90  * If compositor and client do not negotiate the use of a server-side
91  * decoration using this protocol, clients continue to self-decorate as they
92  * see fit.
93  *
94  * Warning! The protocol described in this file is experimental and
95  * backward incompatible changes may be made. Backward compatible changes
96  * may be added together with the corresponding interface version bump.
97  * Backward incompatible changes are done by bumping the version number in
98  * the protocol and interface names and resetting the interface version.
99  * Once the protocol is to be declared stable, the 'z' prefix and the
100  * version number in the protocol and interface names are removed and the
101  * interface version number is reset.
102  */
103 extern const struct wl_interface zxdg_decoration_manager_v1_interface;
104 /**
105  * @page page_iface_zxdg_toplevel_decoration_v1 zxdg_toplevel_decoration_v1
106  * @section page_iface_zxdg_toplevel_decoration_v1_desc Description
107  *
108  * The decoration object allows the compositor to toggle server-side window
109  * decorations for a toplevel surface. The client can request to switch to
110  * another mode.
111  *
112  * The xdg_toplevel_decoration object must be destroyed before its
113  * xdg_toplevel.
114  * @section page_iface_zxdg_toplevel_decoration_v1_api API
115  * See @ref iface_zxdg_toplevel_decoration_v1.
116  */
117 /**
118  * @defgroup iface_zxdg_toplevel_decoration_v1 The zxdg_toplevel_decoration_v1 interface
119  *
120  * The decoration object allows the compositor to toggle server-side window
121  * decorations for a toplevel surface. The client can request to switch to
122  * another mode.
123  *
124  * The xdg_toplevel_decoration object must be destroyed before its
125  * xdg_toplevel.
126  */
127 extern const struct wl_interface zxdg_toplevel_decoration_v1_interface;
128 
129 #define ZXDG_DECORATION_MANAGER_V1_DESTROY 0
130 #define ZXDG_DECORATION_MANAGER_V1_GET_TOPLEVEL_DECORATION 1
131 
132 
133 /**
134  * @ingroup iface_zxdg_decoration_manager_v1
135  */
136 #define ZXDG_DECORATION_MANAGER_V1_DESTROY_SINCE_VERSION 1
137 /**
138  * @ingroup iface_zxdg_decoration_manager_v1
139  */
140 #define ZXDG_DECORATION_MANAGER_V1_GET_TOPLEVEL_DECORATION_SINCE_VERSION 1
141 
142 /** @ingroup iface_zxdg_decoration_manager_v1 */
143 static inline void
144 zxdg_decoration_manager_v1_set_user_data(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1, void *user_data)
145 {
146  wl_proxy_set_user_data((struct wl_proxy *) zxdg_decoration_manager_v1, user_data);
147 }
148 
149 /** @ingroup iface_zxdg_decoration_manager_v1 */
150 static inline void *
151 zxdg_decoration_manager_v1_get_user_data(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1)
152 {
153  return wl_proxy_get_user_data((struct wl_proxy *) zxdg_decoration_manager_v1);
154 }
155 
156 static inline uint32_t
157 zxdg_decoration_manager_v1_get_version(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1)
158 {
159  return wl_proxy_get_version((struct wl_proxy *) zxdg_decoration_manager_v1);
160 }
161 
162 /**
163  * @ingroup iface_zxdg_decoration_manager_v1
164  *
165  * Destroy the decoration manager. This doesn't destroy objects created
166  * with the manager.
167  */
168 static inline void
169 zxdg_decoration_manager_v1_destroy(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1)
170 {
171  wl_proxy_marshal((struct wl_proxy *) zxdg_decoration_manager_v1,
173 
174  wl_proxy_destroy((struct wl_proxy *) zxdg_decoration_manager_v1);
175 }
176 
177 /**
178  * @ingroup iface_zxdg_decoration_manager_v1
179  *
180  * Create a new decoration object associated with the given toplevel.
181  *
182  * Creating an xdg_toplevel_decoration from an xdg_toplevel which has a
183  * buffer attached or committed is a client error, and any attempts by a
184  * client to attach or manipulate a buffer prior to the first
185  * xdg_toplevel_decoration.configure event must also be treated as
186  * errors.
187  */
188 static inline struct zxdg_toplevel_decoration_v1 *
189 zxdg_decoration_manager_v1_get_toplevel_decoration(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1, struct xdg_toplevel *toplevel)
190 {
191  struct wl_proxy *id;
192 
193  id = wl_proxy_marshal_constructor((struct wl_proxy *) zxdg_decoration_manager_v1,
195 
196  return (struct zxdg_toplevel_decoration_v1 *) id;
197 }
198 
199 #ifndef ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ENUM
200 #define ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ENUM
202  /**
203  * xdg_toplevel has a buffer attached before configure
204  */
206  /**
207  * xdg_toplevel already has a decoration object
208  */
210  /**
211  * xdg_toplevel destroyed before the decoration object
212  */
214 };
215 #endif /* ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ENUM */
216 
217 #ifndef ZXDG_TOPLEVEL_DECORATION_V1_MODE_ENUM
218 #define ZXDG_TOPLEVEL_DECORATION_V1_MODE_ENUM
219 /**
220  * @ingroup iface_zxdg_toplevel_decoration_v1
221  * window decoration modes
222  *
223  * These values describe window decoration modes.
224  */
226  /**
227  * no server-side window decoration
228  */
230  /**
231  * server-side window decoration
232  */
234 };
235 #endif /* ZXDG_TOPLEVEL_DECORATION_V1_MODE_ENUM */
236 
237 /**
238  * @ingroup iface_zxdg_toplevel_decoration_v1
239  * @struct zxdg_toplevel_decoration_v1_listener
240  */
242  /**
243  * suggest a surface change
244  *
245  * The configure event asks the client to change its decoration
246  * mode. The configured state should not be applied immediately.
247  * Clients must send an ack_configure in response to this event.
248  * See xdg_surface.configure and xdg_surface.ack_configure for
249  * details.
250  *
251  * A configure event can be sent at any time. The specified mode
252  * must be obeyed by the client.
253  * @param mode the decoration mode
254  */
255  void (*configure)(void *data,
256  struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1,
257  uint32_t mode);
258 };
259 
260 /**
261  * @ingroup iface_zxdg_toplevel_decoration_v1
262  */
263 static inline int
264 zxdg_toplevel_decoration_v1_add_listener(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1,
265  const struct zxdg_toplevel_decoration_v1_listener *listener, void *data)
266 {
267  return wl_proxy_add_listener((struct wl_proxy *) zxdg_toplevel_decoration_v1,
268  (void (**)(void)) listener, data);
269 }
270 
271 #define ZXDG_TOPLEVEL_DECORATION_V1_DESTROY 0
272 #define ZXDG_TOPLEVEL_DECORATION_V1_SET_MODE 1
273 #define ZXDG_TOPLEVEL_DECORATION_V1_UNSET_MODE 2
274 
275 /**
276  * @ingroup iface_zxdg_toplevel_decoration_v1
277  */
278 #define ZXDG_TOPLEVEL_DECORATION_V1_CONFIGURE_SINCE_VERSION 1
279 
280 /**
281  * @ingroup iface_zxdg_toplevel_decoration_v1
282  */
283 #define ZXDG_TOPLEVEL_DECORATION_V1_DESTROY_SINCE_VERSION 1
284 /**
285  * @ingroup iface_zxdg_toplevel_decoration_v1
286  */
287 #define ZXDG_TOPLEVEL_DECORATION_V1_SET_MODE_SINCE_VERSION 1
288 /**
289  * @ingroup iface_zxdg_toplevel_decoration_v1
290  */
291 #define ZXDG_TOPLEVEL_DECORATION_V1_UNSET_MODE_SINCE_VERSION 1
292 
293 /** @ingroup iface_zxdg_toplevel_decoration_v1 */
294 static inline void
295 zxdg_toplevel_decoration_v1_set_user_data(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, void *user_data)
296 {
297  wl_proxy_set_user_data((struct wl_proxy *) zxdg_toplevel_decoration_v1, user_data);
298 }
299 
300 /** @ingroup iface_zxdg_toplevel_decoration_v1 */
301 static inline void *
302 zxdg_toplevel_decoration_v1_get_user_data(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
303 {
304  return wl_proxy_get_user_data((struct wl_proxy *) zxdg_toplevel_decoration_v1);
305 }
306 
307 static inline uint32_t
308 zxdg_toplevel_decoration_v1_get_version(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
309 {
310  return wl_proxy_get_version((struct wl_proxy *) zxdg_toplevel_decoration_v1);
311 }
312 
313 /**
314  * @ingroup iface_zxdg_toplevel_decoration_v1
315  *
316  * Switch back to a mode without any server-side decorations at the next
317  * commit.
318  */
319 static inline void
320 zxdg_toplevel_decoration_v1_destroy(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
321 {
322  wl_proxy_marshal((struct wl_proxy *) zxdg_toplevel_decoration_v1,
324 
325  wl_proxy_destroy((struct wl_proxy *) zxdg_toplevel_decoration_v1);
326 }
327 
328 /**
329  * @ingroup iface_zxdg_toplevel_decoration_v1
330  *
331  * Set the toplevel surface decoration mode. This informs the compositor
332  * that the client prefers the provided decoration mode.
333  *
334  * After requesting a decoration mode, the compositor will respond by
335  * emitting a xdg_surface.configure event. The client should then update
336  * its content, drawing it without decorations if the received mode is
337  * server-side decorations. The client must also acknowledge the configure
338  * when committing the new content (see xdg_surface.ack_configure).
339  *
340  * The compositor can decide not to use the client's mode and enforce a
341  * different mode instead.
342  *
343  * Clients whose decoration mode depend on the xdg_toplevel state may send
344  * a set_mode request in response to a xdg_surface.configure event and wait
345  * for the next xdg_surface.configure event to prevent unwanted state.
346  * Such clients are responsible for preventing configure loops and must
347  * make sure not to send multiple successive set_mode requests with the
348  * same decoration mode.
349  */
350 static inline void
351 zxdg_toplevel_decoration_v1_set_mode(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, uint32_t mode)
352 {
353  wl_proxy_marshal((struct wl_proxy *) zxdg_toplevel_decoration_v1,
355 }
356 
357 /**
358  * @ingroup iface_zxdg_toplevel_decoration_v1
359  *
360  * Unset the toplevel surface decoration mode. This informs the compositor
361  * that the client doesn't prefer a particular decoration mode.
362  *
363  * This request has the same semantics as set_mode.
364  */
365 static inline void
366 zxdg_toplevel_decoration_v1_unset_mode(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
367 {
368  wl_proxy_marshal((struct wl_proxy *) zxdg_toplevel_decoration_v1,
370 }
371 
372 #ifdef __cplusplus
373 }
374 #endif
375 
376 #endif
static int zxdg_toplevel_decoration_v1_add_listener(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, const struct zxdg_toplevel_decoration_v1_listener *listener, void *data)
GLuint id
static void zxdg_toplevel_decoration_v1_set_mode(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, uint32_t mode)
static void * zxdg_toplevel_decoration_v1_get_user_data(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
const struct wl_interface zxdg_decoration_manager_v1_interface
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
static void * zxdg_decoration_manager_v1_get_user_data(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1)
static struct zxdg_toplevel_decoration_v1 * zxdg_decoration_manager_v1_get_toplevel_decoration(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1, struct xdg_toplevel *toplevel)
static void zxdg_toplevel_decoration_v1_set_user_data(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, void *user_data)
static uint32_t zxdg_decoration_manager_v1_get_version(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1)
static void zxdg_toplevel_decoration_v1_unset_mode(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
void(* configure)(void *data, struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1, uint32_t mode)
GLenum mode
static void zxdg_toplevel_decoration_v1_destroy(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
static uint32_t zxdg_toplevel_decoration_v1_get_version(struct zxdg_toplevel_decoration_v1 *zxdg_toplevel_decoration_v1)
#define ZXDG_TOPLEVEL_DECORATION_V1_UNSET_MODE
#define NULL
Definition: begin_code.h:167
#define ZXDG_TOPLEVEL_DECORATION_V1_SET_MODE
unsigned int uint32_t
static void zxdg_decoration_manager_v1_destroy(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1)
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
#define ZXDG_DECORATION_MANAGER_V1_GET_TOPLEVEL_DECORATION
const struct wl_interface zxdg_toplevel_decoration_v1_interface
static void zxdg_decoration_manager_v1_set_user_data(struct zxdg_decoration_manager_v1 *zxdg_decoration_manager_v1, void *user_data)