/* Generated by wayland-scanner 1.25.0 */

#ifndef KSLD_CLIENT_PROTOCOL_H
#define KSLD_CLIENT_PROTOCOL_H

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

#ifdef  __cplusplus
extern "C" {
#endif

/**
 * @page page_ksld The ksld protocol
 * @section page_ifaces_ksld Interfaces
 * - @subpage page_iface_org_kde_ksld - 
 */
struct org_kde_ksld;

#ifndef ORG_KDE_KSLD_INTERFACE
#define ORG_KDE_KSLD_INTERFACE
/**
 * @page page_iface_org_kde_ksld org_kde_ksld
 * @section page_iface_org_kde_ksld_api API
 * See @ref iface_org_kde_ksld.
 */
/**
 * @defgroup iface_org_kde_ksld The org_kde_ksld interface
 */
extern const struct wl_interface org_kde_ksld_interface;
#endif

/**
 * @ingroup iface_org_kde_ksld
 * @struct org_kde_ksld_listener
 */
struct org_kde_ksld_listener {
	/**
	 * @since 2
	 */
	void (*osdProgress)(void *data,
			    struct org_kde_ksld *org_kde_ksld,
			    const char *icon,
			    int32_t percent,
			    const char *text);
	/**
	 * @since 2
	 */
	void (*osdText)(void *data,
			struct org_kde_ksld *org_kde_ksld,
			const char *icon,
			const char *text);
	/**
	 * @since 3
	 */
	void (*canSuspendSystem)(void *data,
				 struct org_kde_ksld *org_kde_ksld,
				 uint32_t enabled);
	/**
	 * @since 3
	 */
	void (*canHibernateSystem)(void *data,
				   struct org_kde_ksld *org_kde_ksld,
				   uint32_t enabled);
};

/**
 * @ingroup iface_org_kde_ksld
 */
static inline int
org_kde_ksld_add_listener(struct org_kde_ksld *org_kde_ksld,
			  const struct org_kde_ksld_listener *listener, void *data)
{
	return wl_proxy_add_listener((struct wl_proxy *) org_kde_ksld,
				     (void (**)(void)) listener, data);
}

#define ORG_KDE_KSLD_X11WINDOW 0
#define ORG_KDE_KSLD_SUSPENDSYSTEM 1
#define ORG_KDE_KSLD_HIBERNATESYSTEM 2

/**
 * @ingroup iface_org_kde_ksld
 */
#define ORG_KDE_KSLD_OSDPROGRESS_SINCE_VERSION 2
/**
 * @ingroup iface_org_kde_ksld
 */
#define ORG_KDE_KSLD_OSDTEXT_SINCE_VERSION 2
/**
 * @ingroup iface_org_kde_ksld
 */
#define ORG_KDE_KSLD_CANSUSPENDSYSTEM_SINCE_VERSION 3
/**
 * @ingroup iface_org_kde_ksld
 */
#define ORG_KDE_KSLD_CANHIBERNATESYSTEM_SINCE_VERSION 3

/**
 * @ingroup iface_org_kde_ksld
 */
#define ORG_KDE_KSLD_X11WINDOW_SINCE_VERSION 1
/**
 * @ingroup iface_org_kde_ksld
 */
#define ORG_KDE_KSLD_SUSPENDSYSTEM_SINCE_VERSION 3
/**
 * @ingroup iface_org_kde_ksld
 */
#define ORG_KDE_KSLD_HIBERNATESYSTEM_SINCE_VERSION 3

/** @ingroup iface_org_kde_ksld */
static inline void
org_kde_ksld_set_user_data(struct org_kde_ksld *org_kde_ksld, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) org_kde_ksld, user_data);
}

/** @ingroup iface_org_kde_ksld */
static inline void *
org_kde_ksld_get_user_data(struct org_kde_ksld *org_kde_ksld)
{
	return wl_proxy_get_user_data((struct wl_proxy *) org_kde_ksld);
}

static inline uint32_t
org_kde_ksld_get_version(struct org_kde_ksld *org_kde_ksld)
{
	return wl_proxy_get_version((struct wl_proxy *) org_kde_ksld);
}

/** @ingroup iface_org_kde_ksld */
static inline void
org_kde_ksld_destroy(struct org_kde_ksld *org_kde_ksld)
{
	wl_proxy_destroy((struct wl_proxy *) org_kde_ksld);
}

/**
 * @ingroup iface_org_kde_ksld
 */
static inline void
org_kde_ksld_x11window(struct org_kde_ksld *org_kde_ksld, uint32_t id)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_ksld,
			 ORG_KDE_KSLD_X11WINDOW, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_ksld), 0, id);
}

/**
 * @ingroup iface_org_kde_ksld
 */
static inline void
org_kde_ksld_suspendSystem(struct org_kde_ksld *org_kde_ksld)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_ksld,
			 ORG_KDE_KSLD_SUSPENDSYSTEM, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_ksld), 0);
}

/**
 * @ingroup iface_org_kde_ksld
 */
static inline void
org_kde_ksld_hibernateSystem(struct org_kde_ksld *org_kde_ksld)
{
	wl_proxy_marshal_flags((struct wl_proxy *) org_kde_ksld,
			 ORG_KDE_KSLD_HIBERNATESYSTEM, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_ksld), 0);
}

#ifdef  __cplusplus
}
#endif

#endif
