This implements the basic infrastructure to use use libdbusmenu to export the Linux menubar. For now, this is not integrated with the front-end, and there are some remaining bugs, so it lands disabled by default behind the widget.gtk.global-menu.enabled pref. Differential Revision: https://phabricator.services.mozilla.com/D200259
285 lines
10 KiB
C
285 lines
10 KiB
C
/* Generated by wayland-scanner 1.19.0 */
|
|
|
|
#ifndef XDG_DBUS_ANNOTATION_V1_CLIENT_PROTOCOL_H
|
|
#define XDG_DBUS_ANNOTATION_V1_CLIENT_PROTOCOL_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
#include "wayland-client.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @page page_xdg_dbus_annotation_v1 The xdg_dbus_annotation_v1 protocol
|
|
* Wayland protocol for associating DBus objects with toplevels
|
|
*
|
|
* @section page_desc_xdg_dbus_annotation_v1 Description
|
|
*
|
|
* This description provides a high-level overview of the interplay between
|
|
* the interfaces defined in this protocol. For details, see the protocol
|
|
* specification.
|
|
*
|
|
* The dbus_annotation_manager allows a client to request the creation of an
|
|
* annotation object associated with an wl_surface or itself. The annotation
|
|
* object allows a client to notify the compositor of a DBus object associated
|
|
* with itself.
|
|
*
|
|
* Clients should request the creation of an dbus_annotation object when they
|
|
* create a DBus object associated with an wl_surface or themselves, and should
|
|
* release the object when they destroy a DBus object associated with their
|
|
* wl_surface or themselves.
|
|
*
|
|
* Clients should only own at most one dbus_annotation object with a given name
|
|
* for each of their wl_surface objects or themselves. A protocol error will be
|
|
* raised if a client requests more than one dbus_annotation object for an
|
|
* wl_surface or themselves with a given name.
|
|
*
|
|
* @section page_ifaces_xdg_dbus_annotation_v1 Interfaces
|
|
* - @subpage page_iface_xdg_dbus_annotation_manager_v1 - controller object for
|
|
* registering dbus objects associated with wl_surfaces or clients
|
|
* - @subpage page_iface_xdg_dbus_annotation_v1 - controller object for
|
|
* associating dbus objects with an wl_surface
|
|
* @section page_copyright_xdg_dbus_annotation_v1 Copyright
|
|
* <pre>
|
|
*
|
|
* Copyright © 2017 David Edmundson
|
|
* Copyrihgt © 2023 Janet Blackquill
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
* copy of this software and associated documentation files (the "Software"),
|
|
* to deal in the Software without restriction, including without limitation
|
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
* and/or sell copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice (including the next
|
|
* paragraph) shall be included in all copies or substantial portions of the
|
|
* Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
* DEALINGS IN THE SOFTWARE.
|
|
* </pre>
|
|
*/
|
|
struct wl_surface;
|
|
struct xdg_dbus_annotation_manager_v1;
|
|
struct xdg_dbus_annotation_v1;
|
|
|
|
#ifndef XDG_DBUS_ANNOTATION_MANAGER_V1_INTERFACE
|
|
# define XDG_DBUS_ANNOTATION_MANAGER_V1_INTERFACE
|
|
/**
|
|
* @page page_iface_xdg_dbus_annotation_manager_v1
|
|
* xdg_dbus_annotation_manager_v1
|
|
* @section page_iface_xdg_dbus_annotation_manager_v1_desc Description
|
|
*
|
|
* An object that provides access to the creation of dbus_annotation objects.
|
|
* @section page_iface_xdg_dbus_annotation_manager_v1_api API
|
|
* See @ref iface_xdg_dbus_annotation_manager_v1.
|
|
*/
|
|
/**
|
|
* @defgroup iface_xdg_dbus_annotation_manager_v1 The
|
|
* xdg_dbus_annotation_manager_v1 interface
|
|
*
|
|
* An object that provides access to the creation of dbus_annotation objects.
|
|
*/
|
|
extern const struct wl_interface xdg_dbus_annotation_manager_v1_interface;
|
|
#endif
|
|
#ifndef XDG_DBUS_ANNOTATION_V1_INTERFACE
|
|
# define XDG_DBUS_ANNOTATION_V1_INTERFACE
|
|
/**
|
|
* @page page_iface_xdg_dbus_annotation_v1 xdg_dbus_annotation_v1
|
|
* @section page_iface_xdg_dbus_annotation_v1_desc Description
|
|
*
|
|
* An object that provides access to clients to notify the compositor of
|
|
* associated DBus objects for an wl_surface.
|
|
*
|
|
* If not applicable, clients should remove this object.
|
|
* @section page_iface_xdg_dbus_annotation_v1_api API
|
|
* See @ref iface_xdg_dbus_annotation_v1.
|
|
*/
|
|
/**
|
|
* @defgroup iface_xdg_dbus_annotation_v1 The xdg_dbus_annotation_v1 interface
|
|
*
|
|
* An object that provides access to clients to notify the compositor of
|
|
* associated DBus objects for an wl_surface.
|
|
*
|
|
* If not applicable, clients should remove this object.
|
|
*/
|
|
extern const struct wl_interface xdg_dbus_annotation_v1_interface;
|
|
#endif
|
|
|
|
#ifndef XDG_DBUS_ANNOTATION_MANAGER_V1_ERROR_ENUM
|
|
# define XDG_DBUS_ANNOTATION_MANAGER_V1_ERROR_ENUM
|
|
enum xdg_dbus_annotation_manager_v1_error {
|
|
/**
|
|
* given wl_surface or client already has a dbus_annotation with the same
|
|
* interface
|
|
*/
|
|
XDG_DBUS_ANNOTATION_MANAGER_V1_ERROR_ALREADY_ANNOTATED = 0,
|
|
/**
|
|
* given wl_surface is invalid
|
|
*/
|
|
XDG_DBUS_ANNOTATION_MANAGER_V1_ERROR_BAD_TARGET = 1,
|
|
};
|
|
#endif /* XDG_DBUS_ANNOTATION_MANAGER_V1_ERROR_ENUM */
|
|
|
|
#define XDG_DBUS_ANNOTATION_MANAGER_V1_DESTROY 0
|
|
#define XDG_DBUS_ANNOTATION_MANAGER_V1_CREATE_CLIENT 1
|
|
#define XDG_DBUS_ANNOTATION_MANAGER_V1_CREATE_SURFACE 2
|
|
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_manager_v1
|
|
*/
|
|
#define XDG_DBUS_ANNOTATION_MANAGER_V1_DESTROY_SINCE_VERSION 1
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_manager_v1
|
|
*/
|
|
#define XDG_DBUS_ANNOTATION_MANAGER_V1_CREATE_CLIENT_SINCE_VERSION 1
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_manager_v1
|
|
*/
|
|
#define XDG_DBUS_ANNOTATION_MANAGER_V1_CREATE_SURFACE_SINCE_VERSION 1
|
|
|
|
/** @ingroup iface_xdg_dbus_annotation_manager_v1 */
|
|
static inline void xdg_dbus_annotation_manager_v1_set_user_data(
|
|
struct xdg_dbus_annotation_manager_v1* xdg_dbus_annotation_manager_v1,
|
|
void* user_data) {
|
|
wl_proxy_set_user_data((struct wl_proxy*)xdg_dbus_annotation_manager_v1,
|
|
user_data);
|
|
}
|
|
|
|
/** @ingroup iface_xdg_dbus_annotation_manager_v1 */
|
|
static inline void* xdg_dbus_annotation_manager_v1_get_user_data(
|
|
struct xdg_dbus_annotation_manager_v1* xdg_dbus_annotation_manager_v1) {
|
|
return wl_proxy_get_user_data(
|
|
(struct wl_proxy*)xdg_dbus_annotation_manager_v1);
|
|
}
|
|
|
|
static inline uint32_t xdg_dbus_annotation_manager_v1_get_version(
|
|
struct xdg_dbus_annotation_manager_v1* xdg_dbus_annotation_manager_v1) {
|
|
return wl_proxy_get_version((struct wl_proxy*)xdg_dbus_annotation_manager_v1);
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_manager_v1
|
|
*
|
|
* Destroy the xdg_dbus_annotation_manager object. xdg_dbus_annotation objects
|
|
* created from this object remain valid and should be destroyed separately.
|
|
*/
|
|
static inline void xdg_dbus_annotation_manager_v1_destroy(
|
|
struct xdg_dbus_annotation_manager_v1* xdg_dbus_annotation_manager_v1) {
|
|
wl_proxy_marshal((struct wl_proxy*)xdg_dbus_annotation_manager_v1,
|
|
XDG_DBUS_ANNOTATION_MANAGER_V1_DESTROY);
|
|
|
|
wl_proxy_destroy((struct wl_proxy*)xdg_dbus_annotation_manager_v1);
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_manager_v1
|
|
*
|
|
* The interface other DBus clients can expect the object specified by the
|
|
* annotation to implement.
|
|
*/
|
|
static inline struct xdg_dbus_annotation_v1*
|
|
xdg_dbus_annotation_manager_v1_create_client(
|
|
struct xdg_dbus_annotation_manager_v1* xdg_dbus_annotation_manager_v1,
|
|
const char* interface) {
|
|
struct wl_proxy* id;
|
|
|
|
id = wl_proxy_marshal_constructor(
|
|
(struct wl_proxy*)xdg_dbus_annotation_manager_v1,
|
|
XDG_DBUS_ANNOTATION_MANAGER_V1_CREATE_CLIENT,
|
|
&xdg_dbus_annotation_v1_interface, interface, NULL);
|
|
|
|
return (struct xdg_dbus_annotation_v1*)id;
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_manager_v1
|
|
*
|
|
* The surface to associate the annotation with
|
|
*/
|
|
static inline struct xdg_dbus_annotation_v1*
|
|
xdg_dbus_annotation_manager_v1_create_surface(
|
|
struct xdg_dbus_annotation_manager_v1* xdg_dbus_annotation_manager_v1,
|
|
const char* interface, struct wl_surface* toplevel) {
|
|
struct wl_proxy* id;
|
|
|
|
id = wl_proxy_marshal_constructor(
|
|
(struct wl_proxy*)xdg_dbus_annotation_manager_v1,
|
|
XDG_DBUS_ANNOTATION_MANAGER_V1_CREATE_SURFACE,
|
|
&xdg_dbus_annotation_v1_interface, interface, NULL, toplevel);
|
|
|
|
return (struct xdg_dbus_annotation_v1*)id;
|
|
}
|
|
|
|
#define XDG_DBUS_ANNOTATION_V1_DESTROY 0
|
|
#define XDG_DBUS_ANNOTATION_V1_SET_ADDRESS 1
|
|
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_v1
|
|
*/
|
|
#define XDG_DBUS_ANNOTATION_V1_DESTROY_SINCE_VERSION 1
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_v1
|
|
*/
|
|
#define XDG_DBUS_ANNOTATION_V1_SET_ADDRESS_SINCE_VERSION 1
|
|
|
|
/** @ingroup iface_xdg_dbus_annotation_v1 */
|
|
static inline void xdg_dbus_annotation_v1_set_user_data(
|
|
struct xdg_dbus_annotation_v1* xdg_dbus_annotation_v1, void* user_data) {
|
|
wl_proxy_set_user_data((struct wl_proxy*)xdg_dbus_annotation_v1, user_data);
|
|
}
|
|
|
|
/** @ingroup iface_xdg_dbus_annotation_v1 */
|
|
static inline void* xdg_dbus_annotation_v1_get_user_data(
|
|
struct xdg_dbus_annotation_v1* xdg_dbus_annotation_v1) {
|
|
return wl_proxy_get_user_data((struct wl_proxy*)xdg_dbus_annotation_v1);
|
|
}
|
|
|
|
static inline uint32_t xdg_dbus_annotation_v1_get_version(
|
|
struct xdg_dbus_annotation_v1* xdg_dbus_annotation_v1) {
|
|
return wl_proxy_get_version((struct wl_proxy*)xdg_dbus_annotation_v1);
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_v1
|
|
*/
|
|
static inline void xdg_dbus_annotation_v1_destroy(
|
|
struct xdg_dbus_annotation_v1* xdg_dbus_annotation_v1) {
|
|
wl_proxy_marshal((struct wl_proxy*)xdg_dbus_annotation_v1,
|
|
XDG_DBUS_ANNOTATION_V1_DESTROY);
|
|
|
|
wl_proxy_destroy((struct wl_proxy*)xdg_dbus_annotation_v1);
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_xdg_dbus_annotation_v1
|
|
*
|
|
* Set or update the service name and object path corresponding to the
|
|
* DBus object. The DBus object should be registered on the session bus
|
|
* before sending this request.
|
|
*
|
|
* Strings should be formatted in Latin-1 matching the relevant DBus
|
|
* specifications.
|
|
*/
|
|
static inline void xdg_dbus_annotation_v1_set_address(
|
|
struct xdg_dbus_annotation_v1* xdg_dbus_annotation_v1,
|
|
const char* service_name, const char* object_path) {
|
|
wl_proxy_marshal((struct wl_proxy*)xdg_dbus_annotation_v1,
|
|
XDG_DBUS_ANNOTATION_V1_SET_ADDRESS, service_name,
|
|
object_path);
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|