/**
 * @page page_ukui_output The ukui_output protocol
 * @section page_ifaces_ukui_output Interfaces
 * - @subpage page_iface_ukui_output - UKUI Wayland Output extension
 * @section page_copyright_ukui_output Copyright
 * <pre>
 *
 * Copyright (C) 2021, KylinSoft Co., Ltd.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see https://www.gnu.org/licenses/.
 * </pre>
 */

/* Generated by wayland-scanner 1.18.0 */

#ifndef UKUI_OUTPUT_CLIENT_PROTOCOL_H
#define UKUI_OUTPUT_CLIENT_PROTOCOL_H

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

#ifdef  __cplusplus
extern "C" {
#endif

struct ukui_output;

/**
 * @page page_iface_ukui_output ukui_output
 * @section page_iface_ukui_output_desc Description
 *
 * This example shows how to add extra functionality to Wayland
 * through an extension. This is the global object of the extension.
 * @section page_iface_ukui_output_api API
 * See @ref iface_ukui_output.
 */
/**
 * @defgroup iface_ukui_output The ukui_output interface
 *
 * This example shows how to add extra functionality to Wayland
 * through an extension. This is the global object of the extension.
 */
extern const struct wl_interface ukui_output_interface;

#define UKUI_OUTPUT_SET_OUTPUTS_PAINT_ENABLED 0


/**
 * @ingroup iface_ukui_output
 */
#define UKUI_OUTPUT_SET_OUTPUTS_PAINT_ENABLED_SINCE_VERSION 1

/** @ingroup iface_ukui_output */
static inline void
ukui_output_set_user_data(struct ukui_output *ukui_output, void *user_data)
{
	wl_proxy_set_user_data((struct wl_proxy *) ukui_output, user_data);
}

/** @ingroup iface_ukui_output */
static inline void *
ukui_output_get_user_data(struct ukui_output *ukui_output)
{
	return wl_proxy_get_user_data((struct wl_proxy *) ukui_output);
}

static inline uint32_t
ukui_output_get_version(struct ukui_output *ukui_output)
{
	return wl_proxy_get_version((struct wl_proxy *) ukui_output);
}

/** @ingroup iface_ukui_output */
static inline void
ukui_output_destroy(struct ukui_output *ukui_output)
{
	wl_proxy_destroy((struct wl_proxy *) ukui_output);
}

/**
 * @ingroup iface_ukui_output
 *
 * 允许/禁止绘制窗口到屏幕，通常用在屏幕设置阶段
 */
static inline void
ukui_output_set_outputs_paint_enabled(struct ukui_output *ukui_output, uint32_t enable)
{
	wl_proxy_marshal((struct wl_proxy *) ukui_output,
			 UKUI_OUTPUT_SET_OUTPUTS_PAINT_ENABLED, enable);
}

#ifdef  __cplusplus
}
#endif

#endif
