/* Generated by wayland-scanner 1.25.0 */

#ifndef SHADOW_SERVER_PROTOCOL_H
#define SHADOW_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_shadow The shadow protocol
 * @section page_ifaces_shadow Interfaces
 * - @subpage page_iface_org_kde_kwin_shadow_manager - 
 * - @subpage page_iface_org_kde_kwin_shadow - 
 * @section page_copyright_shadow Copyright
 * <pre>
 *
 * SPDX-FileCopyrightText: 2015 Martin Gräßlin
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 * </pre>
 */
struct org_kde_kwin_shadow;
struct org_kde_kwin_shadow_manager;
struct wl_buffer;
struct wl_surface;

#ifndef ORG_KDE_KWIN_SHADOW_MANAGER_INTERFACE
#define ORG_KDE_KWIN_SHADOW_MANAGER_INTERFACE
/**
 * @page page_iface_org_kde_kwin_shadow_manager org_kde_kwin_shadow_manager
 * @section page_iface_org_kde_kwin_shadow_manager_api API
 * See @ref iface_org_kde_kwin_shadow_manager.
 */
/**
 * @defgroup iface_org_kde_kwin_shadow_manager The org_kde_kwin_shadow_manager interface
 */
extern const struct wl_interface org_kde_kwin_shadow_manager_interface;
#endif
#ifndef ORG_KDE_KWIN_SHADOW_INTERFACE
#define ORG_KDE_KWIN_SHADOW_INTERFACE
/**
 * @page page_iface_org_kde_kwin_shadow org_kde_kwin_shadow
 * @section page_iface_org_kde_kwin_shadow_api API
 * See @ref iface_org_kde_kwin_shadow.
 */
/**
 * @defgroup iface_org_kde_kwin_shadow The org_kde_kwin_shadow interface
 */
extern const struct wl_interface org_kde_kwin_shadow_interface;
#endif

/**
 * @ingroup iface_org_kde_kwin_shadow_manager
 * @struct org_kde_kwin_shadow_manager_interface
 */
struct org_kde_kwin_shadow_manager_interface {
	/**
	 */
	void (*create)(struct wl_client *client,
		       struct wl_resource *resource,
		       uint32_t id,
		       struct wl_resource *surface);
	/**
	 */
	void (*unset)(struct wl_client *client,
		      struct wl_resource *resource,
		      struct wl_resource *surface);
	/**
	 * Destroy the org_kde_kwin_shadow_manager
	 *
	 * Destroy the org_kde_kwin_shadow_manager object.
	 * @since 2
	 */
	void (*destroy)(struct wl_client *client,
			struct wl_resource *resource);
};


/**
 * @ingroup iface_org_kde_kwin_shadow_manager
 */
#define ORG_KDE_KWIN_SHADOW_MANAGER_CREATE_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow_manager
 */
#define ORG_KDE_KWIN_SHADOW_MANAGER_UNSET_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow_manager
 */
#define ORG_KDE_KWIN_SHADOW_MANAGER_DESTROY_SINCE_VERSION 2

/**
 * @ingroup iface_org_kde_kwin_shadow
 * @struct org_kde_kwin_shadow_interface
 */
struct org_kde_kwin_shadow_interface {
	/**
	 */
	void (*commit)(struct wl_client *client,
		       struct wl_resource *resource);
	/**
	 */
	void (*attach_left)(struct wl_client *client,
			    struct wl_resource *resource,
			    struct wl_resource *buffer);
	/**
	 */
	void (*attach_top_left)(struct wl_client *client,
				struct wl_resource *resource,
				struct wl_resource *buffer);
	/**
	 */
	void (*attach_top)(struct wl_client *client,
			   struct wl_resource *resource,
			   struct wl_resource *buffer);
	/**
	 */
	void (*attach_top_right)(struct wl_client *client,
				 struct wl_resource *resource,
				 struct wl_resource *buffer);
	/**
	 */
	void (*attach_right)(struct wl_client *client,
			     struct wl_resource *resource,
			     struct wl_resource *buffer);
	/**
	 */
	void (*attach_bottom_right)(struct wl_client *client,
				    struct wl_resource *resource,
				    struct wl_resource *buffer);
	/**
	 */
	void (*attach_bottom)(struct wl_client *client,
			      struct wl_resource *resource,
			      struct wl_resource *buffer);
	/**
	 */
	void (*attach_bottom_left)(struct wl_client *client,
				   struct wl_resource *resource,
				   struct wl_resource *buffer);
	/**
	 */
	void (*set_left_offset)(struct wl_client *client,
				struct wl_resource *resource,
				wl_fixed_t offset);
	/**
	 */
	void (*set_top_offset)(struct wl_client *client,
			       struct wl_resource *resource,
			       wl_fixed_t offset);
	/**
	 */
	void (*set_right_offset)(struct wl_client *client,
				 struct wl_resource *resource,
				 wl_fixed_t offset);
	/**
	 */
	void (*set_bottom_offset)(struct wl_client *client,
				  struct wl_resource *resource,
				  wl_fixed_t offset);
	/**
	 * Destroy the org_kde_kwin_shadow
	 *
	 * Destroy the org_kde_kwin_shadow object. If the
	 * org_kde_kwin_shadow is still set on a wl_surface the shadow will
	 * be immediately removed. Prefer to first call the request unset
	 * on the org_kde_kwin_shadow_manager and commit the wl_surface to
	 * apply the change.
	 * @since 2
	 */
	void (*destroy)(struct wl_client *client,
			struct wl_resource *resource);
};


/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_COMMIT_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_LEFT_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_TOP_LEFT_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_TOP_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_TOP_RIGHT_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_RIGHT_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM_RIGHT_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM_LEFT_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_SET_LEFT_OFFSET_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_SET_TOP_OFFSET_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_SET_RIGHT_OFFSET_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_SET_BOTTOM_OFFSET_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_kwin_shadow
 */
#define ORG_KDE_KWIN_SHADOW_DESTROY_SINCE_VERSION 2

#ifdef  __cplusplus
}
#endif

#endif
