zorldo

Goofing around with Ebiten
git clone git://bsandro.tech/zorldo
Log | Files | Refs | README

wayland-xdg-decoration-client-protocol.h (13692B)


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