/* Generated by wayland-scanner 1.26.0 */

#ifndef SERVER_DECORATION_PALETTE_SERVER_PROTOCOL_H
#define SERVER_DECORATION_PALETTE_SERVER_PROTOCOL_H

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

#ifdef  __cplusplus
extern "C" {
#endif

struct wl_client;
struct wl_resource;

/**
 * @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

/**
 * @ingroup iface_org_kde_kwin_server_decoration_palette_manager
 * @struct org_kde_kwin_server_decoration_palette_manager_interface
 */
struct org_kde_kwin_server_decoration_palette_manager_interface {
	/**
	 */
	void (*create)(struct wl_client *client,
		       struct wl_resource *resource,
		       uint32_t id,
		       struct wl_resource *surface);
};


/**
 * @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
 * @struct org_kde_kwin_server_decoration_palette_interface
 */
struct org_kde_kwin_server_decoration_palette_interface {
	/**
	 * Set a on the server side window decoration
	 *
	 * 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.
	 * @param palette Absolute file path, or name of palette in the user's config directory
	 */
	void (*set_palette)(struct wl_client *client,
			    struct wl_resource *resource,
			    const char *palette);
	/**
	 * release the palette object
	 *
	 * 
	 */
	void (*release)(struct wl_client *client,
			struct wl_resource *resource);
};


/**
 * @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

#ifdef  __cplusplus
}
#endif

#endif
