blob: 37b9a9e0a22c5bbe965f388758663401bdc00951 [file] [log] [blame]
/* Generated by wayland-scanner 1.13.0 */
#ifndef AURA_SHELL_SERVER_PROTOCOL_H
#define AURA_SHELL_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_aura_shell The aura_shell protocol
* @section page_ifaces_aura_shell Interfaces
* - @subpage page_iface_zaura_shell - aura_shell
* - @subpage page_iface_zaura_surface - aura shell interface to a wl_surface
* @section page_copyright_aura_shell Copyright
* <pre>
*
* Copyright 2017 The Chromium Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
* </pre>
*/
struct wl_surface;
struct zaura_shell;
struct zaura_surface;
/**
* @page page_iface_zaura_shell zaura_shell
* @section page_iface_zaura_shell_desc Description
*
* The global interface exposing aura shell capabilities is used to
* instantiate an interface extension for a wl_surface object.
* This extended interface will then allow the client to use aura shell
* specific functionality.
* @section page_iface_zaura_shell_api API
* See @ref iface_zaura_shell.
*/
/**
* @defgroup iface_zaura_shell The zaura_shell interface
*
* The global interface exposing aura shell capabilities is used to
* instantiate an interface extension for a wl_surface object.
* This extended interface will then allow the client to use aura shell
* specific functionality.
*/
extern const struct wl_interface zaura_shell_interface;
/**
* @page page_iface_zaura_surface zaura_surface
* @section page_iface_zaura_surface_desc Description
*
* An additional interface to a wl_surface object, which allows the
* client to access aura shell specific functionality for surface.
* @section page_iface_zaura_surface_api API
* See @ref iface_zaura_surface.
*/
/**
* @defgroup iface_zaura_surface The zaura_surface interface
*
* An additional interface to a wl_surface object, which allows the
* client to access aura shell specific functionality for surface.
*/
extern const struct wl_interface zaura_surface_interface;
#ifndef ZAURA_SHELL_ERROR_ENUM
#define ZAURA_SHELL_ERROR_ENUM
enum zaura_shell_error {
/**
* the surface already has an aura surface object associated
*/
ZAURA_SHELL_ERROR_AURA_SURFACE_EXISTS = 0,
};
#endif /* ZAURA_SHELL_ERROR_ENUM */
/**
* @ingroup iface_zaura_shell
* @struct zaura_shell_interface
*/
struct zaura_shell_interface {
/**
* extend surface interface for aura shell
*
* Instantiate an interface extension for the given wl_surface to
* provide aura shell functionality. If the given wl_surface is not
* associated with a shell surface, the shell_surface_missing
* protocol error is raised.
* @param id the new aura surface interface id
* @param surface the surface
*/
void (*get_aura_surface)(struct wl_client *client,
struct wl_resource *resource,
uint32_t id,
struct wl_resource *surface);
};
/**
* @ingroup iface_zaura_shell
*/
#define ZAURA_SHELL_GET_AURA_SURFACE_SINCE_VERSION 1
#ifndef ZAURA_SURFACE_FRAME_TYPE_ENUM
#define ZAURA_SURFACE_FRAME_TYPE_ENUM
/**
* @ingroup iface_zaura_surface
* different frame types
*
* Frame types that can be used to decorate a surface.
*/
enum zaura_surface_frame_type {
/**
* no frame
*/
ZAURA_SURFACE_FRAME_TYPE_NONE = 0,
/**
* caption with shadow
*/
ZAURA_SURFACE_FRAME_TYPE_NORMAL = 1,
/**
* shadow only
*/
ZAURA_SURFACE_FRAME_TYPE_SHADOW = 2,
};
#endif /* ZAURA_SURFACE_FRAME_TYPE_ENUM */
/**
* @ingroup iface_zaura_surface
* @struct zaura_surface_interface
*/
struct zaura_surface_interface {
/**
* request a frame for surface
*
* Suggests a surface should use a specific frame.
* @param type the new frame type
*/
void (*set_frame)(struct wl_client *client,
struct wl_resource *resource,
uint32_t type);
};
/**
* @ingroup iface_zaura_surface
*/
#define ZAURA_SURFACE_SET_FRAME_SINCE_VERSION 1
#ifdef __cplusplus
}
#endif
#endif