/* Generated by wayland-scanner 1.25.0 */

#ifndef SHADOW_CLIENT_PROTOCOL_H
#define SHADOW_CLIENT_PROTOCOL_H

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

#ifdef  __cplusplus
extern "C" {
#endif

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

#define ORG_KDE_KWIN_SHADOW_MANAGER_CREATE 0
#define ORG_KDE_KWIN_SHADOW_MANAGER_UNSET 1
#define ORG_KDE_KWIN_SHADOW_MANAGER_DESTROY 2


/**
 * @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_manager */
static inline void
org_kde_kwin_shadow_manager_set_user_data(struct org_kde_kwin_shadow_manager *org_kde_kwin_shadow_manager, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) org_kde_kwin_shadow_manager, user_data);
}

/** @ingroup iface_org_kde_kwin_shadow_manager */
static inline void *
org_kde_kwin_shadow_manager_get_user_data(struct org_kde_kwin_shadow_manager *org_kde_kwin_shadow_manager)
{
	return wl_proxy_get_user_data((struct wl_proxy *) org_kde_kwin_shadow_manager);
}

static inline uint32_t
org_kde_kwin_shadow_manager_get_version(struct org_kde_kwin_shadow_manager *org_kde_kwin_shadow_manager)
{
	return wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow_manager);
}

/**
 * @ingroup iface_org_kde_kwin_shadow_manager
 */
static inline struct org_kde_kwin_shadow *
org_kde_kwin_shadow_manager_create(struct org_kde_kwin_shadow_manager *org_kde_kwin_shadow_manager, struct wl_surface *surface)
{
	struct wl_proxy *id;

	id = wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow_manager,
			 ORG_KDE_KWIN_SHADOW_MANAGER_CREATE, &org_kde_kwin_shadow_interface, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow_manager), 0, NULL, surface);

	return (struct org_kde_kwin_shadow *) id;
}

/**
 * @ingroup iface_org_kde_kwin_shadow_manager
 */
static inline void
org_kde_kwin_shadow_manager_unset(struct org_kde_kwin_shadow_manager *org_kde_kwin_shadow_manager, struct wl_surface *surface)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow_manager,
			 ORG_KDE_KWIN_SHADOW_MANAGER_UNSET, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow_manager), 0, surface);
}

/**
 * @ingroup iface_org_kde_kwin_shadow_manager
 *
 * Destroy the org_kde_kwin_shadow_manager object.
 */
static inline void
org_kde_kwin_shadow_manager_destroy(struct org_kde_kwin_shadow_manager *org_kde_kwin_shadow_manager)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow_manager,
			 ORG_KDE_KWIN_SHADOW_MANAGER_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow_manager), WL_MARSHAL_FLAG_DESTROY);
}

#define ORG_KDE_KWIN_SHADOW_COMMIT 0
#define ORG_KDE_KWIN_SHADOW_ATTACH_LEFT 1
#define ORG_KDE_KWIN_SHADOW_ATTACH_TOP_LEFT 2
#define ORG_KDE_KWIN_SHADOW_ATTACH_TOP 3
#define ORG_KDE_KWIN_SHADOW_ATTACH_TOP_RIGHT 4
#define ORG_KDE_KWIN_SHADOW_ATTACH_RIGHT 5
#define ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM_RIGHT 6
#define ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM 7
#define ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM_LEFT 8
#define ORG_KDE_KWIN_SHADOW_SET_LEFT_OFFSET 9
#define ORG_KDE_KWIN_SHADOW_SET_TOP_OFFSET 10
#define ORG_KDE_KWIN_SHADOW_SET_RIGHT_OFFSET 11
#define ORG_KDE_KWIN_SHADOW_SET_BOTTOM_OFFSET 12
#define ORG_KDE_KWIN_SHADOW_DESTROY 13


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

/** @ingroup iface_org_kde_kwin_shadow */
static inline void
org_kde_kwin_shadow_set_user_data(struct org_kde_kwin_shadow *org_kde_kwin_shadow, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) org_kde_kwin_shadow, user_data);
}

/** @ingroup iface_org_kde_kwin_shadow */
static inline void *
org_kde_kwin_shadow_get_user_data(struct org_kde_kwin_shadow *org_kde_kwin_shadow)
{
	return wl_proxy_get_user_data((struct wl_proxy *) org_kde_kwin_shadow);
}

static inline uint32_t
org_kde_kwin_shadow_get_version(struct org_kde_kwin_shadow *org_kde_kwin_shadow)
{
	return wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_commit(struct org_kde_kwin_shadow *org_kde_kwin_shadow)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_COMMIT, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_left(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_LEFT, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_top_left(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_TOP_LEFT, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_top(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_TOP, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_top_right(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_TOP_RIGHT, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_right(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_RIGHT, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_bottom_right(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM_RIGHT, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_bottom(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_attach_bottom_left(struct org_kde_kwin_shadow *org_kde_kwin_shadow, struct wl_buffer *buffer)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_ATTACH_BOTTOM_LEFT, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, buffer);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_set_left_offset(struct org_kde_kwin_shadow *org_kde_kwin_shadow, wl_fixed_t offset)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_SET_LEFT_OFFSET, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, offset);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_set_top_offset(struct org_kde_kwin_shadow *org_kde_kwin_shadow, wl_fixed_t offset)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_SET_TOP_OFFSET, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, offset);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_set_right_offset(struct org_kde_kwin_shadow *org_kde_kwin_shadow, wl_fixed_t offset)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_SET_RIGHT_OFFSET, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, offset);
}

/**
 * @ingroup iface_org_kde_kwin_shadow
 */
static inline void
org_kde_kwin_shadow_set_bottom_offset(struct org_kde_kwin_shadow *org_kde_kwin_shadow, wl_fixed_t offset)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_SET_BOTTOM_OFFSET, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), 0, offset);
}

/**
 * @ingroup iface_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.
 */
static inline void
org_kde_kwin_shadow_destroy(struct org_kde_kwin_shadow *org_kde_kwin_shadow)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_shadow,
			 ORG_KDE_KWIN_SHADOW_DESTROY, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_shadow), WL_MARSHAL_FLAG_DESTROY);
}

#ifdef  __cplusplus
}
#endif

#endif
