1 /* Generated by wayland-scanner 1.22.0 */
2
3 #ifndef FULLSCREEN_SHELL_UNSTABLE_V1_CLIENT_PROTOCOL_H
4 #define FULLSCREEN_SHELL_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_fullscreen_shell_unstable_v1 The fullscreen_shell_unstable_v1 protocol
16 * @section page_ifaces_fullscreen_shell_unstable_v1 Interfaces
17 * - @subpage page_iface_zwp_fullscreen_shell_v1 - displays a single surface per output
18 * - @subpage page_iface_zwp_fullscreen_shell_mode_feedback_v1 -
19 * @section page_copyright_fullscreen_shell_unstable_v1 Copyright
20 * <pre>
21 *
22 * Copyright © 2016 Yong Bakos
23 * Copyright © 2015 Jason Ekstrand
24 * Copyright © 2015 Jonas Ådahl
25 *
26 * Permission is hereby granted, free of charge, to any person obtaining a
27 * copy of this software and associated documentation files (the "Software"),
28 * to deal in the Software without restriction, including without limitation
29 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
30 * and/or sell copies of the Software, and to permit persons to whom the
31 * Software is furnished to do so, subject to the following conditions:
32 *
33 * The above copyright notice and this permission notice (including the next
34 * paragraph) shall be included in all copies or substantial portions of the
35 * Software.
36 *
37 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
40 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
41 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
43 * DEALINGS IN THE SOFTWARE.
44 * </pre>
45 */
46 struct wl_output;
47 struct wl_surface;
48 struct zwp_fullscreen_shell_mode_feedback_v1;
49 struct zwp_fullscreen_shell_v1;
50
51 #ifndef ZWP_FULLSCREEN_SHELL_V1_INTERFACE
52 #define ZWP_FULLSCREEN_SHELL_V1_INTERFACE
53 /**
54 * @page page_iface_zwp_fullscreen_shell_v1 zwp_fullscreen_shell_v1
55 * @section page_iface_zwp_fullscreen_shell_v1_desc Description
56 *
57 * Displays a single surface per output.
58 *
59 * This interface provides a mechanism for a single client to display
60 * simple full-screen surfaces. While there technically may be multiple
61 * clients bound to this interface, only one of those clients should be
62 * shown at a time.
63 *
64 * To present a surface, the client uses either the present_surface or
65 * present_surface_for_mode requests. Presenting a surface takes effect
66 * on the next wl_surface.commit. See the individual requests for
67 * details about scaling and mode switches.
68 *
69 * The client can have at most one surface per output at any time.
70 * Requesting a surface to be presented on an output that already has a
71 * surface replaces the previously presented surface. Presenting a null
72 * surface removes its content and effectively disables the output.
73 * Exactly what happens when an output is "disabled" is
74 * compositor-specific. The same surface may be presented on multiple
75 * outputs simultaneously.
76 *
77 * Once a surface is presented on an output, it stays on that output
78 * until either the client removes it or the compositor destroys the
79 * output. This way, the client can update the output's contents by
80 * simply attaching a new buffer.
81 *
82 * Warning! The protocol described in this file is experimental and
83 * backward incompatible changes may be made. Backward compatible changes
84 * may be added together with the corresponding interface version bump.
85 * Backward incompatible changes are done by bumping the version number in
86 * the protocol and interface names and resetting the interface version.
87 * Once the protocol is to be declared stable, the 'z' prefix and the
88 * version number in the protocol and interface names are removed and the
89 * interface version number is reset.
90 * @section page_iface_zwp_fullscreen_shell_v1_api API
91 * See @ref iface_zwp_fullscreen_shell_v1.
92 */
93 /**
94 * @defgroup iface_zwp_fullscreen_shell_v1 The zwp_fullscreen_shell_v1 interface
95 *
96 * Displays a single surface per output.
97 *
98 * This interface provides a mechanism for a single client to display
99 * simple full-screen surfaces. While there technically may be multiple
100 * clients bound to this interface, only one of those clients should be
101 * shown at a time.
102 *
103 * To present a surface, the client uses either the present_surface or
104 * present_surface_for_mode requests. Presenting a surface takes effect
105 * on the next wl_surface.commit. See the individual requests for
106 * details about scaling and mode switches.
107 *
108 * The client can have at most one surface per output at any time.
109 * Requesting a surface to be presented on an output that already has a
110 * surface replaces the previously presented surface. Presenting a null
111 * surface removes its content and effectively disables the output.
112 * Exactly what happens when an output is "disabled" is
113 * compositor-specific. The same surface may be presented on multiple
114 * outputs simultaneously.
115 *
116 * Once a surface is presented on an output, it stays on that output
117 * until either the client removes it or the compositor destroys the
118 * output. This way, the client can update the output's contents by
119 * simply attaching a new buffer.
120 *
121 * Warning! The protocol described in this file is experimental and
122 * backward incompatible changes may be made. Backward compatible changes
123 * may be added together with the corresponding interface version bump.
124 * Backward incompatible changes are done by bumping the version number in
125 * the protocol and interface names and resetting the interface version.
126 * Once the protocol is to be declared stable, the 'z' prefix and the
127 * version number in the protocol and interface names are removed and the
128 * interface version number is reset.
129 */
130 extern const struct wl_interface zwp_fullscreen_shell_v1_interface;
131 #endif
132 #ifndef ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_INTERFACE
133 #define ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_INTERFACE
134 /**
135 * @page page_iface_zwp_fullscreen_shell_mode_feedback_v1 zwp_fullscreen_shell_mode_feedback_v1
136 * @section page_iface_zwp_fullscreen_shell_mode_feedback_v1_api API
137 * See @ref iface_zwp_fullscreen_shell_mode_feedback_v1.
138 */
139 /**
140 * @defgroup iface_zwp_fullscreen_shell_mode_feedback_v1 The zwp_fullscreen_shell_mode_feedback_v1 interface
141 */
142 extern const struct wl_interface zwp_fullscreen_shell_mode_feedback_v1_interface;
143 #endif
144
145 #ifndef ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_ENUM
146 #define ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_ENUM
147 /**
148 * @ingroup iface_zwp_fullscreen_shell_v1
149 * capabilities advertised by the compositor
150 *
151 * Various capabilities that can be advertised by the compositor. They
152 * are advertised one-at-a-time when the wl_fullscreen_shell interface is
153 * bound. See the wl_fullscreen_shell.capability event for more details.
154 *
155 * ARBITRARY_MODES:
156 * This is a hint to the client that indicates that the compositor is
157 * capable of setting practically any mode on its outputs. If this
158 * capability is provided, wl_fullscreen_shell.present_surface_for_mode
159 * will almost never fail and clients should feel free to set whatever
160 * mode they like. If the compositor does not advertise this, it may
161 * still support some modes that are not advertised through wl_global.mode
162 * but it is less likely.
163 *
164 * CURSOR_PLANE:
165 * This is a hint to the client that indicates that the compositor can
166 * handle a cursor surface from the client without actually compositing.
167 * This may be because of a hardware cursor plane or some other mechanism.
168 * If the compositor does not advertise this capability then setting
169 * wl_pointer.cursor may degrade performance or be ignored entirely. If
170 * CURSOR_PLANE is not advertised, it is recommended that the client draw
171 * its own cursor and set wl_pointer.cursor(NULL).
172 */
173 enum zwp_fullscreen_shell_v1_capability {
174 /**
175 * compositor is capable of almost any output mode
176 */
177 ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_ARBITRARY_MODES = 1,
178 /**
179 * compositor has a separate cursor plane
180 */
181 ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_CURSOR_PLANE = 2,
182 };
183 #endif /* ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_ENUM */
184
185 #ifndef ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ENUM
186 #define ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ENUM
187 /**
188 * @ingroup iface_zwp_fullscreen_shell_v1
189 * different method to set the surface fullscreen
190 *
191 * Hints to indicate to the compositor how to deal with a conflict
192 * between the dimensions of the surface and the dimensions of the
193 * output. The compositor is free to ignore this parameter.
194 */
195 enum zwp_fullscreen_shell_v1_present_method {
196 /**
197 * no preference, apply default policy
198 */
199 ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_DEFAULT = 0,
200 /**
201 * center the surface on the output
202 */
203 ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_CENTER = 1,
204 /**
205 * scale the surface, preserving aspect ratio, to the largest size that will fit on the output
206 */
207 ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ZOOM = 2,
208 /**
209 * scale the surface, preserving aspect ratio, to fully fill the output cropping if needed
210 */
211 ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ZOOM_CROP = 3,
212 /**
213 * scale the surface to the size of the output ignoring aspect ratio
214 */
215 ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_STRETCH = 4,
216 };
217 #endif /* ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_ENUM */
218
219 #ifndef ZWP_FULLSCREEN_SHELL_V1_ERROR_ENUM
220 #define ZWP_FULLSCREEN_SHELL_V1_ERROR_ENUM
221 /**
222 * @ingroup iface_zwp_fullscreen_shell_v1
223 * wl_fullscreen_shell error values
224 *
225 * These errors can be emitted in response to wl_fullscreen_shell requests.
226 */
227 enum zwp_fullscreen_shell_v1_error {
228 /**
229 * present_method is not known
230 */
231 ZWP_FULLSCREEN_SHELL_V1_ERROR_INVALID_METHOD = 0,
232 /**
233 * given wl_surface has another role
234 */
235 ZWP_FULLSCREEN_SHELL_V1_ERROR_ROLE = 1,
236 };
237 #endif /* ZWP_FULLSCREEN_SHELL_V1_ERROR_ENUM */
238
239 /**
240 * @ingroup iface_zwp_fullscreen_shell_v1
241 * @struct zwp_fullscreen_shell_v1_listener
242 */
243 struct zwp_fullscreen_shell_v1_listener {
244 /**
245 * advertises a capability of the compositor
246 *
247 * Advertises a single capability of the compositor.
248 *
249 * When the wl_fullscreen_shell interface is bound, this event is
250 * emitted once for each capability advertised. Valid capabilities
251 * are given by the wl_fullscreen_shell.capability enum. If clients
252 * want to take advantage of any of these capabilities, they should
253 * use a wl_display.sync request immediately after binding to
254 * ensure that they receive all the capability events.
255 */
256 void (*capability)(void *data,
257 struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1,
258 uint32_t capability);
259 };
260
261 /**
262 * @ingroup iface_zwp_fullscreen_shell_v1
263 */
264 static inline int
zwp_fullscreen_shell_v1_add_listener(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1,const struct zwp_fullscreen_shell_v1_listener * listener,void * data)265 zwp_fullscreen_shell_v1_add_listener(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1,
266 const struct zwp_fullscreen_shell_v1_listener *listener, void *data)
267 {
268 return wl_proxy_add_listener((struct wl_proxy *) zwp_fullscreen_shell_v1,
269 (void (**)(void)) listener, data);
270 }
271
272 #define ZWP_FULLSCREEN_SHELL_V1_RELEASE 0
273 #define ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE 1
274 #define ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_FOR_MODE 2
275
276 /**
277 * @ingroup iface_zwp_fullscreen_shell_v1
278 */
279 #define ZWP_FULLSCREEN_SHELL_V1_CAPABILITY_SINCE_VERSION 1
280
281 /**
282 * @ingroup iface_zwp_fullscreen_shell_v1
283 */
284 #define ZWP_FULLSCREEN_SHELL_V1_RELEASE_SINCE_VERSION 1
285 /**
286 * @ingroup iface_zwp_fullscreen_shell_v1
287 */
288 #define ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_SINCE_VERSION 1
289 /**
290 * @ingroup iface_zwp_fullscreen_shell_v1
291 */
292 #define ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_FOR_MODE_SINCE_VERSION 1
293
294 /** @ingroup iface_zwp_fullscreen_shell_v1 */
295 static inline void
zwp_fullscreen_shell_v1_set_user_data(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1,void * user_data)296 zwp_fullscreen_shell_v1_set_user_data(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1, void *user_data)
297 {
298 wl_proxy_set_user_data((struct wl_proxy *) zwp_fullscreen_shell_v1, user_data);
299 }
300
301 /** @ingroup iface_zwp_fullscreen_shell_v1 */
302 static inline void *
zwp_fullscreen_shell_v1_get_user_data(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1)303 zwp_fullscreen_shell_v1_get_user_data(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1)
304 {
305 return wl_proxy_get_user_data((struct wl_proxy *) zwp_fullscreen_shell_v1);
306 }
307
308 static inline uint32_t
zwp_fullscreen_shell_v1_get_version(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1)309 zwp_fullscreen_shell_v1_get_version(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1)
310 {
311 return wl_proxy_get_version((struct wl_proxy *) zwp_fullscreen_shell_v1);
312 }
313
314 /** @ingroup iface_zwp_fullscreen_shell_v1 */
315 static inline void
zwp_fullscreen_shell_v1_destroy(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1)316 zwp_fullscreen_shell_v1_destroy(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1)
317 {
318 wl_proxy_destroy((struct wl_proxy *) zwp_fullscreen_shell_v1);
319 }
320
321 /**
322 * @ingroup iface_zwp_fullscreen_shell_v1
323 *
324 * Release the binding from the wl_fullscreen_shell interface.
325 *
326 * This destroys the server-side object and frees this binding. If
327 * the client binds to wl_fullscreen_shell multiple times, it may wish
328 * to free some of those bindings.
329 */
330 static inline void
zwp_fullscreen_shell_v1_release(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1)331 zwp_fullscreen_shell_v1_release(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1)
332 {
333 wl_proxy_marshal_flags((struct wl_proxy *) zwp_fullscreen_shell_v1,
334 ZWP_FULLSCREEN_SHELL_V1_RELEASE, NULL, wl_proxy_get_version((struct wl_proxy *) zwp_fullscreen_shell_v1), WL_MARSHAL_FLAG_DESTROY);
335 }
336
337 /**
338 * @ingroup iface_zwp_fullscreen_shell_v1
339 *
340 * Present a surface on the given output.
341 *
342 * If the output is null, the compositor will present the surface on
343 * whatever display (or displays) it thinks best. In particular, this
344 * may replace any or all surfaces currently presented so it should
345 * not be used in combination with placing surfaces on specific
346 * outputs.
347 *
348 * The method parameter is a hint to the compositor for how the surface
349 * is to be presented. In particular, it tells the compositor how to
350 * handle a size mismatch between the presented surface and the
351 * output. The compositor is free to ignore this parameter.
352 *
353 * The "zoom", "zoom_crop", and "stretch" methods imply a scaling
354 * operation on the surface. This will override any kind of output
355 * scaling, so the buffer_scale property of the surface is effectively
356 * ignored.
357 *
358 * This request gives the surface the role of a fullscreen shell surface.
359 * If the surface already has another role, it raises a role protocol
360 * error.
361 */
362 static inline void
zwp_fullscreen_shell_v1_present_surface(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1,struct wl_surface * surface,uint32_t method,struct wl_output * output)363 zwp_fullscreen_shell_v1_present_surface(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1, struct wl_surface *surface, uint32_t method, struct wl_output *output)
364 {
365 wl_proxy_marshal_flags((struct wl_proxy *) zwp_fullscreen_shell_v1,
366 ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE, NULL, wl_proxy_get_version((struct wl_proxy *) zwp_fullscreen_shell_v1), 0, surface, method, output);
367 }
368
369 /**
370 * @ingroup iface_zwp_fullscreen_shell_v1
371 *
372 * Presents a surface on the given output for a particular mode.
373 *
374 * If the current size of the output differs from that of the surface,
375 * the compositor will attempt to change the size of the output to
376 * match the surface. The result of the mode-switch operation will be
377 * returned via the provided wl_fullscreen_shell_mode_feedback object.
378 *
379 * If the current output mode matches the one requested or if the
380 * compositor successfully switches the mode to match the surface,
381 * then the mode_successful event will be sent and the output will
382 * contain the contents of the given surface. If the compositor
383 * cannot match the output size to the surface size, the mode_failed
384 * will be sent and the output will contain the contents of the
385 * previously presented surface (if any). If another surface is
386 * presented on the given output before either of these has a chance
387 * to happen, the present_cancelled event will be sent.
388 *
389 * Due to race conditions and other issues unknown to the client, no
390 * mode-switch operation is guaranteed to succeed. However, if the
391 * mode is one advertised by wl_output.mode or if the compositor
392 * advertises the ARBITRARY_MODES capability, then the client should
393 * expect that the mode-switch operation will usually succeed.
394 *
395 * If the size of the presented surface changes, the resulting output
396 * is undefined. The compositor may attempt to change the output mode
397 * to compensate. However, there is no guarantee that a suitable mode
398 * will be found and the client has no way to be notified of success
399 * or failure.
400 *
401 * The framerate parameter specifies the desired framerate for the
402 * output in mHz. The compositor is free to ignore this parameter. A
403 * value of 0 indicates that the client has no preference.
404 *
405 * If the value of wl_output.scale differs from wl_surface.buffer_scale,
406 * then the compositor may choose a mode that matches either the buffer
407 * size or the surface size. In either case, the surface will fill the
408 * output.
409 *
410 * This request gives the surface the role of a fullscreen shell surface.
411 * If the surface already has another role, it raises a role protocol
412 * error.
413 */
414 static inline struct zwp_fullscreen_shell_mode_feedback_v1 *
zwp_fullscreen_shell_v1_present_surface_for_mode(struct zwp_fullscreen_shell_v1 * zwp_fullscreen_shell_v1,struct wl_surface * surface,struct wl_output * output,int32_t framerate)415 zwp_fullscreen_shell_v1_present_surface_for_mode(struct zwp_fullscreen_shell_v1 *zwp_fullscreen_shell_v1, struct wl_surface *surface, struct wl_output *output, int32_t framerate)
416 {
417 struct wl_proxy *feedback;
418
419 feedback = wl_proxy_marshal_flags((struct wl_proxy *) zwp_fullscreen_shell_v1,
420 ZWP_FULLSCREEN_SHELL_V1_PRESENT_SURFACE_FOR_MODE, &zwp_fullscreen_shell_mode_feedback_v1_interface, wl_proxy_get_version((struct wl_proxy *) zwp_fullscreen_shell_v1), 0, surface, output, framerate, NULL);
421
422 return (struct zwp_fullscreen_shell_mode_feedback_v1 *) feedback;
423 }
424
425 /**
426 * @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1
427 * @struct zwp_fullscreen_shell_mode_feedback_v1_listener
428 */
429 struct zwp_fullscreen_shell_mode_feedback_v1_listener {
430 /**
431 * mode switch succeeded
432 *
433 * This event indicates that the attempted mode switch operation
434 * was successful. A surface of the size requested in the mode
435 * switch will fill the output without scaling.
436 *
437 * Upon receiving this event, the client should destroy the
438 * wl_fullscreen_shell_mode_feedback object.
439 */
440 void (*mode_successful)(void *data,
441 struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1);
442 /**
443 * mode switch failed
444 *
445 * This event indicates that the attempted mode switch operation
446 * failed. This may be because the requested output mode is not
447 * possible or it may mean that the compositor does not want to
448 * allow it.
449 *
450 * Upon receiving this event, the client should destroy the
451 * wl_fullscreen_shell_mode_feedback object.
452 */
453 void (*mode_failed)(void *data,
454 struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1);
455 /**
456 * mode switch cancelled
457 *
458 * This event indicates that the attempted mode switch operation
459 * was cancelled. Most likely this is because the client requested
460 * a second mode switch before the first one completed.
461 *
462 * Upon receiving this event, the client should destroy the
463 * wl_fullscreen_shell_mode_feedback object.
464 */
465 void (*present_cancelled)(void *data,
466 struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1);
467 };
468
469 /**
470 * @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1
471 */
472 static inline int
zwp_fullscreen_shell_mode_feedback_v1_add_listener(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1,const struct zwp_fullscreen_shell_mode_feedback_v1_listener * listener,void * data)473 zwp_fullscreen_shell_mode_feedback_v1_add_listener(struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1,
474 const struct zwp_fullscreen_shell_mode_feedback_v1_listener *listener, void *data)
475 {
476 return wl_proxy_add_listener((struct wl_proxy *) zwp_fullscreen_shell_mode_feedback_v1,
477 (void (**)(void)) listener, data);
478 }
479
480 /**
481 * @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1
482 */
483 #define ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_MODE_SUCCESSFUL_SINCE_VERSION 1
484 /**
485 * @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1
486 */
487 #define ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_MODE_FAILED_SINCE_VERSION 1
488 /**
489 * @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1
490 */
491 #define ZWP_FULLSCREEN_SHELL_MODE_FEEDBACK_V1_PRESENT_CANCELLED_SINCE_VERSION 1
492
493
494 /** @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1 */
495 static inline void
zwp_fullscreen_shell_mode_feedback_v1_set_user_data(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1,void * user_data)496 zwp_fullscreen_shell_mode_feedback_v1_set_user_data(struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1, void *user_data)
497 {
498 wl_proxy_set_user_data((struct wl_proxy *) zwp_fullscreen_shell_mode_feedback_v1, user_data);
499 }
500
501 /** @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1 */
502 static inline void *
zwp_fullscreen_shell_mode_feedback_v1_get_user_data(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1)503 zwp_fullscreen_shell_mode_feedback_v1_get_user_data(struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1)
504 {
505 return wl_proxy_get_user_data((struct wl_proxy *) zwp_fullscreen_shell_mode_feedback_v1);
506 }
507
508 static inline uint32_t
zwp_fullscreen_shell_mode_feedback_v1_get_version(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1)509 zwp_fullscreen_shell_mode_feedback_v1_get_version(struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1)
510 {
511 return wl_proxy_get_version((struct wl_proxy *) zwp_fullscreen_shell_mode_feedback_v1);
512 }
513
514 /** @ingroup iface_zwp_fullscreen_shell_mode_feedback_v1 */
515 static inline void
zwp_fullscreen_shell_mode_feedback_v1_destroy(struct zwp_fullscreen_shell_mode_feedback_v1 * zwp_fullscreen_shell_mode_feedback_v1)516 zwp_fullscreen_shell_mode_feedback_v1_destroy(struct zwp_fullscreen_shell_mode_feedback_v1 *zwp_fullscreen_shell_mode_feedback_v1)
517 {
518 wl_proxy_destroy((struct wl_proxy *) zwp_fullscreen_shell_mode_feedback_v1);
519 }
520
521 #ifdef __cplusplus
522 }
523 #endif
524
525 #endif
526