/* Generated by wayland-scanner 1.25.0 */

#ifndef SERVER_DECORATION_PALETTE_CLIENT_PROTOCOL_H
#define SERVER_DECORATION_PALETTE_CLIENT_PROTOCOL_H

#include <stdint.h>
#include <stddef.h>
#include "wayland-client.h"

#ifdef  __cplusplus
extern "C" {
#endif

/**
 * @page page_server_decoration_palette The server_decoration_palette protocol
 * @section page_ifaces_server_decoration_palette Interfaces
 * - @subpage page_iface_org_kde_kwin_server_decoration_palette_manager - server side decoration palette manager interface
 * - @subpage page_iface_org_kde_kwin_server_decoration_palette - server side decoration palette interface
 * @section page_copyright_server_decoration_palette Copyright
 * <pre>
 *
 * SPDX-FileCopyrightText: 2017 David Edmundson
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 * </pre>
 */
struct org_kde_kwin_server_decoration_palette;
struct org_kde_kwin_server_decoration_palette_manager;
struct wl_surface;

#ifndef ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_MANAGER_INTERFACE
#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_MANAGER_INTERFACE
/**
 * @page page_iface_org_kde_kwin_server_decoration_palette_manager org_kde_kwin_server_decoration_palette_manager
 * @section page_iface_org_kde_kwin_server_decoration_palette_manager_desc Description
 *
 * This interface allows a client to alter the palette of a server side decoration.
 * @section page_iface_org_kde_kwin_server_decoration_palette_manager_api API
 * See @ref iface_org_kde_kwin_server_decoration_palette_manager.
 */
/**
 * @defgroup iface_org_kde_kwin_server_decoration_palette_manager The org_kde_kwin_server_decoration_palette_manager interface
 *
 * This interface allows a client to alter the palette of a server side decoration.
 */
extern const struct wl_interface org_kde_kwin_server_decoration_palette_manager_interface;
#endif
#ifndef ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_INTERFACE
#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_INTERFACE
/**
 * @page page_iface_org_kde_kwin_server_decoration_palette org_kde_kwin_server_decoration_palette
 * @section page_iface_org_kde_kwin_server_decoration_palette_desc Description
 *
 * This interface allows a client to alter the palette of a server side decoration.
 * @section page_iface_org_kde_kwin_server_decoration_palette_api API
 * See @ref iface_org_kde_kwin_server_decoration_palette.
 */
/**
 * @defgroup iface_org_kde_kwin_server_decoration_palette The org_kde_kwin_server_decoration_palette interface
 *
 * This interface allows a client to alter the palette of a server side decoration.
 */
extern const struct wl_interface org_kde_kwin_server_decoration_palette_interface;
#endif

#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_MANAGER_CREATE 0


/**
 * @ingroup iface_org_kde_kwin_server_decoration_palette_manager
 */
#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_MANAGER_CREATE_SINCE_VERSION 1

/** @ingroup iface_org_kde_kwin_server_decoration_palette_manager */
static inline void
org_kde_kwin_server_decoration_palette_manager_set_user_data(struct org_kde_kwin_server_decoration_palette_manager *org_kde_kwin_server_decoration_palette_manager, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) org_kde_kwin_server_decoration_palette_manager, user_data);
}

/** @ingroup iface_org_kde_kwin_server_decoration_palette_manager */
static inline void *
org_kde_kwin_server_decoration_palette_manager_get_user_data(struct org_kde_kwin_server_decoration_palette_manager *org_kde_kwin_server_decoration_palette_manager)
{
	return wl_proxy_get_user_data((struct wl_proxy *) org_kde_kwin_server_decoration_palette_manager);
}

static inline uint32_t
org_kde_kwin_server_decoration_palette_manager_get_version(struct org_kde_kwin_server_decoration_palette_manager *org_kde_kwin_server_decoration_palette_manager)
{
	return wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration_palette_manager);
}

/** @ingroup iface_org_kde_kwin_server_decoration_palette_manager */
static inline void
org_kde_kwin_server_decoration_palette_manager_destroy(struct org_kde_kwin_server_decoration_palette_manager *org_kde_kwin_server_decoration_palette_manager)
{
	wl_proxy_destroy((struct wl_proxy *) org_kde_kwin_server_decoration_palette_manager);
}

/**
 * @ingroup iface_org_kde_kwin_server_decoration_palette_manager
 */
static inline struct org_kde_kwin_server_decoration_palette *
org_kde_kwin_server_decoration_palette_manager_create(struct org_kde_kwin_server_decoration_palette_manager *org_kde_kwin_server_decoration_palette_manager, struct wl_surface *surface)
{
	struct wl_proxy *id;

	id = wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_server_decoration_palette_manager,
			 ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_MANAGER_CREATE, &org_kde_kwin_server_decoration_palette_interface, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration_palette_manager), 0, NULL, surface);

	return (struct org_kde_kwin_server_decoration_palette *) id;
}

#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_SET_PALETTE 0
#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_RELEASE 1


/**
 * @ingroup iface_org_kde_kwin_server_decoration_palette
 */
#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_SET_PALETTE_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_server_decoration_palette
 */
#define ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_RELEASE_SINCE_VERSION 1

/** @ingroup iface_org_kde_kwin_server_decoration_palette */
static inline void
org_kde_kwin_server_decoration_palette_set_user_data(struct org_kde_kwin_server_decoration_palette *org_kde_kwin_server_decoration_palette, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) org_kde_kwin_server_decoration_palette, user_data);
}

/** @ingroup iface_org_kde_kwin_server_decoration_palette */
static inline void *
org_kde_kwin_server_decoration_palette_get_user_data(struct org_kde_kwin_server_decoration_palette *org_kde_kwin_server_decoration_palette)
{
	return wl_proxy_get_user_data((struct wl_proxy *) org_kde_kwin_server_decoration_palette);
}

static inline uint32_t
org_kde_kwin_server_decoration_palette_get_version(struct org_kde_kwin_server_decoration_palette *org_kde_kwin_server_decoration_palette)
{
	return wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration_palette);
}

/** @ingroup iface_org_kde_kwin_server_decoration_palette */
static inline void
org_kde_kwin_server_decoration_palette_destroy(struct org_kde_kwin_server_decoration_palette *org_kde_kwin_server_decoration_palette)
{
	wl_proxy_destroy((struct wl_proxy *) org_kde_kwin_server_decoration_palette);
}

/**
 * @ingroup iface_org_kde_kwin_server_decoration_palette
 *
 * Color scheme that should be applied to the window decoration.
 * Absolute file path, or name of palette in the user's config directory.
 * The server may choose not to follow the requested style.
 */
static inline void
org_kde_kwin_server_decoration_palette_set_palette(struct org_kde_kwin_server_decoration_palette *org_kde_kwin_server_decoration_palette, const char *palette)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_server_decoration_palette,
			 ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_SET_PALETTE, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration_palette), 0, palette);
}

/**
 * @ingroup iface_org_kde_kwin_server_decoration_palette
 */
static inline void
org_kde_kwin_server_decoration_palette_release(struct org_kde_kwin_server_decoration_palette *org_kde_kwin_server_decoration_palette)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_server_decoration_palette,
			 ORG_KDE_KWIN_SERVER_DECORATION_PALETTE_RELEASE, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration_palette), WL_MARSHAL_FLAG_DESTROY);
}

#ifdef  __cplusplus
}
#endif

#endif
