| Index: third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
|
| diff --git a/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
|
| index 67075749d39a18bf125e0ec382f3f4ee4107b40a..df69f7e08096fb2887844a4c83e2bb27d49038f1 100644
|
| --- a/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
|
| +++ b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
|
| @@ -33,9 +33,12 @@ struct wl_resource;
|
| * reset.
|
| *
|
| * @section page_ifaces_remote_shell_unstable_v1 Interfaces
|
| - * - @subpage page_iface_zwp_remote_shell_v1 - remote_shell
|
| - * - @subpage page_iface_zwp_remote_surface_v1 - A desktop window
|
| - * - @subpage page_iface_zwp_notification_surface_v1 - A notification window
|
| + * - @subpage page_iface_zcr_remote_shell_v1 - remote_shell
|
| + * - @subpage page_iface_zcr_remote_surface_v1 - A desktop window
|
| + * - @subpage page_iface_zcr_notification_surface_v1 - A notification window
|
| + * - @subpage page_iface_zwp_remote_shell_v1 - DEPRECATED
|
| + * - @subpage page_iface_zwp_remote_surface_v1 - DEPRECATED
|
| + * - @subpage page_iface_zwp_notification_surface_v1 - DEPRECATED
|
| * @section page_copyright_remote_shell_unstable_v1 Copyright
|
| * <pre>
|
| *
|
| @@ -62,11 +65,84 @@ struct wl_resource;
|
| * </pre>
|
| */
|
| struct wl_surface;
|
| +struct zcr_notification_surface_v1;
|
| +struct zcr_remote_shell_v1;
|
| +struct zcr_remote_surface_v1;
|
| struct zwp_notification_surface_v1;
|
| struct zwp_remote_shell_v1;
|
| struct zwp_remote_surface_v1;
|
|
|
| /**
|
| + * @page page_iface_zcr_remote_shell_v1 zcr_remote_shell_v1
|
| + * @section page_iface_zcr_remote_shell_v1_desc Description
|
| + *
|
| + * The global interface that allows clients to turn a wl_surface into a
|
| + * "real window" which is remotely managed but can be stacked, activated
|
| + * and made fullscreen by the user.
|
| + * @section page_iface_zcr_remote_shell_v1_api API
|
| + * See @ref iface_zcr_remote_shell_v1.
|
| + */
|
| +/**
|
| + * @defgroup iface_zcr_remote_shell_v1 The zcr_remote_shell_v1 interface
|
| + *
|
| + * The global interface that allows clients to turn a wl_surface into a
|
| + * "real window" which is remotely managed but can be stacked, activated
|
| + * and made fullscreen by the user.
|
| + */
|
| +extern const struct wl_interface zcr_remote_shell_v1_interface;
|
| +/**
|
| + * @page page_iface_zcr_remote_surface_v1 zcr_remote_surface_v1
|
| + * @section page_iface_zcr_remote_surface_v1_desc Description
|
| + *
|
| + * An interface that may be implemented by a wl_surface, for
|
| + * implementations that provide a desktop-style user interface
|
| + * and allows for remotely managed windows.
|
| + *
|
| + * It provides requests to treat surfaces like windows, allowing to set
|
| + * properties like app id and geometry.
|
| + *
|
| + * The client must call wl_surface.commit on the corresponding wl_surface
|
| + * for the remote_surface state to take effect.
|
| + *
|
| + * For a surface to be mapped by the compositor the client must have
|
| + * committed both an remote_surface state and a buffer.
|
| + * @section page_iface_zcr_remote_surface_v1_api API
|
| + * See @ref iface_zcr_remote_surface_v1.
|
| + */
|
| +/**
|
| + * @defgroup iface_zcr_remote_surface_v1 The zcr_remote_surface_v1 interface
|
| + *
|
| + * An interface that may be implemented by a wl_surface, for
|
| + * implementations that provide a desktop-style user interface
|
| + * and allows for remotely managed windows.
|
| + *
|
| + * It provides requests to treat surfaces like windows, allowing to set
|
| + * properties like app id and geometry.
|
| + *
|
| + * The client must call wl_surface.commit on the corresponding wl_surface
|
| + * for the remote_surface state to take effect.
|
| + *
|
| + * For a surface to be mapped by the compositor the client must have
|
| + * committed both an remote_surface state and a buffer.
|
| + */
|
| +extern const struct wl_interface zcr_remote_surface_v1_interface;
|
| +/**
|
| + * @page page_iface_zcr_notification_surface_v1 zcr_notification_surface_v1
|
| + * @section page_iface_zcr_notification_surface_v1_desc Description
|
| + *
|
| + * An interface that may be implemented by a wl_surface to host
|
| + * notification contents.
|
| + * @section page_iface_zcr_notification_surface_v1_api API
|
| + * See @ref iface_zcr_notification_surface_v1.
|
| + */
|
| +/**
|
| + * @defgroup iface_zcr_notification_surface_v1 The zcr_notification_surface_v1 interface
|
| + *
|
| + * An interface that may be implemented by a wl_surface to host
|
| + * notification contents.
|
| + */
|
| +extern const struct wl_interface zcr_notification_surface_v1_interface;
|
| +/**
|
| * @page page_iface_zwp_remote_shell_v1 zwp_remote_shell_v1
|
| * @section page_iface_zwp_remote_shell_v1_desc Description
|
| *
|
| @@ -137,6 +213,458 @@ extern const struct wl_interface zwp_remote_surface_v1_interface;
|
| */
|
| extern const struct wl_interface zwp_notification_surface_v1_interface;
|
|
|
| +#ifndef ZCR_REMOTE_SHELL_V1_CONTAINER_ENUM
|
| +#define ZCR_REMOTE_SHELL_V1_CONTAINER_ENUM
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + * containers for remote surfaces
|
| + *
|
| + * Determine how a remote surface should be stacked relative to other
|
| + * shell surfaces.
|
| + */
|
| +enum zcr_remote_shell_v1_container {
|
| + /**
|
| + * default container
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_CONTAINER_DEFAULT = 1,
|
| + /**
|
| + * system modal container
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_CONTAINER_OVERLAY = 2,
|
| +};
|
| +#endif /* ZCR_REMOTE_SHELL_V1_CONTAINER_ENUM */
|
| +
|
| +#ifndef ZCR_REMOTE_SHELL_V1_STATE_TYPE_ENUM
|
| +#define ZCR_REMOTE_SHELL_V1_STATE_TYPE_ENUM
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + * state types for remote surfaces
|
| + *
|
| + * Defines common show states for shell surfaces.
|
| + */
|
| +enum zcr_remote_shell_v1_state_type {
|
| + /**
|
| + * normal window state
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_STATE_TYPE_NORMAL = 1,
|
| + /**
|
| + * minimized window state
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_STATE_TYPE_MINIMIZED = 2,
|
| + /**
|
| + * maximized window state
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_STATE_TYPE_MAXIMIZED = 3,
|
| + /**
|
| + * fullscreen window state
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_STATE_TYPE_FULLSCREEN = 4,
|
| + /**
|
| + * pinned window state
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_STATE_TYPE_PINNED = 5,
|
| + /**
|
| + * trusted pinned window state
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_STATE_TYPE_TRUSTED_PINNED = 6,
|
| +};
|
| +#endif /* ZCR_REMOTE_SHELL_V1_STATE_TYPE_ENUM */
|
| +
|
| +#ifndef ZCR_REMOTE_SHELL_V1_ERROR_ENUM
|
| +#define ZCR_REMOTE_SHELL_V1_ERROR_ENUM
|
| +enum zcr_remote_shell_v1_error {
|
| + /**
|
| + * given wl_surface has another role
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_ERROR_ROLE = 0,
|
| + /**
|
| + * invalid notification id
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_ERROR_INVALID_NOTIFICATION_ID = 1,
|
| +};
|
| +#endif /* ZCR_REMOTE_SHELL_V1_ERROR_ENUM */
|
| +
|
| +#ifndef ZCR_REMOTE_SHELL_V1_LAYOUT_MODE_ENUM
|
| +#define ZCR_REMOTE_SHELL_V1_LAYOUT_MODE_ENUM
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + * the layout mode
|
| + *
|
| + * Determine how a client should layout surfaces.
|
| + */
|
| +enum zcr_remote_shell_v1_layout_mode {
|
| + /**
|
| + * multiple windows
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_LAYOUT_MODE_WINDOWED = 1,
|
| + /**
|
| + * restricted mode for tablet
|
| + */
|
| + ZCR_REMOTE_SHELL_V1_LAYOUT_MODE_TABLET = 2,
|
| +};
|
| +#endif /* ZCR_REMOTE_SHELL_V1_LAYOUT_MODE_ENUM */
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + * @struct zcr_remote_shell_v1_interface
|
| + */
|
| +struct zcr_remote_shell_v1_interface {
|
| + /**
|
| + * destroy remote_shell
|
| + *
|
| + * Destroy this remote_shell object.
|
| + *
|
| + * Destroying a bound remote_shell object while there are surfaces
|
| + * still alive created by this remote_shell object instance is
|
| + * illegal and will result in a protocol error.
|
| + */
|
| + void (*destroy)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * create a remote shell surface from a surface
|
| + *
|
| + * This creates an remote_surface for the given surface and gives
|
| + * it the remote_surface role. A wl_surface can only be given a
|
| + * remote_surface role once. If get_remote_surface is called with a
|
| + * wl_surface that already has an active remote_surface associated
|
| + * with it, or if it had any other role, an error is raised.
|
| + *
|
| + * See the documentation of remote_surface for more details about
|
| + * what an remote_surface is and how it is used.
|
| + */
|
| + void (*get_remote_surface)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + uint32_t id,
|
| + struct wl_resource *surface,
|
| + uint32_t container);
|
| + /**
|
| + * create a notification surface from a surface
|
| + *
|
| + * Creates a notification_surface for the given surface, gives it
|
| + * the notification_surface role and associated it with a
|
| + * notification id.
|
| + */
|
| + void (*get_notification_surface)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + uint32_t id,
|
| + struct wl_resource *surface,
|
| + const char *notification_id);
|
| +};
|
| +
|
| +#define ZCR_REMOTE_SHELL_V1_ACTIVATED 0
|
| +#define ZCR_REMOTE_SHELL_V1_CONFIGURATION_CHANGED 1
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + */
|
| +#define ZCR_REMOTE_SHELL_V1_ACTIVATED_SINCE_VERSION 1
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + */
|
| +#define ZCR_REMOTE_SHELL_V1_CONFIGURATION_CHANGED_SINCE_VERSION 1
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + * Sends an activated event to the client owning the resource.
|
| + * @param resource_ The client's resource
|
| + */
|
| +static inline void
|
| +zcr_remote_shell_v1_send_activated(struct wl_resource *resource_, struct wl_resource *gained_active, struct wl_resource *lost_active)
|
| +{
|
| + wl_resource_post_event(resource_, ZCR_REMOTE_SHELL_V1_ACTIVATED, gained_active, lost_active);
|
| +}
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_shell_v1
|
| + * Sends an configuration_changed event to the client owning the resource.
|
| + * @param resource_ The client's resource
|
| + */
|
| +static inline void
|
| +zcr_remote_shell_v1_send_configuration_changed(struct wl_resource *resource_, int32_t width, int32_t height, int32_t transform, wl_fixed_t scale_factor, int32_t work_area_inset_left, int32_t work_area_inset_top, int32_t work_area_inset_right, int32_t work_area_inset_bottom, uint32_t layout_mode)
|
| +{
|
| + wl_resource_post_event(resource_, ZCR_REMOTE_SHELL_V1_CONFIGURATION_CHANGED, width, height, transform, scale_factor, work_area_inset_left, work_area_inset_top, work_area_inset_right, work_area_inset_bottom, layout_mode);
|
| +}
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_surface_v1
|
| + * @struct zcr_remote_surface_v1_interface
|
| + */
|
| +struct zcr_remote_surface_v1_interface {
|
| + /**
|
| + * Destroy the remote_surface
|
| + *
|
| + * Unmap and destroy the window. The window will be effectively
|
| + * hidden from the user's point of view, and all state will be
|
| + * lost.
|
| + */
|
| + void (*destroy)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * set application ID
|
| + *
|
| + * Set an application identifier for the surface.
|
| + */
|
| + void (*set_app_id)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + const char *app_id);
|
| + /**
|
| + * set the new window geometry
|
| + *
|
| + * The window geometry of a window is its "visible bounds" from
|
| + * the user's perspective. Client-side decorations often have
|
| + * invisible portions like drop-shadows which should be ignored for
|
| + * the purposes of aligning, placing and constraining windows.
|
| + *
|
| + * The window geometry is double buffered, and will be applied at
|
| + * the time wl_surface.commit of the corresponding wl_surface is
|
| + * called.
|
| + *
|
| + * Once the window geometry of the surface is set once, it is not
|
| + * possible to unset it, and it will remain the same until
|
| + * set_window_geometry is called again, even if a new subsurface or
|
| + * buffer is attached.
|
| + *
|
| + * If never set, the value is the full bounds of the output. This
|
| + * updates dynamically on every commit.
|
| + *
|
| + * The arguments are given in the output coordinate space.
|
| + *
|
| + * The width and height must be greater than zero.
|
| + */
|
| + void (*set_window_geometry)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + int32_t x,
|
| + int32_t y,
|
| + int32_t width,
|
| + int32_t height);
|
| + /**
|
| + * set scale
|
| + *
|
| + * Set a scale factor that will be applied to surface and all
|
| + * descendants.
|
| + */
|
| + void (*set_scale)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + wl_fixed_t scale);
|
| + /**
|
| + * set a rectangular shadow
|
| + *
|
| + * Request that surface needs a rectangular shadow.
|
| + *
|
| + * This is only a request that the surface should have a
|
| + * rectangular shadow. The compositor may choose to ignore this
|
| + * request.
|
| + *
|
| + * The arguments are given in the output coordinate space and
|
| + * specifies the inner bounds of the shadow.
|
| + *
|
| + * The arguments are given in the output coordinate space.
|
| + * Specifying zero width and height will disable the shadow.
|
| + */
|
| + void (*set_rectangular_shadow)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + int32_t x,
|
| + int32_t y,
|
| + int32_t width,
|
| + int32_t height);
|
| + /**
|
| + * suggests the window's background opacity
|
| + *
|
| + * Suggests the window's background opacity when the shadow is
|
| + * requested.
|
| + */
|
| + void (*set_rectangular_shadow_background_opacity)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + wl_fixed_t opacity);
|
| + /**
|
| + * set surface title
|
| + *
|
| + * Set a short title for the surface.
|
| + *
|
| + * This string may be used to identify the surface in a task bar,
|
| + * window list, or other user interface elements provided by the
|
| + * compositor.
|
| + *
|
| + * The string must be encoded in UTF-8.
|
| + */
|
| + void (*set_title)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + const char *title);
|
| + /**
|
| + * set top inset for surface
|
| + *
|
| + * Set distance from the top of the surface to the contents.
|
| + *
|
| + * This distance typically represents the size of the window
|
| + * caption.
|
| + */
|
| + void (*set_top_inset)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + int32_t height);
|
| + /**
|
| + * make the surface active
|
| + *
|
| + * Make the surface active and bring it to the front.
|
| + * @param serial the serial of the user event
|
| + */
|
| + void (*activate)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + uint32_t serial);
|
| + /**
|
| + * maximize
|
| + *
|
| + * Request that surface is maximized. The window geometry will be
|
| + * updated to whatever the compositor finds appropriate for a
|
| + * maximized window.
|
| + *
|
| + * This is only a request that the window should be maximized. The
|
| + * compositor may choose to ignore this request. The client should
|
| + * listen to set_maximized events to determine if the window was
|
| + * maximized or not.
|
| + */
|
| + void (*maximize)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * minimize
|
| + *
|
| + * Request that surface is minimized.
|
| + *
|
| + * This is only a request that the window should be minimized. The
|
| + * compositor may choose to ignore this request. The client should
|
| + * listen to set_minimized events to determine if the window was
|
| + * minimized or not.
|
| + */
|
| + void (*minimize)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * restore
|
| + *
|
| + * Request that surface is restored. This restores the window
|
| + * geometry to what it was before the window was minimized,
|
| + * maximized or made fullscreen.
|
| + *
|
| + * This is only a request that the window should be restored. The
|
| + * compositor may choose to ignore this request. The client should
|
| + * listen to unset_maximized, unset_minimize and unset_fullscreen
|
| + * events to determine if the window was restored or not.
|
| + */
|
| + void (*restore)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * fullscreen
|
| + *
|
| + * Request that surface is made fullscreen.
|
| + *
|
| + * This is only a request that the window should be made
|
| + * fullscreen. The compositor may choose to ignore this request.
|
| + * The client should listen to set_fullscreen events to determine
|
| + * if the window was made fullscreen or not.
|
| + */
|
| + void (*fullscreen)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * unfullscreen
|
| + *
|
| + * Request that surface is made unfullscreen.
|
| + *
|
| + * This is only a request that the window should be made
|
| + * unfullscreen. The compositor may choose to ignore this request.
|
| + * The client should listen to unset_fullscreen events to determine
|
| + * if the window was made unfullscreen or not.
|
| + */
|
| + void (*unfullscreen)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * pin
|
| + *
|
| + * Request that surface is pinned.
|
| + *
|
| + * This is only a request that the window should be pinned. The
|
| + * compositor may choose to ignore this request. The client should
|
| + * listen to state_changed events to determine if the window was
|
| + * pinned or not. If trusted flag is non-zero, the app can prevent
|
| + * users from exiting the pinned mode.
|
| + */
|
| + void (*pin)(struct wl_client *client,
|
| + struct wl_resource *resource,
|
| + int32_t trusted);
|
| + /**
|
| + * unpin
|
| + *
|
| + * Request that surface is unpinned.
|
| + *
|
| + * This is only a request that the window should be unpinned. The
|
| + * compositor may choose to ignore this request. The client should
|
| + * listen to unset_pinned events to determine if the window was
|
| + * unpinned or not.
|
| + */
|
| + void (*unpin)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * suggests a re-layout of remote shell input area
|
| + *
|
| + * Suggests a surface should become system modal.
|
| + */
|
| + void (*set_system_modal)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| + /**
|
| + * suggests a re-layout of remote shell input area
|
| + *
|
| + * Suggests a surface should become non system modal.
|
| + */
|
| + void (*unset_system_modal)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| +};
|
| +
|
| +#define ZCR_REMOTE_SURFACE_V1_CLOSE 0
|
| +#define ZCR_REMOTE_SURFACE_V1_STATE_TYPE_CHANGED 1
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_surface_v1
|
| + */
|
| +#define ZCR_REMOTE_SURFACE_V1_CLOSE_SINCE_VERSION 1
|
| +/**
|
| + * @ingroup iface_zcr_remote_surface_v1
|
| + */
|
| +#define ZCR_REMOTE_SURFACE_V1_STATE_TYPE_CHANGED_SINCE_VERSION 1
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_surface_v1
|
| + * Sends an close event to the client owning the resource.
|
| + * @param resource_ The client's resource
|
| + */
|
| +static inline void
|
| +zcr_remote_surface_v1_send_close(struct wl_resource *resource_)
|
| +{
|
| + wl_resource_post_event(resource_, ZCR_REMOTE_SURFACE_V1_CLOSE);
|
| +}
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_remote_surface_v1
|
| + * Sends an state_type_changed event to the client owning the resource.
|
| + * @param resource_ The client's resource
|
| + */
|
| +static inline void
|
| +zcr_remote_surface_v1_send_state_type_changed(struct wl_resource *resource_, uint32_t state_type)
|
| +{
|
| + wl_resource_post_event(resource_, ZCR_REMOTE_SURFACE_V1_STATE_TYPE_CHANGED, state_type);
|
| +}
|
| +
|
| +/**
|
| + * @ingroup iface_zcr_notification_surface_v1
|
| + * @struct zcr_notification_surface_v1_interface
|
| + */
|
| +struct zcr_notification_surface_v1_interface {
|
| + /**
|
| + * Destroy the notification_surface
|
| + *
|
| + * Unmap and destroy the notification surface.
|
| + */
|
| + void (*destroy)(struct wl_client *client,
|
| + struct wl_resource *resource);
|
| +};
|
| +
|
| +
|
| #ifndef ZWP_REMOTE_SHELL_V1_CONTAINER_ENUM
|
| #define ZWP_REMOTE_SHELL_V1_CONTAINER_ENUM
|
| /**
|
|
|