chromium/out/Default/gen/third_party/wayland-protocols/src/unstable/text-input/text-input-unstable-v3-server-protocol.h

/* Generated by wayland-scanner 1.23.0 */

#ifndef TEXT_INPUT_UNSTABLE_V3_SERVER_PROTOCOL_H
#define TEXT_INPUT_UNSTABLE_V3_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_text_input_unstable_v3 The text_input_unstable_v3 protocol
 * Protocol for composing text
 *
 * @section page_desc_text_input_unstable_v3 Description
 *
 * This protocol allows compositors to act as input methods and to send text
 * to applications. A text input object is used to manage state of what are
 * typically text entry fields in the application.
 *
 * This document adheres to the RFC 2119 when using words like "must",
 * "should", "may", etc.
 *
 * Warning! The protocol described in this file is experimental and
 * backward incompatible changes may be made. Backward compatible changes
 * may be added together with the corresponding interface version bump.
 * Backward incompatible changes are done by bumping the version number in
 * the protocol and interface names and resetting the interface version.
 * Once the protocol is to be declared stable, the 'z' prefix and the
 * version number in the protocol and interface names are removed and the
 * interface version number is reset.
 *
 * @section page_ifaces_text_input_unstable_v3 Interfaces
 * - @subpage page_iface_zwp_text_input_v3 - text input
 * - @subpage page_iface_zwp_text_input_manager_v3 - text input manager
 * @section page_copyright_text_input_unstable_v3 Copyright
 * <pre>
 *
 * Copyright © 2012, 2013 Intel Corporation
 * Copyright © 2015, 2016 Jan Arne Petersen
 * Copyright © 2017, 2018 Red Hat, Inc.
 * Copyright © 2018       Purism SPC
 *
 * Permission to use, copy, modify, distribute, and sell this
 * software and its documentation for any purpose is hereby granted
 * without fee, provided that the above copyright notice appear in
 * all copies and that both that copyright notice and this permission
 * notice appear in supporting documentation, and that the name of
 * the copyright holders not be used in advertising or publicity
 * pertaining to distribution of the software without specific,
 * written prior permission.  The copyright holders make no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied
 * warranty.
 *
 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
 * THIS SOFTWARE.
 * </pre>
 */
struct wl_seat;
struct wl_surface;
struct zwp_text_input_manager_v3;
struct zwp_text_input_v3;

#ifndef ZWP_TEXT_INPUT_V3_INTERFACE
#define ZWP_TEXT_INPUT_V3_INTERFACE
/**
 * @page page_iface_zwp_text_input_v3 zwp_text_input_v3
 * @section page_iface_zwp_text_input_v3_desc Description
 *
 * The zwp_text_input_v3 interface represents text input and input methods
 * associated with a seat. It provides enter/leave events to follow the
 * text input focus for a seat.
 *
 * Requests are used to enable/disable the text-input object and set
 * state information like surrounding and selected text or the content type.
 * The information about the entered text is sent to the text-input object
 * via the preedit_string and commit_string events.
 *
 * Text is valid UTF-8 encoded, indices and lengths are in bytes. Indices
 * must not point to middle bytes inside a code point: they must either
 * point to the first byte of a code point or to the end of the buffer.
 * Lengths must be measured between two valid indices.
 *
 * Focus moving throughout surfaces will result in the emission of
 * zwp_text_input_v3.enter and zwp_text_input_v3.leave events. The focused
 * surface must commit zwp_text_input_v3.enable and
 * zwp_text_input_v3.disable requests as the keyboard focus moves across
 * editable and non-editable elements of the UI. Those two requests are not
 * expected to be paired with each other, the compositor must be able to
 * handle consecutive series of the same request.
 *
 * State is sent by the state requests (set_surrounding_text,
 * set_content_type and set_cursor_rectangle) and a commit request. After an
 * enter event or disable request all state information is invalidated and
 * needs to be resent by the client.
 * @section page_iface_zwp_text_input_v3_api API
 * See @ref iface_zwp_text_input_v3.
 */
/**
 * @defgroup iface_zwp_text_input_v3 The zwp_text_input_v3 interface
 *
 * The zwp_text_input_v3 interface represents text input and input methods
 * associated with a seat. It provides enter/leave events to follow the
 * text input focus for a seat.
 *
 * Requests are used to enable/disable the text-input object and set
 * state information like surrounding and selected text or the content type.
 * The information about the entered text is sent to the text-input object
 * via the preedit_string and commit_string events.
 *
 * Text is valid UTF-8 encoded, indices and lengths are in bytes. Indices
 * must not point to middle bytes inside a code point: they must either
 * point to the first byte of a code point or to the end of the buffer.
 * Lengths must be measured between two valid indices.
 *
 * Focus moving throughout surfaces will result in the emission of
 * zwp_text_input_v3.enter and zwp_text_input_v3.leave events. The focused
 * surface must commit zwp_text_input_v3.enable and
 * zwp_text_input_v3.disable requests as the keyboard focus moves across
 * editable and non-editable elements of the UI. Those two requests are not
 * expected to be paired with each other, the compositor must be able to
 * handle consecutive series of the same request.
 *
 * State is sent by the state requests (set_surrounding_text,
 * set_content_type and set_cursor_rectangle) and a commit request. After an
 * enter event or disable request all state information is invalidated and
 * needs to be resent by the client.
 */
extern const struct wl_interface zwp_text_input_v3_interface;
#endif
#ifndef ZWP_TEXT_INPUT_MANAGER_V3_INTERFACE
#define ZWP_TEXT_INPUT_MANAGER_V3_INTERFACE
/**
 * @page page_iface_zwp_text_input_manager_v3 zwp_text_input_manager_v3
 * @section page_iface_zwp_text_input_manager_v3_desc Description
 *
 * A factory for text-input objects. This object is a global singleton.
 * @section page_iface_zwp_text_input_manager_v3_api API
 * See @ref iface_zwp_text_input_manager_v3.
 */
/**
 * @defgroup iface_zwp_text_input_manager_v3 The zwp_text_input_manager_v3 interface
 *
 * A factory for text-input objects. This object is a global singleton.
 */
extern const struct wl_interface zwp_text_input_manager_v3_interface;
#endif

#ifndef ZWP_TEXT_INPUT_V3_CHANGE_CAUSE_ENUM
#define ZWP_TEXT_INPUT_V3_CHANGE_CAUSE_ENUM
/**
 * @ingroup iface_zwp_text_input_v3
 * text change reason
 *
 * Reason for the change of surrounding text or cursor posision.
 */
enum zwp_text_input_v3_change_cause {};
/**
 * @ingroup iface_zwp_text_input_v3
 * Validate a zwp_text_input_v3 change_cause value.
 *
 * @return true on success, false on error.
 * @ref zwp_text_input_v3_change_cause
 */
static inline bool
zwp_text_input_v3_change_cause_is_valid(uint32_t value, uint32_t version) {}
#endif /* ZWP_TEXT_INPUT_V3_CHANGE_CAUSE_ENUM */

#ifndef ZWP_TEXT_INPUT_V3_CONTENT_HINT_ENUM
#define ZWP_TEXT_INPUT_V3_CONTENT_HINT_ENUM
/**
 * @ingroup iface_zwp_text_input_v3
 * content hint
 *
 * Content hint is a bitmask to allow to modify the behavior of the text
 * input.
 */
enum zwp_text_input_v3_content_hint {};
/**
 * @ingroup iface_zwp_text_input_v3
 * Validate a zwp_text_input_v3 content_hint value.
 *
 * @return true on success, false on error.
 * @ref zwp_text_input_v3_content_hint
 */
static inline bool
zwp_text_input_v3_content_hint_is_valid(uint32_t value, uint32_t version) {}
#endif /* ZWP_TEXT_INPUT_V3_CONTENT_HINT_ENUM */

#ifndef ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_ENUM
#define ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_ENUM
/**
 * @ingroup iface_zwp_text_input_v3
 * content purpose
 *
 * The content purpose allows to specify the primary purpose of a text
 * input.
 *
 * This allows an input method to show special purpose input panels with
 * extra characters or to disallow some characters.
 */
enum zwp_text_input_v3_content_purpose {};
/**
 * @ingroup iface_zwp_text_input_v3
 * Validate a zwp_text_input_v3 content_purpose value.
 *
 * @return true on success, false on error.
 * @ref zwp_text_input_v3_content_purpose
 */
static inline bool
zwp_text_input_v3_content_purpose_is_valid(uint32_t value, uint32_t version) {}
#endif /* ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_ENUM */

/**
 * @ingroup iface_zwp_text_input_v3
 * @struct zwp_text_input_v3_interface
 */
struct zwp_text_input_v3_interface {};

#define ZWP_TEXT_INPUT_V3_ENTER
#define ZWP_TEXT_INPUT_V3_LEAVE
#define ZWP_TEXT_INPUT_V3_PREEDIT_STRING
#define ZWP_TEXT_INPUT_V3_COMMIT_STRING
#define ZWP_TEXT_INPUT_V3_DELETE_SURROUNDING_TEXT
#define ZWP_TEXT_INPUT_V3_DONE

/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_ENTER_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_LEAVE_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_PREEDIT_STRING_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_COMMIT_STRING_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_DELETE_SURROUNDING_TEXT_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_DONE_SINCE_VERSION

/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_DESTROY_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_ENABLE_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_DISABLE_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_SET_SURROUNDING_TEXT_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_SET_TEXT_CHANGE_CAUSE_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_SET_CONTENT_TYPE_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_SET_CURSOR_RECTANGLE_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_v3
 */
#define ZWP_TEXT_INPUT_V3_COMMIT_SINCE_VERSION

/**
 * @ingroup iface_zwp_text_input_v3
 * Sends an enter event to the client owning the resource.
 * @param resource_ The client's resource
 */
static inline void
zwp_text_input_v3_send_enter(struct wl_resource *resource_, struct wl_resource *surface)
{}

/**
 * @ingroup iface_zwp_text_input_v3
 * Sends an leave event to the client owning the resource.
 * @param resource_ The client's resource
 */
static inline void
zwp_text_input_v3_send_leave(struct wl_resource *resource_, struct wl_resource *surface)
{}

/**
 * @ingroup iface_zwp_text_input_v3
 * Sends an preedit_string event to the client owning the resource.
 * @param resource_ The client's resource
 */
static inline void
zwp_text_input_v3_send_preedit_string(struct wl_resource *resource_, const char *text, int32_t cursor_begin, int32_t cursor_end)
{}

/**
 * @ingroup iface_zwp_text_input_v3
 * Sends an commit_string event to the client owning the resource.
 * @param resource_ The client's resource
 */
static inline void
zwp_text_input_v3_send_commit_string(struct wl_resource *resource_, const char *text)
{}

/**
 * @ingroup iface_zwp_text_input_v3
 * Sends an delete_surrounding_text event to the client owning the resource.
 * @param resource_ The client's resource
 * @param before_length length of text before current cursor position
 * @param after_length length of text after current cursor position
 */
static inline void
zwp_text_input_v3_send_delete_surrounding_text(struct wl_resource *resource_, uint32_t before_length, uint32_t after_length)
{}

/**
 * @ingroup iface_zwp_text_input_v3
 * Sends an done event to the client owning the resource.
 * @param resource_ The client's resource
 */
static inline void
zwp_text_input_v3_send_done(struct wl_resource *resource_, uint32_t serial)
{}

/**
 * @ingroup iface_zwp_text_input_manager_v3
 * @struct zwp_text_input_manager_v3_interface
 */
struct zwp_text_input_manager_v3_interface {};


/**
 * @ingroup iface_zwp_text_input_manager_v3
 */
#define ZWP_TEXT_INPUT_MANAGER_V3_DESTROY_SINCE_VERSION
/**
 * @ingroup iface_zwp_text_input_manager_v3
 */
#define ZWP_TEXT_INPUT_MANAGER_V3_GET_TEXT_INPUT_SINCE_VERSION

#ifdef  __cplusplus
}
#endif

#endif