mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-19 20:18:15 +02:00
Add a request to be called by the client when the word currently being composed is tapped by the user. Input methods often use this information to offer more word suggestions to the user. Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
250 lines
12 KiB
XML
250 lines
12 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="text">
|
|
|
|
<copyright>
|
|
Copyright © 2012 Intel Corporation
|
|
|
|
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.
|
|
</copyright>
|
|
|
|
<interface name="text_model" version="1">
|
|
<description summary="text model">
|
|
A model for text input. Adds support for text input and input methods to
|
|
applications. A text_model object is created from a text_model_factory and
|
|
corresponds typically to a text entry in an application. Requests are used
|
|
to activate/deactivate the model and set information like surrounding and
|
|
selected text or the content type. The information about entered text is
|
|
sent to the model via the pre-edit and commit events. Using this interface
|
|
removes the need for applications to directly process hardware key events
|
|
and compose text out of them.
|
|
</description>
|
|
<request name="set_surrounding_text">
|
|
<description summary="sets the surrounding text">
|
|
Sets the plain surrounding text around the input position. Cursor is the
|
|
byte index within the surrounding text. Anchor is the byte index of the
|
|
selection anchor within the surrounding text. If there is no selected
|
|
text anchor is the same as cursor.
|
|
</description>
|
|
<arg name="text" type="string"/>
|
|
<arg name="cursor" type="uint"/>
|
|
<arg name="anchor" type="uint"/>
|
|
</request>
|
|
<request name="activate">
|
|
<description summary="request activation">
|
|
Requests the model to be activated (typically when the text entry gets
|
|
focus). The seat argument is a wl_seat which maintains the focus for
|
|
this activation. The surface argument is a wl_surface assigned to the
|
|
model and tracked for focus lost. The activated event is emitted on
|
|
successful activation.
|
|
</description>
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="seat" type="object" interface="wl_seat"/>
|
|
<arg name="surface" type="object" interface="wl_surface"/>
|
|
</request>
|
|
<request name="deactivate">
|
|
<description summary="request deactivation">
|
|
Requests the model to be deactivated (typically when the text entry
|
|
lost focus). The seat argument is a wl_seat which was used for
|
|
activation.
|
|
</description>
|
|
<arg name="seat" type="object" interface="wl_seat"/>
|
|
</request>
|
|
<request name="reset">
|
|
<description summary="reset">
|
|
Should be called by an editor widget when the input state should
|
|
be reseted, for example after the text was changed outside of the
|
|
normal input method flow.
|
|
</description>
|
|
<arg name="serial" type="uint"/>
|
|
</request>
|
|
<request name="set_micro_focus">
|
|
<arg name="x" type="int"/>
|
|
<arg name="y" type="int"/>
|
|
<arg name="width" type="int"/>
|
|
<arg name="height" type="int"/>
|
|
</request>
|
|
<request name="set_preedit"/>
|
|
<enum name="content_hint">
|
|
<description summary="content hint">
|
|
Content hint is a bitmask to allow to modify the behavior of the text input
|
|
</description>
|
|
<entry name="none" value="0x0" summary="no special behaviour"/>
|
|
<entry name="default" value="0x7" summary="auto completion, correction and capitalization"/>
|
|
<entry name="password" value="0xc" summary="hidden and sensitive text"/>
|
|
<entry name="auto_completion" value="0x1" summary="suggest word completions"/>
|
|
<entry name="auto_correction" value="0x2" summary="suggest word corrections"/>
|
|
<entry name="auto_capitalization" value="0x4" summary="switch to uppercase letters at the start of a sentence"/>
|
|
<entry name="lowercase" value="0x8" summary="prefer lowercase letters"/>
|
|
<entry name="uppercase" value="0x10" summary="prefer uppercase letters"/>
|
|
<entry name="titlecase" value="0x20" summary="prefer casing for titles and headings (can be language dependend)"/>
|
|
<entry name="hidden_text" value="0x40" summary="characters should be hidden"/>
|
|
<entry name="sensitive_data" value="0x80" summary="typed text should not be stored"/>
|
|
<entry name="latin" value="0x100" summary="just latin characters should be entered"/>
|
|
<entry name="multiline" value="0x200" summary="the text input is multiline"/>
|
|
</enum>
|
|
<enum name="content_purpose">
|
|
<description summary="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.
|
|
</description>
|
|
<entry name="normal" value="0" summary="default input, allowing all characters"/>
|
|
<entry name="alpha" value="1" summary="allow only alphabetic characters"/>
|
|
<entry name="digits" value="2" summary="allow only digits"/>
|
|
<entry name="number" value="3" summary="input a number (including decimal separator and sign)"/>
|
|
<entry name="phone" value="4" summary="input a phone number"/>
|
|
<entry name="url" value="5" summary="input an URL"/>
|
|
<entry name="email" value="6" summary="input an email address"/>
|
|
<entry name="name" value="7" summary="input a name of a person"/>
|
|
<entry name="password" value="8" summary="input a password (combine with password or sensitive_data hint)"/>
|
|
<entry name="date" value="9" summary="input a date"/>
|
|
<entry name="time" value="10" summary="input a time"/>
|
|
<entry name="datetime" value="11" summary="input a date and time"/>
|
|
<entry name="terminal" value="12" summary="input for a terminal"/>
|
|
</enum>
|
|
<request name="set_content_type">
|
|
<description summary="set content purpose and hint">
|
|
Sets the content purpose and content hint. While the purpose is the
|
|
basic purpose of an input field, the hint flags allow to modify some
|
|
of the behavior.
|
|
|
|
When no content type is explicitly set, a normal content purpose with
|
|
default hints (auto completion, auto correction, auto capitalization)
|
|
should be assumed.
|
|
</description>
|
|
<arg name="hint" type="uint"/>
|
|
<arg name="purpose" type="uint"/>
|
|
</request>
|
|
<request name="invoke_action">
|
|
<arg name="button" type="uint"/>
|
|
<arg name="index" type="uint"/>
|
|
</request>
|
|
<event name="commit_string">
|
|
<description summary="commit">
|
|
Notify when text should be inserted into the editor widget. The text
|
|
to commit could be either just a single character after a key press
|
|
or the result of some composing (pre-edit). It also sets the new
|
|
cursor position (as byte index) relative to the inserted text.
|
|
</description>
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="text" type="string"/>
|
|
<arg name="index" type="uint"/>
|
|
</event>
|
|
<event name="preedit_string">
|
|
<description summary="pre-edit">
|
|
Notify when a new composing text (pre-edit) should be set around the
|
|
current cursor position. Any previously set composing text should
|
|
be removed. It also sets the cursor position (as byte index) relative
|
|
to the start of the composing text.
|
|
</description>
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="text" type="string"/>
|
|
<arg name="commit" type="string"/>
|
|
</event>
|
|
<event name="delete_surrounding_text">
|
|
<description summary="delete surrounding text">
|
|
Notify when the text around the current cursor position should be
|
|
deleted. Index is relative to the current cursor (as byte index).
|
|
Length is the length of deleted text (as bytes).
|
|
</description>
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="index" type="int"/>
|
|
<arg name="length" type="uint"/>
|
|
</event>
|
|
<enum name="preedit_style">
|
|
<entry name="default" value="1"/>
|
|
<entry name="active" value="2"/>
|
|
<entry name="inactive" value="3"/>
|
|
<entry name="highlight" value="4"/>
|
|
<entry name="underline" value="5"/>
|
|
<entry name="selection" value="6"/>
|
|
<entry name="incorrect" value="7"/>
|
|
</enum>
|
|
<event name="preedit_styling">
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="index" type="uint"/>
|
|
<arg name="length" type="uint"/>
|
|
<arg name="style" type="uint"/>
|
|
</event>
|
|
<event name="preedit_cursor">
|
|
<description summary="pre-edit cursor">
|
|
Sets the cursor position inside the composing text (as byte index)
|
|
relative to the start of the composing text.
|
|
</description>
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="index" type="int"/>
|
|
</event>
|
|
<event name="modifiers_map">
|
|
<description summary="modifiers map">
|
|
Transfer an array of 0-terminated modifiers names. The position in
|
|
the array is the index of the modifier as used in the modifiers
|
|
bitmask in the keysym event.
|
|
</description>
|
|
<arg name="map" type="array"/>
|
|
</event>
|
|
<event name="keysym">
|
|
<description summary="keysym">
|
|
Notify when a key event was sent. Key events should not be used
|
|
for normal text input operations, which should be done with
|
|
commit_string, delete_surrounfing_text, etc. The key event follows
|
|
the wl_keyboard key event convention. State is a XKB keysym, state a
|
|
wl_keyboard key_state. Modifiers are a mask for effective modifiers
|
|
(where the modfier indices are set by the modifiers_map event)
|
|
</description>
|
|
<arg name="serial" type="uint"/>
|
|
<arg name="time" type="uint"/>
|
|
<arg name="sym" type="uint"/>
|
|
<arg name="state" type="uint"/>
|
|
<arg name="modifiers" type="uint"/>
|
|
</event>
|
|
<event name="selection_replacement"/>
|
|
<event name="direction"/>
|
|
<event name="locale"/>
|
|
<event name="enter">
|
|
<description summary="enter event">
|
|
Notify the model when it is activated. Typically in response to an
|
|
activate request.
|
|
</description>
|
|
<arg name="surface" type="object" interface="wl_surface"/>
|
|
</event>
|
|
<event name="leave">
|
|
<description summary="leave event">
|
|
Notify the model when it is deactivated. Either in response to a
|
|
deactivate request or when the assigned surface lost focus or was
|
|
destroyed.
|
|
</description>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="text_model_factory" version="1">
|
|
<description summary="text model factory">
|
|
A factory for text models. This object is a singleton global.
|
|
</description>
|
|
<request name="create_text_model">
|
|
<description summary="create text model">
|
|
Creates a new text model object.
|
|
</description>
|
|
<arg name="id" type="new_id" interface="text_model"/>
|
|
</request>
|
|
</interface>
|
|
</protocol>
|