1 /* Generated by wayland-scanner 1.22.0 */
2
3 #ifndef REMOTE_SHELL_UNSTABLE_V2_CLIENT_PROTOCOL_H
4 #define REMOTE_SHELL_UNSTABLE_V2_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_remote_shell_unstable_v2 The remote_shell_unstable_v2 protocol
16 * Create remote desktop-style surfaces
17 *
18 * @section page_desc_remote_shell_unstable_v2 Description
19 *
20 * remote_shell allows clients to turn a wl_surface into a "real window"
21 * which can be stacked and activated by the user.
22 *
23 * Warning! The protocol described in this file is experimental and backward
24 * incompatible changes may be made. Backward compatible changes may be added
25 * together with the corresponding interface version bump. Backward
26 * incompatible changes are done by bumping the version number in the protocol
27 * and interface names and resetting the interface version. Once the protocol
28 * is to be declared stable, the 'z' prefix and the version number in the
29 * protocol and interface names are removed and the interface version number is
30 * reset.
31 *
32 * @section page_ifaces_remote_shell_unstable_v2 Interfaces
33 * - @subpage page_iface_zcr_remote_shell_v2 - remote_shell
34 * - @subpage page_iface_zcr_remote_surface_v2 - A desktop window
35 * - @subpage page_iface_zcr_notification_surface_v2 - A notification window
36 * - @subpage page_iface_zcr_input_method_surface_v2 - An input method window
37 * - @subpage page_iface_zcr_toast_surface_v2 - A toast window
38 * - @subpage page_iface_zcr_remote_output_v2 - remote shell interface to a wl_output
39 * @section page_copyright_remote_shell_unstable_v2 Copyright
40 * <pre>
41 *
42 * Copyright 2021 The Chromium Authors
43 *
44 * Permission is hereby granted, free of charge, to any person obtaining a
45 * copy of this software and associated documentation files (the "Software"),
46 * to deal in the Software without restriction, including without limitation
47 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
48 * and/or sell copies of the Software, and to permit persons to whom the
49 * Software is furnished to do so, subject to the following conditions:
50 *
51 * The above copyright notice and this permission notice (including the next
52 * paragraph) shall be included in all copies or substantial portions of the
53 * Software.
54 *
55 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
56 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
57 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
58 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
59 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
60 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
61 * DEALINGS IN THE SOFTWARE.
62 * </pre>
63 */
64 struct wl_output;
65 struct wl_region;
66 struct wl_surface;
67 struct zcr_input_method_surface_v2;
68 struct zcr_notification_surface_v2;
69 struct zcr_remote_output_v2;
70 struct zcr_remote_shell_v2;
71 struct zcr_remote_surface_v2;
72 struct zcr_toast_surface_v2;
73
74 #ifndef ZCR_REMOTE_SHELL_V2_INTERFACE
75 #define ZCR_REMOTE_SHELL_V2_INTERFACE
76 /**
77 * @page page_iface_zcr_remote_shell_v2 zcr_remote_shell_v2
78 * @section page_iface_zcr_remote_shell_v2_desc Description
79 *
80 * The global interface that allows clients to turn a wl_surface into a
81 * "real window" which is remotely managed but can be stacked, activated
82 * and made fullscreen by the user.
83 * @section page_iface_zcr_remote_shell_v2_api API
84 * See @ref iface_zcr_remote_shell_v2.
85 */
86 /**
87 * @defgroup iface_zcr_remote_shell_v2 The zcr_remote_shell_v2 interface
88 *
89 * The global interface that allows clients to turn a wl_surface into a
90 * "real window" which is remotely managed but can be stacked, activated
91 * and made fullscreen by the user.
92 */
93 extern const struct wl_interface zcr_remote_shell_v2_interface;
94 #endif
95 #ifndef ZCR_REMOTE_SURFACE_V2_INTERFACE
96 #define ZCR_REMOTE_SURFACE_V2_INTERFACE
97 /**
98 * @page page_iface_zcr_remote_surface_v2 zcr_remote_surface_v2
99 * @section page_iface_zcr_remote_surface_v2_desc Description
100 *
101 * An interface that may be implemented by a wl_surface, for
102 * implementations that provide a desktop-style user interface
103 * and allows for remotely managed windows.
104 *
105 * It provides requests to treat surfaces like windows, allowing to set
106 * properties like app id and geometry.
107 *
108 * The client must call wl_surface.commit on the corresponding wl_surface
109 * for the remote_surface state to take effect.
110 *
111 * For a surface to be mapped by the compositor the client must have
112 * committed both an remote_surface state and a buffer.
113 * @section page_iface_zcr_remote_surface_v2_api API
114 * See @ref iface_zcr_remote_surface_v2.
115 */
116 /**
117 * @defgroup iface_zcr_remote_surface_v2 The zcr_remote_surface_v2 interface
118 *
119 * An interface that may be implemented by a wl_surface, for
120 * implementations that provide a desktop-style user interface
121 * and allows for remotely managed windows.
122 *
123 * It provides requests to treat surfaces like windows, allowing to set
124 * properties like app id and geometry.
125 *
126 * The client must call wl_surface.commit on the corresponding wl_surface
127 * for the remote_surface state to take effect.
128 *
129 * For a surface to be mapped by the compositor the client must have
130 * committed both an remote_surface state and a buffer.
131 */
132 extern const struct wl_interface zcr_remote_surface_v2_interface;
133 #endif
134 #ifndef ZCR_NOTIFICATION_SURFACE_V2_INTERFACE
135 #define ZCR_NOTIFICATION_SURFACE_V2_INTERFACE
136 /**
137 * @page page_iface_zcr_notification_surface_v2 zcr_notification_surface_v2
138 * @section page_iface_zcr_notification_surface_v2_desc Description
139 *
140 * An interface that may be implemented by a wl_surface to host
141 * notification contents.
142 * @section page_iface_zcr_notification_surface_v2_api API
143 * See @ref iface_zcr_notification_surface_v2.
144 */
145 /**
146 * @defgroup iface_zcr_notification_surface_v2 The zcr_notification_surface_v2 interface
147 *
148 * An interface that may be implemented by a wl_surface to host
149 * notification contents.
150 */
151 extern const struct wl_interface zcr_notification_surface_v2_interface;
152 #endif
153 #ifndef ZCR_INPUT_METHOD_SURFACE_V2_INTERFACE
154 #define ZCR_INPUT_METHOD_SURFACE_V2_INTERFACE
155 /**
156 * @page page_iface_zcr_input_method_surface_v2 zcr_input_method_surface_v2
157 * @section page_iface_zcr_input_method_surface_v2_desc Description
158 *
159 * An interface that may be implemented by a wl_surface to host IME contents.
160 * @section page_iface_zcr_input_method_surface_v2_api API
161 * See @ref iface_zcr_input_method_surface_v2.
162 */
163 /**
164 * @defgroup iface_zcr_input_method_surface_v2 The zcr_input_method_surface_v2 interface
165 *
166 * An interface that may be implemented by a wl_surface to host IME contents.
167 */
168 extern const struct wl_interface zcr_input_method_surface_v2_interface;
169 #endif
170 #ifndef ZCR_TOAST_SURFACE_V2_INTERFACE
171 #define ZCR_TOAST_SURFACE_V2_INTERFACE
172 /**
173 * @page page_iface_zcr_toast_surface_v2 zcr_toast_surface_v2
174 * @section page_iface_zcr_toast_surface_v2_desc Description
175 *
176 * An interface that may be implemented by a wl_surface to host
177 * toast contents.
178 * @section page_iface_zcr_toast_surface_v2_api API
179 * See @ref iface_zcr_toast_surface_v2.
180 */
181 /**
182 * @defgroup iface_zcr_toast_surface_v2 The zcr_toast_surface_v2 interface
183 *
184 * An interface that may be implemented by a wl_surface to host
185 * toast contents.
186 */
187 extern const struct wl_interface zcr_toast_surface_v2_interface;
188 #endif
189 #ifndef ZCR_REMOTE_OUTPUT_V2_INTERFACE
190 #define ZCR_REMOTE_OUTPUT_V2_INTERFACE
191 /**
192 * @page page_iface_zcr_remote_output_v2 zcr_remote_output_v2
193 * @section page_iface_zcr_remote_output_v2_desc Description
194 *
195 * An additional interface to a wl_output object, which allows the
196 * client to access additional functionality for output.
197 * @section page_iface_zcr_remote_output_v2_api API
198 * See @ref iface_zcr_remote_output_v2.
199 */
200 /**
201 * @defgroup iface_zcr_remote_output_v2 The zcr_remote_output_v2 interface
202 *
203 * An additional interface to a wl_output object, which allows the
204 * client to access additional functionality for output.
205 */
206 extern const struct wl_interface zcr_remote_output_v2_interface;
207 #endif
208
209 #ifndef ZCR_REMOTE_SHELL_V2_ERROR_ENUM
210 #define ZCR_REMOTE_SHELL_V2_ERROR_ENUM
211 enum zcr_remote_shell_v2_error {
212 /**
213 * given wl_surface has another role
214 */
215 ZCR_REMOTE_SHELL_V2_ERROR_ROLE = 0,
216 /**
217 * invalid notification key
218 */
219 ZCR_REMOTE_SHELL_V2_ERROR_INVALID_NOTIFICATION_KEY = 1,
220 };
221 #endif /* ZCR_REMOTE_SHELL_V2_ERROR_ENUM */
222
223 #ifndef ZCR_REMOTE_SHELL_V2_CONTAINER_ENUM
224 #define ZCR_REMOTE_SHELL_V2_CONTAINER_ENUM
225 /**
226 * @ingroup iface_zcr_remote_shell_v2
227 * containers for remote surfaces
228 *
229 * Determine how a remote surface should be stacked relative to other
230 * shell surfaces.
231 */
232 enum zcr_remote_shell_v2_container {
233 /**
234 * default container
235 */
236 ZCR_REMOTE_SHELL_V2_CONTAINER_DEFAULT = 1,
237 /**
238 * system modal container
239 */
240 ZCR_REMOTE_SHELL_V2_CONTAINER_OVERLAY = 2,
241 };
242 #endif /* ZCR_REMOTE_SHELL_V2_CONTAINER_ENUM */
243
244 #ifndef ZCR_REMOTE_SHELL_V2_LAYOUT_MODE_ENUM
245 #define ZCR_REMOTE_SHELL_V2_LAYOUT_MODE_ENUM
246 /**
247 * @ingroup iface_zcr_remote_shell_v2
248 * the layout mode
249 *
250 * Determine how a client should layout surfaces.
251 */
252 enum zcr_remote_shell_v2_layout_mode {
253 /**
254 * multiple windows
255 */
256 ZCR_REMOTE_SHELL_V2_LAYOUT_MODE_WINDOWED = 1,
257 /**
258 * restricted mode for tablet
259 */
260 ZCR_REMOTE_SHELL_V2_LAYOUT_MODE_TABLET = 2,
261 };
262 #endif /* ZCR_REMOTE_SHELL_V2_LAYOUT_MODE_ENUM */
263
264 #ifndef ZCR_REMOTE_SHELL_V2_DESKTOP_FOCUS_STATE_ENUM
265 #define ZCR_REMOTE_SHELL_V2_DESKTOP_FOCUS_STATE_ENUM
266 /**
267 * @ingroup iface_zcr_remote_shell_v2
268 * desktop foucs state
269 *
270 * Desktop client window focus state.
271 */
272 enum zcr_remote_shell_v2_desktop_focus_state {
273 /**
274 * no window get focused
275 */
276 ZCR_REMOTE_SHELL_V2_DESKTOP_FOCUS_STATE_NO_FOCUS = 1,
277 /**
278 * client window get focused
279 */
280 ZCR_REMOTE_SHELL_V2_DESKTOP_FOCUS_STATE_CLIENT_FOCUSED = 2,
281 /**
282 * other client window get focused
283 */
284 ZCR_REMOTE_SHELL_V2_DESKTOP_FOCUS_STATE_OTHER_CLIENT_FOCUSED = 3,
285 };
286 #endif /* ZCR_REMOTE_SHELL_V2_DESKTOP_FOCUS_STATE_ENUM */
287
288 /**
289 * @ingroup iface_zcr_remote_shell_v2
290 * @struct zcr_remote_shell_v2_listener
291 */
292 struct zcr_remote_shell_v2_listener {
293 /**
294 * initialize scale configuration
295 *
296 * Sends the default device scale factor.
297 * @param scale DP to pixels ratio, in 8.24 fixed point format
298 */
299 void (*default_device_scale_factor)(void *data,
300 struct zcr_remote_shell_v2 *zcr_remote_shell_v2,
301 int32_t scale);
302 /**
303 * sends the layout_mode
304 *
305 * Sends the layout_mode used by the server.
306 */
307 void (*layout_mode)(void *data,
308 struct zcr_remote_shell_v2 *zcr_remote_shell_v2,
309 uint32_t layout_mode);
310 /**
311 * desktop window focus state change
312 *
313 * Notifies client that the window focus state change.
314 */
315 void (*desktop_focus_state_changed)(void *data,
316 struct zcr_remote_shell_v2 *zcr_remote_shell_v2,
317 uint32_t focus_state);
318 };
319
320 /**
321 * @ingroup iface_zcr_remote_shell_v2
322 */
323 static inline int
zcr_remote_shell_v2_add_listener(struct zcr_remote_shell_v2 * zcr_remote_shell_v2,const struct zcr_remote_shell_v2_listener * listener,void * data)324 zcr_remote_shell_v2_add_listener(struct zcr_remote_shell_v2 *zcr_remote_shell_v2,
325 const struct zcr_remote_shell_v2_listener *listener, void *data)
326 {
327 return wl_proxy_add_listener((struct wl_proxy *) zcr_remote_shell_v2,
328 (void (**)(void)) listener, data);
329 }
330
331 #define ZCR_REMOTE_SHELL_V2_DESTROY 0
332 #define ZCR_REMOTE_SHELL_V2_GET_REMOTE_SURFACE 1
333 #define ZCR_REMOTE_SHELL_V2_GET_NOTIFICATION_SURFACE 2
334 #define ZCR_REMOTE_SHELL_V2_GET_INPUT_METHOD_SURFACE 3
335 #define ZCR_REMOTE_SHELL_V2_GET_TOAST_SURFACE 4
336 #define ZCR_REMOTE_SHELL_V2_GET_REMOTE_OUTPUT 5
337
338 /**
339 * @ingroup iface_zcr_remote_shell_v2
340 */
341 #define ZCR_REMOTE_SHELL_V2_DEFAULT_DEVICE_SCALE_FACTOR_SINCE_VERSION 1
342 /**
343 * @ingroup iface_zcr_remote_shell_v2
344 */
345 #define ZCR_REMOTE_SHELL_V2_LAYOUT_MODE_SINCE_VERSION 1
346 /**
347 * @ingroup iface_zcr_remote_shell_v2
348 */
349 #define ZCR_REMOTE_SHELL_V2_DESKTOP_FOCUS_STATE_CHANGED_SINCE_VERSION 1
350
351 /**
352 * @ingroup iface_zcr_remote_shell_v2
353 */
354 #define ZCR_REMOTE_SHELL_V2_DESTROY_SINCE_VERSION 1
355 /**
356 * @ingroup iface_zcr_remote_shell_v2
357 */
358 #define ZCR_REMOTE_SHELL_V2_GET_REMOTE_SURFACE_SINCE_VERSION 1
359 /**
360 * @ingroup iface_zcr_remote_shell_v2
361 */
362 #define ZCR_REMOTE_SHELL_V2_GET_NOTIFICATION_SURFACE_SINCE_VERSION 1
363 /**
364 * @ingroup iface_zcr_remote_shell_v2
365 */
366 #define ZCR_REMOTE_SHELL_V2_GET_INPUT_METHOD_SURFACE_SINCE_VERSION 1
367 /**
368 * @ingroup iface_zcr_remote_shell_v2
369 */
370 #define ZCR_REMOTE_SHELL_V2_GET_TOAST_SURFACE_SINCE_VERSION 1
371 /**
372 * @ingroup iface_zcr_remote_shell_v2
373 */
374 #define ZCR_REMOTE_SHELL_V2_GET_REMOTE_OUTPUT_SINCE_VERSION 1
375
376 /** @ingroup iface_zcr_remote_shell_v2 */
377 static inline void
zcr_remote_shell_v2_set_user_data(struct zcr_remote_shell_v2 * zcr_remote_shell_v2,void * user_data)378 zcr_remote_shell_v2_set_user_data(struct zcr_remote_shell_v2 *zcr_remote_shell_v2, void *user_data)
379 {
380 wl_proxy_set_user_data((struct wl_proxy *) zcr_remote_shell_v2, user_data);
381 }
382
383 /** @ingroup iface_zcr_remote_shell_v2 */
384 static inline void *
zcr_remote_shell_v2_get_user_data(struct zcr_remote_shell_v2 * zcr_remote_shell_v2)385 zcr_remote_shell_v2_get_user_data(struct zcr_remote_shell_v2 *zcr_remote_shell_v2)
386 {
387 return wl_proxy_get_user_data((struct wl_proxy *) zcr_remote_shell_v2);
388 }
389
390 static inline uint32_t
zcr_remote_shell_v2_get_version(struct zcr_remote_shell_v2 * zcr_remote_shell_v2)391 zcr_remote_shell_v2_get_version(struct zcr_remote_shell_v2 *zcr_remote_shell_v2)
392 {
393 return wl_proxy_get_version((struct wl_proxy *) zcr_remote_shell_v2);
394 }
395
396 /**
397 * @ingroup iface_zcr_remote_shell_v2
398 *
399 * Destroy this remote_shell object.
400 *
401 * Destroying a bound remote_shell object while there are surfaces
402 * still alive created by this remote_shell object instance is illegal
403 * and will result in a protocol error.
404 */
405 static inline void
zcr_remote_shell_v2_destroy(struct zcr_remote_shell_v2 * zcr_remote_shell_v2)406 zcr_remote_shell_v2_destroy(struct zcr_remote_shell_v2 *zcr_remote_shell_v2)
407 {
408 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_shell_v2,
409 ZCR_REMOTE_SHELL_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_shell_v2), WL_MARSHAL_FLAG_DESTROY);
410 }
411
412 /**
413 * @ingroup iface_zcr_remote_shell_v2
414 *
415 * This creates an remote_surface for the given surface and gives it the
416 * remote_surface role. A wl_surface can only be given a remote_surface
417 * role once. If get_remote_surface is called with a wl_surface that
418 * already has an active remote_surface associated with it, or if it had
419 * any other role, an error is raised.
420 *
421 * See the documentation of remote_surface for more details about what an
422 * remote_surface is and how it is used.
423 */
424 static inline struct zcr_remote_surface_v2 *
zcr_remote_shell_v2_get_remote_surface(struct zcr_remote_shell_v2 * zcr_remote_shell_v2,struct wl_surface * surface,uint32_t container)425 zcr_remote_shell_v2_get_remote_surface(struct zcr_remote_shell_v2 *zcr_remote_shell_v2, struct wl_surface *surface, uint32_t container)
426 {
427 struct wl_proxy *id;
428
429 id = wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_shell_v2,
430 ZCR_REMOTE_SHELL_V2_GET_REMOTE_SURFACE, &zcr_remote_surface_v2_interface, wl_proxy_get_version((struct wl_proxy *) zcr_remote_shell_v2), 0, NULL, surface, container);
431
432 return (struct zcr_remote_surface_v2 *) id;
433 }
434
435 /**
436 * @ingroup iface_zcr_remote_shell_v2
437 *
438 * Creates a notification_surface for the given surface, gives it the
439 * notification_surface role and associated it with a notification id.
440 */
441 static inline struct zcr_notification_surface_v2 *
zcr_remote_shell_v2_get_notification_surface(struct zcr_remote_shell_v2 * zcr_remote_shell_v2,struct wl_surface * surface,const char * notification_key)442 zcr_remote_shell_v2_get_notification_surface(struct zcr_remote_shell_v2 *zcr_remote_shell_v2, struct wl_surface *surface, const char *notification_key)
443 {
444 struct wl_proxy *id;
445
446 id = wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_shell_v2,
447 ZCR_REMOTE_SHELL_V2_GET_NOTIFICATION_SURFACE, &zcr_notification_surface_v2_interface, wl_proxy_get_version((struct wl_proxy *) zcr_remote_shell_v2), 0, NULL, surface, notification_key);
448
449 return (struct zcr_notification_surface_v2 *) id;
450 }
451
452 /**
453 * @ingroup iface_zcr_remote_shell_v2
454 *
455 * Creates an input_method_surface for the given surface, gives it
456 * the input_method_surface role.
457 */
458 static inline struct zcr_input_method_surface_v2 *
zcr_remote_shell_v2_get_input_method_surface(struct zcr_remote_shell_v2 * zcr_remote_shell_v2,struct wl_surface * surface)459 zcr_remote_shell_v2_get_input_method_surface(struct zcr_remote_shell_v2 *zcr_remote_shell_v2, struct wl_surface *surface)
460 {
461 struct wl_proxy *id;
462
463 id = wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_shell_v2,
464 ZCR_REMOTE_SHELL_V2_GET_INPUT_METHOD_SURFACE, &zcr_input_method_surface_v2_interface, wl_proxy_get_version((struct wl_proxy *) zcr_remote_shell_v2), 0, NULL, surface);
465
466 return (struct zcr_input_method_surface_v2 *) id;
467 }
468
469 /**
470 * @ingroup iface_zcr_remote_shell_v2
471 *
472 * Creates an toast_surface for the given surface, gives it
473 * the toast_surface role.
474 */
475 static inline struct zcr_toast_surface_v2 *
zcr_remote_shell_v2_get_toast_surface(struct zcr_remote_shell_v2 * zcr_remote_shell_v2,struct wl_surface * surface)476 zcr_remote_shell_v2_get_toast_surface(struct zcr_remote_shell_v2 *zcr_remote_shell_v2, struct wl_surface *surface)
477 {
478 struct wl_proxy *id;
479
480 id = wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_shell_v2,
481 ZCR_REMOTE_SHELL_V2_GET_TOAST_SURFACE, &zcr_toast_surface_v2_interface, wl_proxy_get_version((struct wl_proxy *) zcr_remote_shell_v2), 0, NULL, surface);
482
483 return (struct zcr_toast_surface_v2 *) id;
484 }
485
486 /**
487 * @ingroup iface_zcr_remote_shell_v2
488 *
489 * Instantiate an interface extension for the given wl_output to
490 * provide remote shell functionality.
491 */
492 static inline struct zcr_remote_output_v2 *
zcr_remote_shell_v2_get_remote_output(struct zcr_remote_shell_v2 * zcr_remote_shell_v2,struct wl_output * output)493 zcr_remote_shell_v2_get_remote_output(struct zcr_remote_shell_v2 *zcr_remote_shell_v2, struct wl_output *output)
494 {
495 struct wl_proxy *id;
496
497 id = wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_shell_v2,
498 ZCR_REMOTE_SHELL_V2_GET_REMOTE_OUTPUT, &zcr_remote_output_v2_interface, wl_proxy_get_version((struct wl_proxy *) zcr_remote_shell_v2), 0, NULL, output);
499
500 return (struct zcr_remote_output_v2 *) id;
501 }
502
503 #ifndef ZCR_REMOTE_SURFACE_V2_SYSTEMUI_VISIBILITY_STATE_ENUM
504 #define ZCR_REMOTE_SURFACE_V2_SYSTEMUI_VISIBILITY_STATE_ENUM
505 /**
506 * @ingroup iface_zcr_remote_surface_v2
507 * systemui visibility behavior
508 *
509 * Determine the visibility behavior of the system UI.
510 */
511 enum zcr_remote_surface_v2_systemui_visibility_state {
512 /**
513 * system ui is visible
514 */
515 ZCR_REMOTE_SURFACE_V2_SYSTEMUI_VISIBILITY_STATE_VISIBLE = 1,
516 /**
517 * system ui autohides and is not sticky
518 */
519 ZCR_REMOTE_SURFACE_V2_SYSTEMUI_VISIBILITY_STATE_AUTOHIDE_NON_STICKY = 2,
520 /**
521 * system ui autohides and is sticky
522 */
523 ZCR_REMOTE_SURFACE_V2_SYSTEMUI_VISIBILITY_STATE_AUTOHIDE_STICKY = 3,
524 };
525 #endif /* ZCR_REMOTE_SURFACE_V2_SYSTEMUI_VISIBILITY_STATE_ENUM */
526
527 #ifndef ZCR_REMOTE_SURFACE_V2_STATE_TYPE_ENUM
528 #define ZCR_REMOTE_SURFACE_V2_STATE_TYPE_ENUM
529 /**
530 * @ingroup iface_zcr_remote_surface_v2
531 * state types for remote surfaces
532 *
533 * Defines common show states for shell surfaces.
534 */
535 enum zcr_remote_surface_v2_state_type {
536 /**
537 * normal window state
538 */
539 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_NORMAL = 1,
540 /**
541 * minimized window state
542 */
543 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_MINIMIZED = 2,
544 /**
545 * maximized window state
546 */
547 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_MAXIMIZED = 3,
548 /**
549 * fullscreen window state
550 */
551 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_FULLSCREEN = 4,
552 /**
553 * pinned window state
554 */
555 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_PINNED = 5,
556 /**
557 * trusted pinned window state
558 */
559 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_TRUSTED_PINNED = 6,
560 /**
561 * moving window state
562 */
563 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_MOVING = 7,
564 /**
565 * resizing window state
566 */
567 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_RESIZING = 8,
568 /**
569 * left snapped window state
570 */
571 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_LEFT_SNAPPED = 9,
572 /**
573 * right snapped window state
574 */
575 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_RIGHT_SNAPPED = 10,
576 /**
577 * pip window state
578 */
579 ZCR_REMOTE_SURFACE_V2_STATE_TYPE_PIP = 11,
580 };
581 #endif /* ZCR_REMOTE_SURFACE_V2_STATE_TYPE_ENUM */
582
583 #ifndef ZCR_REMOTE_SURFACE_V2_ORIENTATION_ENUM
584 #define ZCR_REMOTE_SURFACE_V2_ORIENTATION_ENUM
585 /**
586 * @ingroup iface_zcr_remote_surface_v2
587 * window orientation
588 *
589 * The orientation of the window.
590 */
591 enum zcr_remote_surface_v2_orientation {
592 /**
593 * portrait
594 */
595 ZCR_REMOTE_SURFACE_V2_ORIENTATION_PORTRAIT = 1,
596 /**
597 * landscape
598 */
599 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LANDSCAPE = 2,
600 };
601 #endif /* ZCR_REMOTE_SURFACE_V2_ORIENTATION_ENUM */
602
603 #ifndef ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_ENUM
604 #define ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_ENUM
605 /**
606 * @ingroup iface_zcr_remote_surface_v2
607 * bounds_change_reason
608 *
609 * Specifies the cause of the window bounds change event.
610 */
611 enum zcr_remote_surface_v2_bounds_change_reason {
612 /**
613 * the window is being moved by drag operation
614 */
615 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_DRAG_MOVE = 1,
616 /**
617 * the window is being resized by drag operation.
618 */
619 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_DRAG_RESIZE = 2,
620 /**
621 * the window is resized to left snapped state
622 */
623 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_SNAP_TO_LEFT = 3,
624 /**
625 * the window is resized to right snapped state
626 */
627 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_SNAP_TO_RIGHT = 4,
628 /**
629 * the window bounds is moved due to other WM operations
630 */
631 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_MOVE = 5,
632 /**
633 * the window bounds is reiszed due to other WM operations
634 */
635 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_RESIZE = 6,
636 /**
637 * the window bounds is resized or moved for PIP
638 */
639 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_PIP = 7,
640 /**
641 * the window bounds is resized or moved for float state
642 * @since 3
643 */
644 ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_FLOAT = 8,
645 };
646 /**
647 * @ingroup iface_zcr_remote_surface_v2
648 */
649 #define ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_FLOAT_SINCE_VERSION 3
650 #endif /* ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGE_REASON_ENUM */
651
652 #ifndef ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_ENUM
653 #define ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_ENUM
654 /**
655 * @ingroup iface_zcr_remote_surface_v2
656 * resize direction
657 *
658 * The resize direction for drag operation
659 */
660 enum zcr_remote_surface_v2_resize_direction {
661 /**
662 * move only, no resize
663 */
664 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_NONE = 0,
665 /**
666 * resize to the left
667 */
668 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_LEFT = 1,
669 /**
670 * resize to the top left
671 */
672 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_TOPLEFT = 2,
673 /**
674 * resize to the top
675 */
676 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_TOP = 3,
677 /**
678 * resize to the top right
679 */
680 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_TOPRIGHT = 4,
681 /**
682 * resize to the right
683 */
684 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_RIGHT = 5,
685 /**
686 * resize to the buttom right
687 */
688 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_BOTTOMRIGHT = 6,
689 /**
690 * resize to the bottom
691 */
692 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_BOTTOM = 7,
693 /**
694 * resize to the bottom left
695 */
696 ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_BOTTOMLEFT = 8,
697 };
698 #endif /* ZCR_REMOTE_SURFACE_V2_RESIZE_DIRECTION_ENUM */
699
700 #ifndef ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_ENUM
701 #define ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_ENUM
702 /**
703 * @ingroup iface_zcr_remote_surface_v2
704 * frame types
705 *
706 * Frame type that can be used to decorate a surface.
707 */
708 enum zcr_remote_surface_v2_frame_type {
709 /**
710 * no frame
711 */
712 ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_NONE = 0,
713 /**
714 * caption with shadow
715 */
716 ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_NORMAL = 1,
717 /**
718 * shadow only
719 */
720 ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_SHADOW = 2,
721 /**
722 * autohide frame with shadow
723 */
724 ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_AUTOHIDE = 3,
725 /**
726 * [Deprecated] overlay frame with shadow
727 */
728 ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_OVERLAY = 4,
729 /**
730 * overlap frame with the window
731 * @since 6
732 */
733 ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_OVERLAP = 5,
734 };
735 /**
736 * @ingroup iface_zcr_remote_surface_v2
737 */
738 #define ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_OVERLAP_SINCE_VERSION 6
739 #endif /* ZCR_REMOTE_SURFACE_V2_FRAME_TYPE_ENUM */
740
741 #ifndef ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_ENUM
742 #define ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_ENUM
743 /**
744 * @ingroup iface_zcr_remote_surface_v2
745 * frame button types
746 *
747 * The mask that represents buttons on frame.
748 */
749 enum zcr_remote_surface_v2_frame_button_type {
750 /**
751 * a button to naviate backwards
752 */
753 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_BACK = 1,
754 /**
755 * a button to minimize the window
756 */
757 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_MINIMIZE = 2,
758 /**
759 * a button to maximize or restore
760 */
761 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_MAXIMIZE_RESTORE = 4,
762 /**
763 * a button to activate application's menu
764 */
765 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_MENU = 8,
766 /**
767 * a button to close the window
768 */
769 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_CLOSE = 16,
770 /**
771 * a mask to turn the maximize_restore button to zoom button
772 */
773 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_ZOOM = 32,
774 /**
775 * a customizable, center-aligned button
776 */
777 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_CENTER = 64,
778 /**
779 * a button to float a window without maximize or restore
780 */
781 ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_FLOAT = 128,
782 };
783 #endif /* ZCR_REMOTE_SURFACE_V2_FRAME_BUTTON_TYPE_ENUM */
784
785 #ifndef ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_ENUM
786 #define ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_ENUM
787 /**
788 * @ingroup iface_zcr_remote_surface_v2
789 * orientation lock request for remote surfaces
790 *
791 * Defines orientation request when a remote surface is in foreground.
792 */
793 enum zcr_remote_surface_v2_orientation_lock {
794 /**
795 * no orientation lock
796 */
797 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_NONE = 1,
798 /**
799 * primary or secondary portrait
800 */
801 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_PORTRAIT = 2,
802 /**
803 * primary or secondary landscape
804 */
805 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_LANDSCAPE = 3,
806 /**
807 * keep current orientation
808 */
809 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_CURRENT = 4,
810 /**
811 * primary portrait
812 */
813 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_PORTRAIT_PRIMARY = 5,
814 /**
815 * primary landscape
816 */
817 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_LANDSCAPE_PRIMARY = 6,
818 /**
819 * secondary portrait
820 */
821 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_PORTRAIT_SECONDARY = 7,
822 /**
823 * secondary landscape
824 */
825 ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_LANDSCAPE_SECONDARY = 8,
826 };
827 #endif /* ZCR_REMOTE_SURFACE_V2_ORIENTATION_LOCK_ENUM */
828
829 #ifndef ZCR_REMOTE_SURFACE_V2_ZOOM_CHANGE_ENUM
830 #define ZCR_REMOTE_SURFACE_V2_ZOOM_CHANGE_ENUM
831 /**
832 * @ingroup iface_zcr_remote_surface_v2
833 * zoom level change
834 *
835 * Zoom level change.
836 */
837 enum zcr_remote_surface_v2_zoom_change {
838 /**
839 * zoom in
840 */
841 ZCR_REMOTE_SURFACE_V2_ZOOM_CHANGE_IN = 0,
842 /**
843 * zoom out
844 */
845 ZCR_REMOTE_SURFACE_V2_ZOOM_CHANGE_OUT = 1,
846 /**
847 * reset zoom level
848 */
849 ZCR_REMOTE_SURFACE_V2_ZOOM_CHANGE_RESET = 2,
850 };
851 #endif /* ZCR_REMOTE_SURFACE_V2_ZOOM_CHANGE_ENUM */
852
853 #ifndef ZCR_REMOTE_SURFACE_V2_RESIZE_LOCK_TYPE_ENUM
854 #define ZCR_REMOTE_SURFACE_V2_RESIZE_LOCK_TYPE_ENUM
855 /**
856 * @ingroup iface_zcr_remote_surface_v2
857 * resize lock type
858 *
859 * Resize lock type that can be used to put restrictions related to resizing.
860 */
861 enum zcr_remote_surface_v2_resize_lock_type {
862 /**
863 * follows normal resizeable policies
864 */
865 ZCR_REMOTE_SURFACE_V2_RESIZE_LOCK_TYPE_NONE = 0,
866 /**
867 * resizing is enabled and resize lock type is togglable
868 */
869 ZCR_REMOTE_SURFACE_V2_RESIZE_LOCK_TYPE_RESIZE_ENABLED_TOGGLABLE = 1,
870 /**
871 * resizing is disabled and resize lock type is togglable
872 */
873 ZCR_REMOTE_SURFACE_V2_RESIZE_LOCK_TYPE_RESIZE_DISABLED_TOGGLABLE = 2,
874 /**
875 * resizing is disabled and resize lock type is not togglable
876 */
877 ZCR_REMOTE_SURFACE_V2_RESIZE_LOCK_TYPE_RESIZE_DISALBED_NONTOGGLEABLE = 3,
878 };
879 #endif /* ZCR_REMOTE_SURFACE_V2_RESIZE_LOCK_TYPE_ENUM */
880
881 /**
882 * @ingroup iface_zcr_remote_surface_v2
883 * @struct zcr_remote_surface_v2_listener
884 */
885 struct zcr_remote_surface_v2_listener {
886 /**
887 * surface wants to be closed
888 *
889 * The close event is sent by the compositor when the user wants
890 * the surface to be closed. This should be equivalent to the user
891 * clicking the close button in client-side decorations, if your
892 * application has any...
893 *
894 * This is only a request that the user intends to close your
895 * window. The client may choose to ignore this request, or show a
896 * dialog to ask the user to save their data...
897 */
898 void (*close)(void *data,
899 struct zcr_remote_surface_v2 *zcr_remote_surface_v2);
900 /**
901 * surface state type changed
902 *
903 * The state_type_changed event is sent by the compositor when
904 * the surface state changed.
905 *
906 * This is an event to notify that the window state changed in
907 * compositor. The state change may be triggered by a client's
908 * request, or some user action directly handled by the compositor.
909 * The client may choose to ignore this event.
910 */
911 void (*state_type_changed)(void *data,
912 struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
913 uint32_t state_type);
914 /**
915 * announce window geometry commit
916 *
917 * Notify the client of committed window geometry.
918 *
919 * The compositor sends this event when it commits window geometry.
920 * The client may use this information to convert coordinates of
921 * input events using the latest committed geometry.
922 */
923 void (*window_geometry_changed)(void *data,
924 struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
925 int32_t x,
926 int32_t y,
927 int32_t width,
928 int32_t height);
929 /**
930 * The compositor requested to change the bounds
931 *
932 * The compositor requested to change its bounds.
933 * "bounds_change_reason" specifies the cause of the bounds change.
934 * The client may apply the different move/resize strategy
935 * depending on the reason.
936 *
937 * "display_id_hi", "display_id_lo" specifies in which workspace
938 * the surface should live in.
939 *
940 * The client responds with set_bounds_in_output request, with the
941 * bounds it is resized to (this may be different from the bounds
942 * requested).
943 *
944 * The client may ignore move request depending on the state, e.g,
945 * if it becomes resizable or other constrants.
946 */
947 void (*bounds_changed)(void *data,
948 struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
949 uint32_t display_id_hi,
950 uint32_t display_id_lo,
951 int32_t x,
952 int32_t y,
953 int32_t width,
954 int32_t height,
955 uint32_t bounds_change_reason);
956 /**
957 * Notifies that a drag to move/resize started.
958 *
959 * Notifies a client that the compositor started drag operation.
960 * "direction" specifies which direction it is being resized.
961 * "none" direction means just move but not resize.
962 *
963 * This will be followed by series of the "bounds_changed" event
964 * with "drag_resize" or "drag_move" reasons to update the window
965 * bounds druing the drag operation.
966 */
967 void (*drag_started)(void *data,
968 struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
969 uint32_t direction);
970 /**
971 * Notifies that a drag operation has finished.
972 *
973 * Called when the drag operation is finished. "x" and "y"
974 * specifies the position of the pointer device used to drag.
975 * "canceled" is true if the drag operation is aborted during drag
976 * (e.g. by capture change or user action.)
977 * @param canceled true if the operation was canceled
978 */
979 void (*drag_finished)(void *data,
980 struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
981 int32_t x,
982 int32_t y,
983 int32_t canceled);
984 /**
985 * change zoom level
986 *
987 * Request application zoom level change.
988 */
989 void (*change_zoom_level)(void *data,
990 struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
991 int32_t change);
992 /**
993 * The compositor requested to change the bounds
994 *
995 * The compositor requested to change its bounds.
996 * "bounds_change_reason" specifies the cause of the bounds change.
997 * The client may apply the different move/resize strategy
998 * depending on the reason.
999 *
1000 * The "output" specifies the wayland output in which the suface
1001 * should live.
1002 *
1003 * The client responds with set_bounds_in_output request, with the
1004 * bounds it is resized to (this may be different from the bounds
1005 * requested).
1006 *
1007 * The client may ignore move request depending on the state, e.g,
1008 * if it becomes resizable or other constrants.
1009 */
1010 void (*bounds_changed_in_output)(void *data,
1011 struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
1012 struct wl_output *output,
1013 int32_t x,
1014 int32_t y,
1015 int32_t width,
1016 int32_t height,
1017 uint32_t bounds_change_reason);
1018 };
1019
1020 /**
1021 * @ingroup iface_zcr_remote_surface_v2
1022 */
1023 static inline int
zcr_remote_surface_v2_add_listener(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,const struct zcr_remote_surface_v2_listener * listener,void * data)1024 zcr_remote_surface_v2_add_listener(struct zcr_remote_surface_v2 *zcr_remote_surface_v2,
1025 const struct zcr_remote_surface_v2_listener *listener, void *data)
1026 {
1027 return wl_proxy_add_listener((struct wl_proxy *) zcr_remote_surface_v2,
1028 (void (**)(void)) listener, data);
1029 }
1030
1031 #define ZCR_REMOTE_SURFACE_V2_DESTROY 0
1032 #define ZCR_REMOTE_SURFACE_V2_SET_APP_ID 1
1033 #define ZCR_REMOTE_SURFACE_V2_SET_TITLE 2
1034 #define ZCR_REMOTE_SURFACE_V2_SET_TOP_INSET 3
1035 #define ZCR_REMOTE_SURFACE_V2_MAXIMIZE 4
1036 #define ZCR_REMOTE_SURFACE_V2_MINIMIZE 5
1037 #define ZCR_REMOTE_SURFACE_V2_RESTORE 6
1038 #define ZCR_REMOTE_SURFACE_V2_FULLSCREEN 7
1039 #define ZCR_REMOTE_SURFACE_V2_PIN 8
1040 #define ZCR_REMOTE_SURFACE_V2_UNPIN 9
1041 #define ZCR_REMOTE_SURFACE_V2_SET_SYSTEM_MODAL 10
1042 #define ZCR_REMOTE_SURFACE_V2_UNSET_SYSTEM_MODAL 11
1043 #define ZCR_REMOTE_SURFACE_V2_SET_RECTANGULAR_SURFACE_SHADOW 12
1044 #define ZCR_REMOTE_SURFACE_V2_SET_SYSTEMUI_VISIBILITY 13
1045 #define ZCR_REMOTE_SURFACE_V2_SET_ALWAYS_ON_TOP 14
1046 #define ZCR_REMOTE_SURFACE_V2_UNSET_ALWAYS_ON_TOP 15
1047 #define ZCR_REMOTE_SURFACE_V2_SET_ORIENTATION 16
1048 #define ZCR_REMOTE_SURFACE_V2_START_MOVE 17
1049 #define ZCR_REMOTE_SURFACE_V2_SET_CAN_MAXIMIZE 18
1050 #define ZCR_REMOTE_SURFACE_V2_UNSET_CAN_MAXIMIZE 19
1051 #define ZCR_REMOTE_SURFACE_V2_SET_MIN_SIZE 20
1052 #define ZCR_REMOTE_SURFACE_V2_SET_MAX_SIZE 21
1053 #define ZCR_REMOTE_SURFACE_V2_SET_SNAPPED_TO_LEFT 22
1054 #define ZCR_REMOTE_SURFACE_V2_SET_SNAPPED_TO_RIGHT 23
1055 #define ZCR_REMOTE_SURFACE_V2_START_RESIZE 24
1056 #define ZCR_REMOTE_SURFACE_V2_SET_FRAME 25
1057 #define ZCR_REMOTE_SURFACE_V2_SET_FRAME_BUTTONS 26
1058 #define ZCR_REMOTE_SURFACE_V2_SET_EXTRA_TITLE 27
1059 #define ZCR_REMOTE_SURFACE_V2_SET_ORIENTATION_LOCK 28
1060 #define ZCR_REMOTE_SURFACE_V2_PIP 29
1061 #define ZCR_REMOTE_SURFACE_V2_SET_ASPECT_RATIO 30
1062 #define ZCR_REMOTE_SURFACE_V2_SET_ACCESSIBILITY_ID 31
1063 #define ZCR_REMOTE_SURFACE_V2_SET_PIP_ORIGINAL_WINDOW 32
1064 #define ZCR_REMOTE_SURFACE_V2_UNSET_PIP_ORIGINAL_WINDOW 33
1065 #define ZCR_REMOTE_SURFACE_V2_SET_SYSTEM_GESTURE_EXCLUSION 34
1066 #define ZCR_REMOTE_SURFACE_V2_SET_RESIZE_LOCK 35
1067 #define ZCR_REMOTE_SURFACE_V2_UNSET_RESIZE_LOCK 36
1068 #define ZCR_REMOTE_SURFACE_V2_SET_BOUNDS_IN_OUTPUT 37
1069 #define ZCR_REMOTE_SURFACE_V2_SET_RESIZE_LOCK_TYPE 38
1070 #define ZCR_REMOTE_SURFACE_V2_SET_FLOAT 39
1071 #define ZCR_REMOTE_SURFACE_V2_SET_SCALE_FACTOR 40
1072 #define ZCR_REMOTE_SURFACE_V2_SET_WINDOW_CORNER_RADII 41
1073 #define ZCR_REMOTE_SURFACE_V2_SET_SHADOW_CORNER_RADII 42
1074
1075 /**
1076 * @ingroup iface_zcr_remote_surface_v2
1077 */
1078 #define ZCR_REMOTE_SURFACE_V2_CLOSE_SINCE_VERSION 1
1079 /**
1080 * @ingroup iface_zcr_remote_surface_v2
1081 */
1082 #define ZCR_REMOTE_SURFACE_V2_STATE_TYPE_CHANGED_SINCE_VERSION 1
1083 /**
1084 * @ingroup iface_zcr_remote_surface_v2
1085 */
1086 #define ZCR_REMOTE_SURFACE_V2_WINDOW_GEOMETRY_CHANGED_SINCE_VERSION 1
1087 /**
1088 * @ingroup iface_zcr_remote_surface_v2
1089 */
1090 #define ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGED_SINCE_VERSION 1
1091 /**
1092 * @ingroup iface_zcr_remote_surface_v2
1093 */
1094 #define ZCR_REMOTE_SURFACE_V2_DRAG_STARTED_SINCE_VERSION 1
1095 /**
1096 * @ingroup iface_zcr_remote_surface_v2
1097 */
1098 #define ZCR_REMOTE_SURFACE_V2_DRAG_FINISHED_SINCE_VERSION 1
1099 /**
1100 * @ingroup iface_zcr_remote_surface_v2
1101 */
1102 #define ZCR_REMOTE_SURFACE_V2_CHANGE_ZOOM_LEVEL_SINCE_VERSION 1
1103 /**
1104 * @ingroup iface_zcr_remote_surface_v2
1105 */
1106 #define ZCR_REMOTE_SURFACE_V2_BOUNDS_CHANGED_IN_OUTPUT_SINCE_VERSION 1
1107
1108 /**
1109 * @ingroup iface_zcr_remote_surface_v2
1110 */
1111 #define ZCR_REMOTE_SURFACE_V2_DESTROY_SINCE_VERSION 1
1112 /**
1113 * @ingroup iface_zcr_remote_surface_v2
1114 */
1115 #define ZCR_REMOTE_SURFACE_V2_SET_APP_ID_SINCE_VERSION 1
1116 /**
1117 * @ingroup iface_zcr_remote_surface_v2
1118 */
1119 #define ZCR_REMOTE_SURFACE_V2_SET_TITLE_SINCE_VERSION 1
1120 /**
1121 * @ingroup iface_zcr_remote_surface_v2
1122 */
1123 #define ZCR_REMOTE_SURFACE_V2_SET_TOP_INSET_SINCE_VERSION 1
1124 /**
1125 * @ingroup iface_zcr_remote_surface_v2
1126 */
1127 #define ZCR_REMOTE_SURFACE_V2_MAXIMIZE_SINCE_VERSION 1
1128 /**
1129 * @ingroup iface_zcr_remote_surface_v2
1130 */
1131 #define ZCR_REMOTE_SURFACE_V2_MINIMIZE_SINCE_VERSION 1
1132 /**
1133 * @ingroup iface_zcr_remote_surface_v2
1134 */
1135 #define ZCR_REMOTE_SURFACE_V2_RESTORE_SINCE_VERSION 1
1136 /**
1137 * @ingroup iface_zcr_remote_surface_v2
1138 */
1139 #define ZCR_REMOTE_SURFACE_V2_FULLSCREEN_SINCE_VERSION 1
1140 /**
1141 * @ingroup iface_zcr_remote_surface_v2
1142 */
1143 #define ZCR_REMOTE_SURFACE_V2_PIN_SINCE_VERSION 1
1144 /**
1145 * @ingroup iface_zcr_remote_surface_v2
1146 */
1147 #define ZCR_REMOTE_SURFACE_V2_UNPIN_SINCE_VERSION 1
1148 /**
1149 * @ingroup iface_zcr_remote_surface_v2
1150 */
1151 #define ZCR_REMOTE_SURFACE_V2_SET_SYSTEM_MODAL_SINCE_VERSION 1
1152 /**
1153 * @ingroup iface_zcr_remote_surface_v2
1154 */
1155 #define ZCR_REMOTE_SURFACE_V2_UNSET_SYSTEM_MODAL_SINCE_VERSION 1
1156 /**
1157 * @ingroup iface_zcr_remote_surface_v2
1158 */
1159 #define ZCR_REMOTE_SURFACE_V2_SET_RECTANGULAR_SURFACE_SHADOW_SINCE_VERSION 1
1160 /**
1161 * @ingroup iface_zcr_remote_surface_v2
1162 */
1163 #define ZCR_REMOTE_SURFACE_V2_SET_SYSTEMUI_VISIBILITY_SINCE_VERSION 1
1164 /**
1165 * @ingroup iface_zcr_remote_surface_v2
1166 */
1167 #define ZCR_REMOTE_SURFACE_V2_SET_ALWAYS_ON_TOP_SINCE_VERSION 1
1168 /**
1169 * @ingroup iface_zcr_remote_surface_v2
1170 */
1171 #define ZCR_REMOTE_SURFACE_V2_UNSET_ALWAYS_ON_TOP_SINCE_VERSION 1
1172 /**
1173 * @ingroup iface_zcr_remote_surface_v2
1174 */
1175 #define ZCR_REMOTE_SURFACE_V2_SET_ORIENTATION_SINCE_VERSION 1
1176 /**
1177 * @ingroup iface_zcr_remote_surface_v2
1178 */
1179 #define ZCR_REMOTE_SURFACE_V2_START_MOVE_SINCE_VERSION 1
1180 /**
1181 * @ingroup iface_zcr_remote_surface_v2
1182 */
1183 #define ZCR_REMOTE_SURFACE_V2_SET_CAN_MAXIMIZE_SINCE_VERSION 1
1184 /**
1185 * @ingroup iface_zcr_remote_surface_v2
1186 */
1187 #define ZCR_REMOTE_SURFACE_V2_UNSET_CAN_MAXIMIZE_SINCE_VERSION 1
1188 /**
1189 * @ingroup iface_zcr_remote_surface_v2
1190 */
1191 #define ZCR_REMOTE_SURFACE_V2_SET_MIN_SIZE_SINCE_VERSION 1
1192 /**
1193 * @ingroup iface_zcr_remote_surface_v2
1194 */
1195 #define ZCR_REMOTE_SURFACE_V2_SET_MAX_SIZE_SINCE_VERSION 1
1196 /**
1197 * @ingroup iface_zcr_remote_surface_v2
1198 */
1199 #define ZCR_REMOTE_SURFACE_V2_SET_SNAPPED_TO_LEFT_SINCE_VERSION 1
1200 /**
1201 * @ingroup iface_zcr_remote_surface_v2
1202 */
1203 #define ZCR_REMOTE_SURFACE_V2_SET_SNAPPED_TO_RIGHT_SINCE_VERSION 1
1204 /**
1205 * @ingroup iface_zcr_remote_surface_v2
1206 */
1207 #define ZCR_REMOTE_SURFACE_V2_START_RESIZE_SINCE_VERSION 1
1208 /**
1209 * @ingroup iface_zcr_remote_surface_v2
1210 */
1211 #define ZCR_REMOTE_SURFACE_V2_SET_FRAME_SINCE_VERSION 1
1212 /**
1213 * @ingroup iface_zcr_remote_surface_v2
1214 */
1215 #define ZCR_REMOTE_SURFACE_V2_SET_FRAME_BUTTONS_SINCE_VERSION 1
1216 /**
1217 * @ingroup iface_zcr_remote_surface_v2
1218 */
1219 #define ZCR_REMOTE_SURFACE_V2_SET_EXTRA_TITLE_SINCE_VERSION 1
1220 /**
1221 * @ingroup iface_zcr_remote_surface_v2
1222 */
1223 #define ZCR_REMOTE_SURFACE_V2_SET_ORIENTATION_LOCK_SINCE_VERSION 1
1224 /**
1225 * @ingroup iface_zcr_remote_surface_v2
1226 */
1227 #define ZCR_REMOTE_SURFACE_V2_PIP_SINCE_VERSION 1
1228 /**
1229 * @ingroup iface_zcr_remote_surface_v2
1230 */
1231 #define ZCR_REMOTE_SURFACE_V2_SET_ASPECT_RATIO_SINCE_VERSION 1
1232 /**
1233 * @ingroup iface_zcr_remote_surface_v2
1234 */
1235 #define ZCR_REMOTE_SURFACE_V2_SET_ACCESSIBILITY_ID_SINCE_VERSION 1
1236 /**
1237 * @ingroup iface_zcr_remote_surface_v2
1238 */
1239 #define ZCR_REMOTE_SURFACE_V2_SET_PIP_ORIGINAL_WINDOW_SINCE_VERSION 1
1240 /**
1241 * @ingroup iface_zcr_remote_surface_v2
1242 */
1243 #define ZCR_REMOTE_SURFACE_V2_UNSET_PIP_ORIGINAL_WINDOW_SINCE_VERSION 1
1244 /**
1245 * @ingroup iface_zcr_remote_surface_v2
1246 */
1247 #define ZCR_REMOTE_SURFACE_V2_SET_SYSTEM_GESTURE_EXCLUSION_SINCE_VERSION 1
1248 /**
1249 * @ingroup iface_zcr_remote_surface_v2
1250 */
1251 #define ZCR_REMOTE_SURFACE_V2_SET_RESIZE_LOCK_SINCE_VERSION 1
1252 /**
1253 * @ingroup iface_zcr_remote_surface_v2
1254 */
1255 #define ZCR_REMOTE_SURFACE_V2_UNSET_RESIZE_LOCK_SINCE_VERSION 1
1256 /**
1257 * @ingroup iface_zcr_remote_surface_v2
1258 */
1259 #define ZCR_REMOTE_SURFACE_V2_SET_BOUNDS_IN_OUTPUT_SINCE_VERSION 1
1260 /**
1261 * @ingroup iface_zcr_remote_surface_v2
1262 */
1263 #define ZCR_REMOTE_SURFACE_V2_SET_RESIZE_LOCK_TYPE_SINCE_VERSION 2
1264 /**
1265 * @ingroup iface_zcr_remote_surface_v2
1266 */
1267 #define ZCR_REMOTE_SURFACE_V2_SET_FLOAT_SINCE_VERSION 3
1268 /**
1269 * @ingroup iface_zcr_remote_surface_v2
1270 */
1271 #define ZCR_REMOTE_SURFACE_V2_SET_SCALE_FACTOR_SINCE_VERSION 4
1272 /**
1273 * @ingroup iface_zcr_remote_surface_v2
1274 */
1275 #define ZCR_REMOTE_SURFACE_V2_SET_WINDOW_CORNER_RADII_SINCE_VERSION 5
1276 /**
1277 * @ingroup iface_zcr_remote_surface_v2
1278 */
1279 #define ZCR_REMOTE_SURFACE_V2_SET_SHADOW_CORNER_RADII_SINCE_VERSION 6
1280
1281 /** @ingroup iface_zcr_remote_surface_v2 */
1282 static inline void
zcr_remote_surface_v2_set_user_data(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,void * user_data)1283 zcr_remote_surface_v2_set_user_data(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, void *user_data)
1284 {
1285 wl_proxy_set_user_data((struct wl_proxy *) zcr_remote_surface_v2, user_data);
1286 }
1287
1288 /** @ingroup iface_zcr_remote_surface_v2 */
1289 static inline void *
zcr_remote_surface_v2_get_user_data(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1290 zcr_remote_surface_v2_get_user_data(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1291 {
1292 return wl_proxy_get_user_data((struct wl_proxy *) zcr_remote_surface_v2);
1293 }
1294
1295 static inline uint32_t
zcr_remote_surface_v2_get_version(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1296 zcr_remote_surface_v2_get_version(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1297 {
1298 return wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2);
1299 }
1300
1301 /**
1302 * @ingroup iface_zcr_remote_surface_v2
1303 *
1304 * Unmap and destroy the window. The window will be effectively
1305 * hidden from the user's point of view, and all state will be lost.
1306 */
1307 static inline void
zcr_remote_surface_v2_destroy(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1308 zcr_remote_surface_v2_destroy(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1309 {
1310 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1311 ZCR_REMOTE_SURFACE_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), WL_MARSHAL_FLAG_DESTROY);
1312 }
1313
1314 /**
1315 * @ingroup iface_zcr_remote_surface_v2
1316 *
1317 * Set an application identifier for the surface.
1318 */
1319 static inline void
zcr_remote_surface_v2_set_app_id(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,const char * app_id)1320 zcr_remote_surface_v2_set_app_id(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, const char *app_id)
1321 {
1322 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1323 ZCR_REMOTE_SURFACE_V2_SET_APP_ID, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, app_id);
1324 }
1325
1326 /**
1327 * @ingroup iface_zcr_remote_surface_v2
1328 *
1329 * Set a short title for the surface.
1330 *
1331 * This string may be used to identify the surface in a task bar,
1332 * window list, or other user interface elements provided by the
1333 * compositor.
1334 *
1335 * The string must be encoded in UTF-8.
1336 */
1337 static inline void
zcr_remote_surface_v2_set_title(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,const char * title)1338 zcr_remote_surface_v2_set_title(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, const char *title)
1339 {
1340 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1341 ZCR_REMOTE_SURFACE_V2_SET_TITLE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, title);
1342 }
1343
1344 /**
1345 * @ingroup iface_zcr_remote_surface_v2
1346 *
1347 * Set distance from the top of the surface to the contents.
1348 *
1349 * This distance typically represents the size of the window caption.
1350 */
1351 static inline void
zcr_remote_surface_v2_set_top_inset(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t height)1352 zcr_remote_surface_v2_set_top_inset(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t height)
1353 {
1354 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1355 ZCR_REMOTE_SURFACE_V2_SET_TOP_INSET, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, height);
1356 }
1357
1358 /**
1359 * @ingroup iface_zcr_remote_surface_v2
1360 *
1361 * Request that surface is maximized. The window geometry will be updated
1362 * to whatever the compositor finds appropriate for a maximized window.
1363 *
1364 * This is only a request that the window should be maximized. The
1365 * compositor may choose to ignore this request. The client should
1366 * listen to state_type_changed events to determine if the window was
1367 * maximized or not.
1368 */
1369 static inline void
zcr_remote_surface_v2_maximize(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1370 zcr_remote_surface_v2_maximize(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1371 {
1372 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1373 ZCR_REMOTE_SURFACE_V2_MAXIMIZE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1374 }
1375
1376 /**
1377 * @ingroup iface_zcr_remote_surface_v2
1378 *
1379 * Request that surface is minimized.
1380 *
1381 * This is only a request that the window should be minimized. The
1382 * compositor may choose to ignore this request. The client should
1383 * listen to state_type_changed events to determine if the window was
1384 * minimized or not.
1385 */
1386 static inline void
zcr_remote_surface_v2_minimize(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1387 zcr_remote_surface_v2_minimize(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1388 {
1389 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1390 ZCR_REMOTE_SURFACE_V2_MINIMIZE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1391 }
1392
1393 /**
1394 * @ingroup iface_zcr_remote_surface_v2
1395 *
1396 * Request that surface is restored. This restores the window geometry
1397 * to what it was before the window was minimized, maximized or made
1398 * fullscreen.
1399 *
1400 * This is only a request that the window should be restored. The
1401 * compositor may choose to ignore this request. The client should
1402 * listen to state_type_changed events to determine if the window was restored
1403 * or not.
1404 */
1405 static inline void
zcr_remote_surface_v2_restore(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1406 zcr_remote_surface_v2_restore(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1407 {
1408 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1409 ZCR_REMOTE_SURFACE_V2_RESTORE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1410 }
1411
1412 /**
1413 * @ingroup iface_zcr_remote_surface_v2
1414 *
1415 * Request that surface is made fullscreen.
1416 *
1417 * This is only a request that the window should be made fullscreen.
1418 * The compositor may choose to ignore this request. The client should
1419 * listen to set_fullscreen events to determine if the window was
1420 * made fullscreen or not.
1421 */
1422 static inline void
zcr_remote_surface_v2_fullscreen(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1423 zcr_remote_surface_v2_fullscreen(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1424 {
1425 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1426 ZCR_REMOTE_SURFACE_V2_FULLSCREEN, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1427 }
1428
1429 /**
1430 * @ingroup iface_zcr_remote_surface_v2
1431 *
1432 * Request that surface is pinned.
1433 *
1434 * This is only a request that the window should be pinned.
1435 * The compositor may choose to ignore this request. The client should
1436 * listen to state_type_changed events to determine if the window was
1437 * pinned or not. If trusted flag is non-zero, the app can prevent users
1438 * from exiting the pinned mode.
1439 */
1440 static inline void
zcr_remote_surface_v2_pin(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t trusted)1441 zcr_remote_surface_v2_pin(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t trusted)
1442 {
1443 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1444 ZCR_REMOTE_SURFACE_V2_PIN, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, trusted);
1445 }
1446
1447 /**
1448 * @ingroup iface_zcr_remote_surface_v2
1449 *
1450 * Request that surface is unpinned.
1451 *
1452 * This is only a request that the window should be unpinned.
1453 * The compositor may choose to ignore this request. The client should
1454 * listen to state_type_changed events to determine if the window was
1455 * unpinned or not.
1456 */
1457 static inline void
zcr_remote_surface_v2_unpin(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1458 zcr_remote_surface_v2_unpin(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1459 {
1460 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1461 ZCR_REMOTE_SURFACE_V2_UNPIN, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1462 }
1463
1464 /**
1465 * @ingroup iface_zcr_remote_surface_v2
1466 *
1467 * Suggests a surface should become system modal.
1468 */
1469 static inline void
zcr_remote_surface_v2_set_system_modal(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1470 zcr_remote_surface_v2_set_system_modal(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1471 {
1472 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1473 ZCR_REMOTE_SURFACE_V2_SET_SYSTEM_MODAL, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1474 }
1475
1476 /**
1477 * @ingroup iface_zcr_remote_surface_v2
1478 *
1479 * Suggests a surface should become non system modal.
1480 */
1481 static inline void
zcr_remote_surface_v2_unset_system_modal(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1482 zcr_remote_surface_v2_unset_system_modal(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1483 {
1484 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1485 ZCR_REMOTE_SURFACE_V2_UNSET_SYSTEM_MODAL, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1486 }
1487
1488 /**
1489 * @ingroup iface_zcr_remote_surface_v2
1490 *
1491 * Request that surface needs a rectangular shadow.
1492 *
1493 * This is only a request that the surface should have a rectangular
1494 * shadow. The compositor may choose to ignore this request.
1495 *
1496 * The arguments are given in the remote surface coordinate space and
1497 * specifies inner bounds of the shadow. Specifying zero width and height
1498 * will disable the shadow.
1499 */
1500 static inline void
zcr_remote_surface_v2_set_rectangular_surface_shadow(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t x,int32_t y,int32_t width,int32_t height)1501 zcr_remote_surface_v2_set_rectangular_surface_shadow(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t x, int32_t y, int32_t width, int32_t height)
1502 {
1503 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1504 ZCR_REMOTE_SURFACE_V2_SET_RECTANGULAR_SURFACE_SHADOW, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, x, y, width, height);
1505 }
1506
1507 /**
1508 * @ingroup iface_zcr_remote_surface_v2
1509 *
1510 * Requests how the surface will change the visibility of the system UI when it is made active.
1511 */
1512 static inline void
zcr_remote_surface_v2_set_systemui_visibility(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t visibility)1513 zcr_remote_surface_v2_set_systemui_visibility(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t visibility)
1514 {
1515 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1516 ZCR_REMOTE_SURFACE_V2_SET_SYSTEMUI_VISIBILITY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, visibility);
1517 }
1518
1519 /**
1520 * @ingroup iface_zcr_remote_surface_v2
1521 *
1522 * Request that surface is made to be always on top.
1523 *
1524 * This is only a request that the window should be always on top.
1525 * The compositor may choose to ignore this request.
1526 *
1527 */
1528 static inline void
zcr_remote_surface_v2_set_always_on_top(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1529 zcr_remote_surface_v2_set_always_on_top(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1530 {
1531 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1532 ZCR_REMOTE_SURFACE_V2_SET_ALWAYS_ON_TOP, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1533 }
1534
1535 /**
1536 * @ingroup iface_zcr_remote_surface_v2
1537 *
1538 * Request that surface is made to be not always on top.
1539 *
1540 * This is only a request that the window should be not always on top.
1541 * The compositor may choose to ignore this request.
1542 */
1543 static inline void
zcr_remote_surface_v2_unset_always_on_top(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1544 zcr_remote_surface_v2_unset_always_on_top(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1545 {
1546 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1547 ZCR_REMOTE_SURFACE_V2_UNSET_ALWAYS_ON_TOP, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1548 }
1549
1550 /**
1551 * @ingroup iface_zcr_remote_surface_v2
1552 *
1553 * Set an orientation for the surface.
1554 */
1555 static inline void
zcr_remote_surface_v2_set_orientation(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t orientation)1556 zcr_remote_surface_v2_set_orientation(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t orientation)
1557 {
1558 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1559 ZCR_REMOTE_SURFACE_V2_SET_ORIENTATION, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, orientation);
1560 }
1561
1562 /**
1563 * @ingroup iface_zcr_remote_surface_v2
1564 *
1565 * Request an interactive, user-driven move of the surface. "x"
1566 * and "y" specifies the starting point of the pointer device
1567 * that initiated the move.
1568 *
1569 * The compositor responds to this request with a drag_started
1570 * event with "none" direction. Please see drag_started event
1571 * for more details.
1572 *
1573 * The compositor may ignore move requests depending on the state of the
1574 * surface, e.g. fullscreen or maximized.
1575 */
1576 static inline void
zcr_remote_surface_v2_start_move(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t x,int32_t y)1577 zcr_remote_surface_v2_start_move(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t x, int32_t y)
1578 {
1579 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1580 ZCR_REMOTE_SURFACE_V2_START_MOVE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, x, y);
1581 }
1582
1583 /**
1584 * @ingroup iface_zcr_remote_surface_v2
1585 *
1586 * Request that surface can be in maximzied state.
1587 */
1588 static inline void
zcr_remote_surface_v2_set_can_maximize(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1589 zcr_remote_surface_v2_set_can_maximize(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1590 {
1591 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1592 ZCR_REMOTE_SURFACE_V2_SET_CAN_MAXIMIZE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1593 }
1594
1595 /**
1596 * @ingroup iface_zcr_remote_surface_v2
1597 *
1598 * Request that surface can not be in maximzied state.
1599 */
1600 static inline void
zcr_remote_surface_v2_unset_can_maximize(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1601 zcr_remote_surface_v2_unset_can_maximize(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1602 {
1603 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1604 ZCR_REMOTE_SURFACE_V2_UNSET_CAN_MAXIMIZE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1605 }
1606
1607 /**
1608 * @ingroup iface_zcr_remote_surface_v2
1609 *
1610 * Set a minimum size of the surface.
1611 *
1612 * Values set in this way are double-buffered. They will get
1613 * applied on the next commit.
1614 */
1615 static inline void
zcr_remote_surface_v2_set_min_size(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t width,int32_t height)1616 zcr_remote_surface_v2_set_min_size(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t width, int32_t height)
1617 {
1618 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1619 ZCR_REMOTE_SURFACE_V2_SET_MIN_SIZE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, width, height);
1620 }
1621
1622 /**
1623 * @ingroup iface_zcr_remote_surface_v2
1624 *
1625 * Set a maximum size of the surface.
1626 *
1627 * Values set in this way are double-buffered. They will get
1628 * applied on the next commit.
1629 *
1630 * Setting the same size as minimum size makes the surface
1631 * unresizable.
1632 */
1633 static inline void
zcr_remote_surface_v2_set_max_size(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t width,int32_t height)1634 zcr_remote_surface_v2_set_max_size(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t width, int32_t height)
1635 {
1636 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1637 ZCR_REMOTE_SURFACE_V2_SET_MAX_SIZE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, width, height);
1638 }
1639
1640 /**
1641 * @ingroup iface_zcr_remote_surface_v2
1642 *
1643 * Request that surface is snapped to left.
1644 */
1645 static inline void
zcr_remote_surface_v2_set_snapped_to_left(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1646 zcr_remote_surface_v2_set_snapped_to_left(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1647 {
1648 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1649 ZCR_REMOTE_SURFACE_V2_SET_SNAPPED_TO_LEFT, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1650 }
1651
1652 /**
1653 * @ingroup iface_zcr_remote_surface_v2
1654 *
1655 * Request that surface is snapped to right.
1656 */
1657 static inline void
zcr_remote_surface_v2_set_snapped_to_right(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1658 zcr_remote_surface_v2_set_snapped_to_right(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1659 {
1660 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1661 ZCR_REMOTE_SURFACE_V2_SET_SNAPPED_TO_RIGHT, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1662 }
1663
1664 /**
1665 * @ingroup iface_zcr_remote_surface_v2
1666 *
1667 * Request to start an interactive, user-driven resize of the surface.
1668 * "x" and "y" specifies the starting point of the pointer device
1669 * that initiated the reize.
1670 *
1671 * The compositor responds to this request with a "drag_started"
1672 * event, followed by "bounds_changed" events, and ends the
1673 * resize operation with a "drag_finhsed" event. The compositor
1674 * determines the new bounds using the resize_direction and the
1675 * pointer event location.
1676 *
1677 * The compositor may ignore resize requests depending on the state of the
1678 * surface, e.g. fullscreen or maximized, or no drag event is in pregress.
1679 */
1680 static inline void
zcr_remote_surface_v2_start_resize(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t resize_direction,int32_t x,int32_t y)1681 zcr_remote_surface_v2_start_resize(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t resize_direction, int32_t x, int32_t y)
1682 {
1683 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1684 ZCR_REMOTE_SURFACE_V2_START_RESIZE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, resize_direction, x, y);
1685 }
1686
1687 /**
1688 * @ingroup iface_zcr_remote_surface_v2
1689 *
1690 * Enables compositor side frame decoration. |type|
1691 * specifies the type of frame to use for the surface.
1692 */
1693 static inline void
zcr_remote_surface_v2_set_frame(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t type)1694 zcr_remote_surface_v2_set_frame(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t type)
1695 {
1696 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1697 ZCR_REMOTE_SURFACE_V2_SET_FRAME, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, type);
1698 }
1699
1700 /**
1701 * @ingroup iface_zcr_remote_surface_v2
1702 *
1703 * Updates the frame's button state. |visible_buttons| and |enabled_buttons|
1704 * are the union of button mask defined in |frame_button_type| enum.
1705 *
1706 * The mask present in |enabled_buttons| but not in |visible_buttons| will
1707 * be ignored.
1708 */
1709 static inline void
zcr_remote_surface_v2_set_frame_buttons(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t visible_buttons,uint32_t enabled_buttons)1710 zcr_remote_surface_v2_set_frame_buttons(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t visible_buttons, uint32_t enabled_buttons)
1711 {
1712 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1713 ZCR_REMOTE_SURFACE_V2_SET_FRAME_BUTTONS, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, visible_buttons, enabled_buttons);
1714 }
1715
1716 /**
1717 * @ingroup iface_zcr_remote_surface_v2
1718 *
1719 * The extra informational string about the surface. This can be
1720 * used to show the debug information in the title bar, or log
1721 * messages.
1722 *
1723 * This is different from "set_title" which is used to identify
1724 * the surface.
1725 *
1726 * The string must be encoded in UTF-8.
1727 */
1728 static inline void
zcr_remote_surface_v2_set_extra_title(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,const char * extra_title)1729 zcr_remote_surface_v2_set_extra_title(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, const char *extra_title)
1730 {
1731 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1732 ZCR_REMOTE_SURFACE_V2_SET_EXTRA_TITLE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, extra_title);
1733 }
1734
1735 /**
1736 * @ingroup iface_zcr_remote_surface_v2
1737 *
1738 * Request a specific orientation behavior when this surface is in foreground.
1739 */
1740 static inline void
zcr_remote_surface_v2_set_orientation_lock(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t orientation_lock)1741 zcr_remote_surface_v2_set_orientation_lock(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t orientation_lock)
1742 {
1743 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1744 ZCR_REMOTE_SURFACE_V2_SET_ORIENTATION_LOCK, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, orientation_lock);
1745 }
1746
1747 /**
1748 * @ingroup iface_zcr_remote_surface_v2
1749 *
1750 * Request that surface is set to Picture-in-Picture (PIP).
1751 */
1752 static inline void
zcr_remote_surface_v2_pip(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1753 zcr_remote_surface_v2_pip(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1754 {
1755 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1756 ZCR_REMOTE_SURFACE_V2_PIP, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1757 }
1758
1759 /**
1760 * @ingroup iface_zcr_remote_surface_v2
1761 *
1762 * Set an aspect ratio of the surface.
1763 *
1764 * Values set in this way are double-buffered. They will get
1765 * applied on the next commit.
1766 *
1767 * The ratio of the values is used for the ratio of width to height of the
1768 * surface. The size of surface is restricted to the ratio. If any value is
1769 * zero, the restriction on aspect ratio is unset.
1770 */
1771 static inline void
zcr_remote_surface_v2_set_aspect_ratio(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t width,int32_t height)1772 zcr_remote_surface_v2_set_aspect_ratio(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t width, int32_t height)
1773 {
1774 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1775 ZCR_REMOTE_SURFACE_V2_SET_ASPECT_RATIO, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, width, height);
1776 }
1777
1778 /**
1779 * @ingroup iface_zcr_remote_surface_v2
1780 *
1781 * [Deprecated] Use zaura_surface's set_accessibility_id instead.
1782 *
1783 * Set accessibility window ID to the surface. A negative number removes
1784 * the existing accessibility ID from the surface.
1785 */
1786 static inline void
zcr_remote_surface_v2_set_accessibility_id(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,int32_t id)1787 zcr_remote_surface_v2_set_accessibility_id(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, int32_t id)
1788 {
1789 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1790 ZCR_REMOTE_SURFACE_V2_SET_ACCESSIBILITY_ID, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, id);
1791 }
1792
1793 /**
1794 * @ingroup iface_zcr_remote_surface_v2
1795 *
1796 * Set this surface the original window for the current PIP window.
1797 */
1798 static inline void
zcr_remote_surface_v2_set_pip_original_window(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1799 zcr_remote_surface_v2_set_pip_original_window(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1800 {
1801 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1802 ZCR_REMOTE_SURFACE_V2_SET_PIP_ORIGINAL_WINDOW, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1803 }
1804
1805 /**
1806 * @ingroup iface_zcr_remote_surface_v2
1807 *
1808 * Unset this surface the original window for the current PIP window.
1809 */
1810 static inline void
zcr_remote_surface_v2_unset_pip_original_window(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1811 zcr_remote_surface_v2_unset_pip_original_window(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1812 {
1813 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1814 ZCR_REMOTE_SURFACE_V2_UNSET_PIP_ORIGINAL_WINDOW, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1815 }
1816
1817 /**
1818 * @ingroup iface_zcr_remote_surface_v2
1819 *
1820 * Set system gesture exclusion region in which system gestures e.g. back
1821 * gesture should not be triggered.
1822 */
1823 static inline void
zcr_remote_surface_v2_set_system_gesture_exclusion(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,struct wl_region * region)1824 zcr_remote_surface_v2_set_system_gesture_exclusion(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, struct wl_region *region)
1825 {
1826 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1827 ZCR_REMOTE_SURFACE_V2_SET_SYSTEM_GESTURE_EXCLUSION, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, region);
1828 }
1829
1830 /**
1831 * @ingroup iface_zcr_remote_surface_v2
1832 *
1833 * [Deprecated] Enable the resize lock and put restrictions related to resizing on
1834 * the shell surface.
1835 *
1836 * The resize lock state is double buffered, and will be applied at the
1837 * time wl_surface.commit of the corresponding wl_surface is called.
1838 */
1839 static inline void
zcr_remote_surface_v2_set_resize_lock(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1840 zcr_remote_surface_v2_set_resize_lock(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1841 {
1842 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1843 ZCR_REMOTE_SURFACE_V2_SET_RESIZE_LOCK, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1844 }
1845
1846 /**
1847 * @ingroup iface_zcr_remote_surface_v2
1848 *
1849 * [Deprecated] Disable the resize lock and allow the shell surface to be resized
1850 * freely.
1851 *
1852 * The resize lock state is double buffered, and will be applied at the
1853 * time wl_surface.commit of the corresponding wl_surface is called.
1854 */
1855 static inline void
zcr_remote_surface_v2_unset_resize_lock(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1856 zcr_remote_surface_v2_unset_resize_lock(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1857 {
1858 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1859 ZCR_REMOTE_SURFACE_V2_UNSET_RESIZE_LOCK, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1860 }
1861
1862 /**
1863 * @ingroup iface_zcr_remote_surface_v2
1864 *
1865 * Set the "visible bounds" of a window from the user's perspective.
1866 * Client-side decorations often have invisible portions like drop shadows
1867 * which should be ignored for the purposes of aligning, placing and
1868 * constraining windows.
1869 *
1870 * The bounds are double buffered, and will be applied at the
1871 * time wl_surface.commit of the corresponding wl_surface is called.
1872 *
1873 * Once the bounds are set, it is not possible to unset them, and they will
1874 * remain the same until set_bounds_in_output is called again, even if a new sub-
1875 * surface or buffer is attached.
1876 *
1877 * If never set, the value is the surface content bounds. This updates
1878 * dynamically on every commit.
1879 *
1880 * The bounds are relative to the given display. If the display is invalid,
1881 * they are assumed to be relative to the primary display.
1882 *
1883 * The width and height must be greater than zero.
1884 */
1885 static inline void
zcr_remote_surface_v2_set_bounds_in_output(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,struct wl_output * output,int32_t x,int32_t y,int32_t width,int32_t height)1886 zcr_remote_surface_v2_set_bounds_in_output(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, struct wl_output *output, int32_t x, int32_t y, int32_t width, int32_t height)
1887 {
1888 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1889 ZCR_REMOTE_SURFACE_V2_SET_BOUNDS_IN_OUTPUT, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, output, x, y, width, height);
1890 }
1891
1892 /**
1893 * @ingroup iface_zcr_remote_surface_v2
1894 *
1895 * Set resize lock type and put restrictions related to resizing on the shell surface.
1896 *
1897 * The resize lock type is double buffered, and will be applied at the
1898 * time wl_surface.commit of the corresponding wl_surface is called.
1899 */
1900 static inline void
zcr_remote_surface_v2_set_resize_lock_type(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t type)1901 zcr_remote_surface_v2_set_resize_lock_type(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t type)
1902 {
1903 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1904 ZCR_REMOTE_SURFACE_V2_SET_RESIZE_LOCK_TYPE, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, type);
1905 }
1906
1907 /**
1908 * @ingroup iface_zcr_remote_surface_v2
1909 *
1910 * Request that surface is floated.
1911 */
1912 static inline void
zcr_remote_surface_v2_set_float(struct zcr_remote_surface_v2 * zcr_remote_surface_v2)1913 zcr_remote_surface_v2_set_float(struct zcr_remote_surface_v2 *zcr_remote_surface_v2)
1914 {
1915 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1916 ZCR_REMOTE_SURFACE_V2_SET_FLOAT, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0);
1917 }
1918
1919 /**
1920 * @ingroup iface_zcr_remote_surface_v2
1921 *
1922 * The client has a 32-bit float scale factor that is associated with each
1923 * remote surface. This scale factor must be propagated exactly to exo. To
1924 * do so we reinterpret_cast into a 32-bit uint and later cast back into a
1925 * float. This is because wayland does not support native transport of
1926 * floats. As different CPU architectures may use different endian
1927 * representations for IEEE 754 floats, this protocol implicitly assumes
1928 * that the caller and receiver are the same machine.
1929 * This is double buffered state and will be applied in the next commit.
1930 */
1931 static inline void
zcr_remote_surface_v2_set_scale_factor(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t scale_factor_as_uint)1932 zcr_remote_surface_v2_set_scale_factor(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t scale_factor_as_uint)
1933 {
1934 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1935 ZCR_REMOTE_SURFACE_V2_SET_SCALE_FACTOR, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, scale_factor_as_uint);
1936 }
1937
1938 /**
1939 * @ingroup iface_zcr_remote_surface_v2
1940 *
1941 * The client specifies the radius of each corner to be applied to the
1942 * window in DPs (device independent pixels).
1943 *
1944 * The window radius is double buffered, and will be applied at the
1945 * time wl_surface.commit of the corresponding wl_surface is called.
1946 *
1947 * Note: Rounded corner radii affects the wl_surface tree, including
1948 * subsurfaces. Once this protocol is called, surfaces cannot set
1949 * their own rounded corner bounds because rounded window bounds will be
1950 * applied to the whole surface tree.
1951 */
1952 static inline void
zcr_remote_surface_v2_set_window_corner_radii(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t upper_left_radius,uint32_t upper_right_radius,uint32_t lower_right_radius,uint32_t lower_left_radius)1953 zcr_remote_surface_v2_set_window_corner_radii(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t upper_left_radius, uint32_t upper_right_radius, uint32_t lower_right_radius, uint32_t lower_left_radius)
1954 {
1955 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1956 ZCR_REMOTE_SURFACE_V2_SET_WINDOW_CORNER_RADII, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, upper_left_radius, upper_right_radius, lower_right_radius, lower_left_radius);
1957 }
1958
1959 /**
1960 * @ingroup iface_zcr_remote_surface_v2
1961 *
1962 * The client specifies the radius of each corner to be applied to the shadow
1963 * associated with the aura toplevel surface in device independent pixels (DPs).
1964 *
1965 * The shadow radius is double buffered, and will be applied at the
1966 * time wl_surface.commit of the corresponding wl_surface is called.
1967 */
1968 static inline void
zcr_remote_surface_v2_set_shadow_corner_radii(struct zcr_remote_surface_v2 * zcr_remote_surface_v2,uint32_t upper_left_radius,uint32_t upper_right_radius,uint32_t lower_right_radius,uint32_t lower_left_radius)1969 zcr_remote_surface_v2_set_shadow_corner_radii(struct zcr_remote_surface_v2 *zcr_remote_surface_v2, uint32_t upper_left_radius, uint32_t upper_right_radius, uint32_t lower_right_radius, uint32_t lower_left_radius)
1970 {
1971 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_surface_v2,
1972 ZCR_REMOTE_SURFACE_V2_SET_SHADOW_CORNER_RADII, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_surface_v2), 0, upper_left_radius, upper_right_radius, lower_right_radius, lower_left_radius);
1973 }
1974
1975 #define ZCR_NOTIFICATION_SURFACE_V2_DESTROY 0
1976 #define ZCR_NOTIFICATION_SURFACE_V2_SET_APP_ID 1
1977
1978
1979 /**
1980 * @ingroup iface_zcr_notification_surface_v2
1981 */
1982 #define ZCR_NOTIFICATION_SURFACE_V2_DESTROY_SINCE_VERSION 1
1983 /**
1984 * @ingroup iface_zcr_notification_surface_v2
1985 */
1986 #define ZCR_NOTIFICATION_SURFACE_V2_SET_APP_ID_SINCE_VERSION 1
1987
1988 /** @ingroup iface_zcr_notification_surface_v2 */
1989 static inline void
zcr_notification_surface_v2_set_user_data(struct zcr_notification_surface_v2 * zcr_notification_surface_v2,void * user_data)1990 zcr_notification_surface_v2_set_user_data(struct zcr_notification_surface_v2 *zcr_notification_surface_v2, void *user_data)
1991 {
1992 wl_proxy_set_user_data((struct wl_proxy *) zcr_notification_surface_v2, user_data);
1993 }
1994
1995 /** @ingroup iface_zcr_notification_surface_v2 */
1996 static inline void *
zcr_notification_surface_v2_get_user_data(struct zcr_notification_surface_v2 * zcr_notification_surface_v2)1997 zcr_notification_surface_v2_get_user_data(struct zcr_notification_surface_v2 *zcr_notification_surface_v2)
1998 {
1999 return wl_proxy_get_user_data((struct wl_proxy *) zcr_notification_surface_v2);
2000 }
2001
2002 static inline uint32_t
zcr_notification_surface_v2_get_version(struct zcr_notification_surface_v2 * zcr_notification_surface_v2)2003 zcr_notification_surface_v2_get_version(struct zcr_notification_surface_v2 *zcr_notification_surface_v2)
2004 {
2005 return wl_proxy_get_version((struct wl_proxy *) zcr_notification_surface_v2);
2006 }
2007
2008 /**
2009 * @ingroup iface_zcr_notification_surface_v2
2010 *
2011 * Unmap and destroy the notification surface.
2012 */
2013 static inline void
zcr_notification_surface_v2_destroy(struct zcr_notification_surface_v2 * zcr_notification_surface_v2)2014 zcr_notification_surface_v2_destroy(struct zcr_notification_surface_v2 *zcr_notification_surface_v2)
2015 {
2016 wl_proxy_marshal_flags((struct wl_proxy *) zcr_notification_surface_v2,
2017 ZCR_NOTIFICATION_SURFACE_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_notification_surface_v2), WL_MARSHAL_FLAG_DESTROY);
2018 }
2019
2020 /**
2021 * @ingroup iface_zcr_notification_surface_v2
2022 *
2023 * Set an application identifier for the notification surface.
2024 */
2025 static inline void
zcr_notification_surface_v2_set_app_id(struct zcr_notification_surface_v2 * zcr_notification_surface_v2,const char * app_id)2026 zcr_notification_surface_v2_set_app_id(struct zcr_notification_surface_v2 *zcr_notification_surface_v2, const char *app_id)
2027 {
2028 wl_proxy_marshal_flags((struct wl_proxy *) zcr_notification_surface_v2,
2029 ZCR_NOTIFICATION_SURFACE_V2_SET_APP_ID, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_notification_surface_v2), 0, app_id);
2030 }
2031
2032 #define ZCR_INPUT_METHOD_SURFACE_V2_DESTROY 0
2033 #define ZCR_INPUT_METHOD_SURFACE_V2_SET_BOUNDS_IN_OUTPUT 1
2034
2035
2036 /**
2037 * @ingroup iface_zcr_input_method_surface_v2
2038 */
2039 #define ZCR_INPUT_METHOD_SURFACE_V2_DESTROY_SINCE_VERSION 1
2040 /**
2041 * @ingroup iface_zcr_input_method_surface_v2
2042 */
2043 #define ZCR_INPUT_METHOD_SURFACE_V2_SET_BOUNDS_IN_OUTPUT_SINCE_VERSION 1
2044
2045 /** @ingroup iface_zcr_input_method_surface_v2 */
2046 static inline void
zcr_input_method_surface_v2_set_user_data(struct zcr_input_method_surface_v2 * zcr_input_method_surface_v2,void * user_data)2047 zcr_input_method_surface_v2_set_user_data(struct zcr_input_method_surface_v2 *zcr_input_method_surface_v2, void *user_data)
2048 {
2049 wl_proxy_set_user_data((struct wl_proxy *) zcr_input_method_surface_v2, user_data);
2050 }
2051
2052 /** @ingroup iface_zcr_input_method_surface_v2 */
2053 static inline void *
zcr_input_method_surface_v2_get_user_data(struct zcr_input_method_surface_v2 * zcr_input_method_surface_v2)2054 zcr_input_method_surface_v2_get_user_data(struct zcr_input_method_surface_v2 *zcr_input_method_surface_v2)
2055 {
2056 return wl_proxy_get_user_data((struct wl_proxy *) zcr_input_method_surface_v2);
2057 }
2058
2059 static inline uint32_t
zcr_input_method_surface_v2_get_version(struct zcr_input_method_surface_v2 * zcr_input_method_surface_v2)2060 zcr_input_method_surface_v2_get_version(struct zcr_input_method_surface_v2 *zcr_input_method_surface_v2)
2061 {
2062 return wl_proxy_get_version((struct wl_proxy *) zcr_input_method_surface_v2);
2063 }
2064
2065 /**
2066 * @ingroup iface_zcr_input_method_surface_v2
2067 *
2068 * Unmap and destroy the input mtehod surface.
2069 */
2070 static inline void
zcr_input_method_surface_v2_destroy(struct zcr_input_method_surface_v2 * zcr_input_method_surface_v2)2071 zcr_input_method_surface_v2_destroy(struct zcr_input_method_surface_v2 *zcr_input_method_surface_v2)
2072 {
2073 wl_proxy_marshal_flags((struct wl_proxy *) zcr_input_method_surface_v2,
2074 ZCR_INPUT_METHOD_SURFACE_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_input_method_surface_v2), WL_MARSHAL_FLAG_DESTROY);
2075 }
2076
2077 /**
2078 * @ingroup iface_zcr_input_method_surface_v2
2079 *
2080 * Set the "visible bounds" of a window from the user's perspective.
2081 *
2082 * The bounds are double buffered, and will be applied at the
2083 * time wl_surface.commit of the corresponding wl_surface is called.
2084 *
2085 * Once the bounds are set, it is not possible to unset them, and they will
2086 * remain the same until set_bounds_in_output is called again, even if a new sub-
2087 * surface or buffer is attached.
2088 *
2089 * If never set, the value is the surface content bounds. This updates
2090 * dynamically on every commit.
2091 *
2092 * The bounds are relative to the given display. If the display is invalid,
2093 * they are assumed to be relative to the primary display.
2094 *
2095 * The width and height must be greater than zero.
2096 */
2097 static inline void
zcr_input_method_surface_v2_set_bounds_in_output(struct zcr_input_method_surface_v2 * zcr_input_method_surface_v2,struct wl_output * output,int32_t x,int32_t y,int32_t width,int32_t height)2098 zcr_input_method_surface_v2_set_bounds_in_output(struct zcr_input_method_surface_v2 *zcr_input_method_surface_v2, struct wl_output *output, int32_t x, int32_t y, int32_t width, int32_t height)
2099 {
2100 wl_proxy_marshal_flags((struct wl_proxy *) zcr_input_method_surface_v2,
2101 ZCR_INPUT_METHOD_SURFACE_V2_SET_BOUNDS_IN_OUTPUT, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_input_method_surface_v2), 0, output, x, y, width, height);
2102 }
2103
2104 #define ZCR_TOAST_SURFACE_V2_DESTROY 0
2105 #define ZCR_TOAST_SURFACE_V2_SET_BOUNDS_IN_OUTPUT 1
2106 #define ZCR_TOAST_SURFACE_V2_SET_SCALE_FACTOR 2
2107
2108
2109 /**
2110 * @ingroup iface_zcr_toast_surface_v2
2111 */
2112 #define ZCR_TOAST_SURFACE_V2_DESTROY_SINCE_VERSION 1
2113 /**
2114 * @ingroup iface_zcr_toast_surface_v2
2115 */
2116 #define ZCR_TOAST_SURFACE_V2_SET_BOUNDS_IN_OUTPUT_SINCE_VERSION 1
2117 /**
2118 * @ingroup iface_zcr_toast_surface_v2
2119 */
2120 #define ZCR_TOAST_SURFACE_V2_SET_SCALE_FACTOR_SINCE_VERSION 2
2121
2122 /** @ingroup iface_zcr_toast_surface_v2 */
2123 static inline void
zcr_toast_surface_v2_set_user_data(struct zcr_toast_surface_v2 * zcr_toast_surface_v2,void * user_data)2124 zcr_toast_surface_v2_set_user_data(struct zcr_toast_surface_v2 *zcr_toast_surface_v2, void *user_data)
2125 {
2126 wl_proxy_set_user_data((struct wl_proxy *) zcr_toast_surface_v2, user_data);
2127 }
2128
2129 /** @ingroup iface_zcr_toast_surface_v2 */
2130 static inline void *
zcr_toast_surface_v2_get_user_data(struct zcr_toast_surface_v2 * zcr_toast_surface_v2)2131 zcr_toast_surface_v2_get_user_data(struct zcr_toast_surface_v2 *zcr_toast_surface_v2)
2132 {
2133 return wl_proxy_get_user_data((struct wl_proxy *) zcr_toast_surface_v2);
2134 }
2135
2136 static inline uint32_t
zcr_toast_surface_v2_get_version(struct zcr_toast_surface_v2 * zcr_toast_surface_v2)2137 zcr_toast_surface_v2_get_version(struct zcr_toast_surface_v2 *zcr_toast_surface_v2)
2138 {
2139 return wl_proxy_get_version((struct wl_proxy *) zcr_toast_surface_v2);
2140 }
2141
2142 /**
2143 * @ingroup iface_zcr_toast_surface_v2
2144 *
2145 * Unmap and destroy the toast surface.
2146 */
2147 static inline void
zcr_toast_surface_v2_destroy(struct zcr_toast_surface_v2 * zcr_toast_surface_v2)2148 zcr_toast_surface_v2_destroy(struct zcr_toast_surface_v2 *zcr_toast_surface_v2)
2149 {
2150 wl_proxy_marshal_flags((struct wl_proxy *) zcr_toast_surface_v2,
2151 ZCR_TOAST_SURFACE_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_toast_surface_v2), WL_MARSHAL_FLAG_DESTROY);
2152 }
2153
2154 /**
2155 * @ingroup iface_zcr_toast_surface_v2
2156 *
2157 * Set the bounds of a toast window from the user's perspective.
2158 *
2159 * The bounds are double buffered, and will be applied at the
2160 * time wl_surface.commit of the corresponding wl_surface is called.
2161 *
2162 * Once the bounds are set, it is not possible to unset them, and they will
2163 * remain the same until set_bounds is called again, even if a new sub-
2164 * surface or buffer is attached.
2165 *
2166 * If never set, the compositor will determine the toast position.
2167 *
2168 * The bounds are relative to the given display. If the display is invalid,
2169 * they are assumed to be relative to the primary display.
2170 */
2171 static inline void
zcr_toast_surface_v2_set_bounds_in_output(struct zcr_toast_surface_v2 * zcr_toast_surface_v2,struct wl_output * output,int32_t x,int32_t y,int32_t width,int32_t height)2172 zcr_toast_surface_v2_set_bounds_in_output(struct zcr_toast_surface_v2 *zcr_toast_surface_v2, struct wl_output *output, int32_t x, int32_t y, int32_t width, int32_t height)
2173 {
2174 wl_proxy_marshal_flags((struct wl_proxy *) zcr_toast_surface_v2,
2175 ZCR_TOAST_SURFACE_V2_SET_BOUNDS_IN_OUTPUT, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_toast_surface_v2), 0, output, x, y, width, height);
2176 }
2177
2178 /**
2179 * @ingroup iface_zcr_toast_surface_v2
2180 *
2181 * The client has a 32-bit float scale factor that is associated with each
2182 * remote surface. This scale factor must be propagated exactly to exo. To
2183 * do so we reinterpret_cast into a 32-bit uint and later cast back into a
2184 * float. This is because wayland does not support native transport of
2185 * floats. As different CPU architectures may use different endian
2186 * representations for IEEE 754 floats, this protocol implicitly assumes
2187 * that the caller and receiver are the same machine.
2188 * This is double buffered state and will be applied in the next commit.
2189 */
2190 static inline void
zcr_toast_surface_v2_set_scale_factor(struct zcr_toast_surface_v2 * zcr_toast_surface_v2,uint32_t scale_factor_as_uint)2191 zcr_toast_surface_v2_set_scale_factor(struct zcr_toast_surface_v2 *zcr_toast_surface_v2, uint32_t scale_factor_as_uint)
2192 {
2193 wl_proxy_marshal_flags((struct wl_proxy *) zcr_toast_surface_v2,
2194 ZCR_TOAST_SURFACE_V2_SET_SCALE_FACTOR, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_toast_surface_v2), 0, scale_factor_as_uint);
2195 }
2196
2197 #ifndef ZCR_REMOTE_OUTPUT_V2_SYSTEMUI_BEHAVIOR_ENUM
2198 #define ZCR_REMOTE_OUTPUT_V2_SYSTEMUI_BEHAVIOR_ENUM
2199 /**
2200 * @ingroup iface_zcr_remote_output_v2
2201 * systemui behavior
2202 *
2203 * Determine the behavior of the system UI.
2204 */
2205 enum zcr_remote_output_v2_systemui_behavior {
2206 /**
2207 * system ui is visible
2208 */
2209 ZCR_REMOTE_OUTPUT_V2_SYSTEMUI_BEHAVIOR_VISIBLE = 1,
2210 /**
2211 * system ui is autohide or hidden
2212 */
2213 ZCR_REMOTE_OUTPUT_V2_SYSTEMUI_BEHAVIOR_HIDDEN = 2,
2214 };
2215 #endif /* ZCR_REMOTE_OUTPUT_V2_SYSTEMUI_BEHAVIOR_ENUM */
2216
2217 /**
2218 * @ingroup iface_zcr_remote_output_v2
2219 * @struct zcr_remote_output_v2_listener
2220 */
2221 struct zcr_remote_output_v2_listener {
2222 /**
2223 * the identifier for the display
2224 *
2225 * [Deprecated] Sends the display identifier used by the server
2226 * for the display.
2227 */
2228 void (*display_id)(void *data,
2229 struct zcr_remote_output_v2 *zcr_remote_output_v2,
2230 uint32_t display_id_hi,
2231 uint32_t display_id_lo);
2232 /**
2233 * the port of the display
2234 *
2235 * Sends the port to which the display is connected for the
2236 * server.
2237 */
2238 void (*port)(void *data,
2239 struct zcr_remote_output_v2 *zcr_remote_output_v2,
2240 uint32_t port);
2241 /**
2242 * the identification data for the display
2243 *
2244 * Sends the identification data for the display, typically in
2245 * the EDID format.
2246 */
2247 void (*identification_data)(void *data,
2248 struct zcr_remote_output_v2 *zcr_remote_output_v2,
2249 struct wl_array *identification_data);
2250 /**
2251 * insets for the display in pixels
2252 *
2253 * Sends inset information about a particular display in the
2254 * display's native coordinates.
2255 */
2256 void (*insets)(void *data,
2257 struct zcr_remote_output_v2 *zcr_remote_output_v2,
2258 int32_t inset_left,
2259 int32_t inset_top,
2260 int32_t inset_right,
2261 int32_t inset_bottom);
2262 /**
2263 * stable insets for a display in pixels
2264 *
2265 * Sends stable inset information about a particular display in
2266 * the display's native coordinates.
2267 */
2268 void (*stable_insets)(void *data,
2269 struct zcr_remote_output_v2 *zcr_remote_output_v2,
2270 int32_t stable_inset_left,
2271 int32_t stable_inset_top,
2272 int32_t stable_inset_right,
2273 int32_t stable_inset_bottom);
2274 /**
2275 * systemui_behavior_state for a display
2276 *
2277 * Sends information about whether the systemui behavior is auto
2278 * hide. The "systemui_behavior" value is of enum type
2279 * "systemui_behavior".
2280 */
2281 void (*systemui_behavior)(void *data,
2282 struct zcr_remote_output_v2 *zcr_remote_output_v2,
2283 int32_t systemui_behavior);
2284 };
2285
2286 /**
2287 * @ingroup iface_zcr_remote_output_v2
2288 */
2289 static inline int
zcr_remote_output_v2_add_listener(struct zcr_remote_output_v2 * zcr_remote_output_v2,const struct zcr_remote_output_v2_listener * listener,void * data)2290 zcr_remote_output_v2_add_listener(struct zcr_remote_output_v2 *zcr_remote_output_v2,
2291 const struct zcr_remote_output_v2_listener *listener, void *data)
2292 {
2293 return wl_proxy_add_listener((struct wl_proxy *) zcr_remote_output_v2,
2294 (void (**)(void)) listener, data);
2295 }
2296
2297 #define ZCR_REMOTE_OUTPUT_V2_DESTROY 0
2298
2299 /**
2300 * @ingroup iface_zcr_remote_output_v2
2301 */
2302 #define ZCR_REMOTE_OUTPUT_V2_DISPLAY_ID_SINCE_VERSION 1
2303 /**
2304 * @ingroup iface_zcr_remote_output_v2
2305 */
2306 #define ZCR_REMOTE_OUTPUT_V2_PORT_SINCE_VERSION 1
2307 /**
2308 * @ingroup iface_zcr_remote_output_v2
2309 */
2310 #define ZCR_REMOTE_OUTPUT_V2_IDENTIFICATION_DATA_SINCE_VERSION 1
2311 /**
2312 * @ingroup iface_zcr_remote_output_v2
2313 */
2314 #define ZCR_REMOTE_OUTPUT_V2_INSETS_SINCE_VERSION 1
2315 /**
2316 * @ingroup iface_zcr_remote_output_v2
2317 */
2318 #define ZCR_REMOTE_OUTPUT_V2_STABLE_INSETS_SINCE_VERSION 1
2319 /**
2320 * @ingroup iface_zcr_remote_output_v2
2321 */
2322 #define ZCR_REMOTE_OUTPUT_V2_SYSTEMUI_BEHAVIOR_SINCE_VERSION 1
2323
2324 /**
2325 * @ingroup iface_zcr_remote_output_v2
2326 */
2327 #define ZCR_REMOTE_OUTPUT_V2_DESTROY_SINCE_VERSION 1
2328
2329 /** @ingroup iface_zcr_remote_output_v2 */
2330 static inline void
zcr_remote_output_v2_set_user_data(struct zcr_remote_output_v2 * zcr_remote_output_v2,void * user_data)2331 zcr_remote_output_v2_set_user_data(struct zcr_remote_output_v2 *zcr_remote_output_v2, void *user_data)
2332 {
2333 wl_proxy_set_user_data((struct wl_proxy *) zcr_remote_output_v2, user_data);
2334 }
2335
2336 /** @ingroup iface_zcr_remote_output_v2 */
2337 static inline void *
zcr_remote_output_v2_get_user_data(struct zcr_remote_output_v2 * zcr_remote_output_v2)2338 zcr_remote_output_v2_get_user_data(struct zcr_remote_output_v2 *zcr_remote_output_v2)
2339 {
2340 return wl_proxy_get_user_data((struct wl_proxy *) zcr_remote_output_v2);
2341 }
2342
2343 static inline uint32_t
zcr_remote_output_v2_get_version(struct zcr_remote_output_v2 * zcr_remote_output_v2)2344 zcr_remote_output_v2_get_version(struct zcr_remote_output_v2 *zcr_remote_output_v2)
2345 {
2346 return wl_proxy_get_version((struct wl_proxy *) zcr_remote_output_v2);
2347 }
2348
2349 /**
2350 * @ingroup iface_zcr_remote_output_v2
2351 *
2352 * Destroy this remote_output object.
2353 */
2354 static inline void
zcr_remote_output_v2_destroy(struct zcr_remote_output_v2 * zcr_remote_output_v2)2355 zcr_remote_output_v2_destroy(struct zcr_remote_output_v2 *zcr_remote_output_v2)
2356 {
2357 wl_proxy_marshal_flags((struct wl_proxy *) zcr_remote_output_v2,
2358 ZCR_REMOTE_OUTPUT_V2_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) zcr_remote_output_v2), WL_MARSHAL_FLAG_DESTROY);
2359 }
2360
2361 #ifdef __cplusplus
2362 }
2363 #endif
2364
2365 #endif
2366