2012-09-10 01:08:41 +04:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<protocol name="input_method">
|
|
|
|
<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="input_method_context" version="1">
|
|
|
|
<description summary="input method context">
|
|
|
|
Corresponds to a text model on input method side. An input method context
|
|
|
|
is created on text mode activation on the input method side. It allows to
|
|
|
|
receive information about the text model from the application via events.
|
|
|
|
Input method contexts do not keep state after deactivation and should be
|
|
|
|
destroyed after deactivation is handled.
|
2013-04-18 18:47:33 +04:00
|
|
|
|
|
|
|
Serials are used to synchronize the state between the text input and
|
|
|
|
an input method. New serials are sent by the text input in the
|
|
|
|
commit_state request and are used by the input method to indicate
|
|
|
|
the known text input state in events like preedit_string, commit_string,
|
|
|
|
and keysym. The text input can then ignore events from the input method
|
|
|
|
which are based on an outdated state (for example after a reset).
|
2012-09-10 01:08:41 +04:00
|
|
|
</description>
|
|
|
|
<request name="destroy" type="destructor"/>
|
|
|
|
<request name="commit_string">
|
|
|
|
<description summary="commit string">
|
2013-04-18 18:47:20 +04:00
|
|
|
Send the commit string text to the applications text model and
|
|
|
|
set the cursor at index (as byte index) relative to the
|
|
|
|
beginning of inserted text.
|
2012-09-10 01:08:41 +04:00
|
|
|
</description>
|
2013-01-17 00:26:39 +04:00
|
|
|
<arg name="serial" type="uint"/>
|
2012-09-10 01:08:41 +04:00
|
|
|
<arg name="text" type="string"/>
|
|
|
|
</request>
|
2012-09-10 01:08:43 +04:00
|
|
|
<request name="preedit_string">
|
|
|
|
<description summary="pre-edit string">
|
2013-04-18 18:47:20 +04:00
|
|
|
Send the pre-edit string text to the applications text model. The commit
|
|
|
|
text can be used to replace the preedit text on reset (for example on
|
|
|
|
unfocus).
|
2012-09-10 01:08:43 +04:00
|
|
|
</description>
|
2013-01-17 00:26:39 +04:00
|
|
|
<arg name="serial" type="uint"/>
|
2012-09-10 01:08:43 +04:00
|
|
|
<arg name="text" type="string"/>
|
2013-01-17 00:26:38 +04:00
|
|
|
<arg name="commit" type="string"/>
|
|
|
|
</request>
|
|
|
|
<request name="preedit_styling">
|
2013-04-18 18:47:20 +04:00
|
|
|
<description summary="pre-edit styling">
|
|
|
|
Sets styling information on composing text. The style is applied for
|
|
|
|
length (in bytes) characters from index relative to the beginning of the
|
|
|
|
composing text (as byte index). Multiple styles can be applied to a
|
|
|
|
composing text.
|
|
|
|
|
|
|
|
This request should be sent before sending preedit_string request.
|
|
|
|
</description>
|
2012-09-10 01:08:43 +04:00
|
|
|
<arg name="index" type="uint"/>
|
2013-01-17 00:26:38 +04:00
|
|
|
<arg name="length" type="uint"/>
|
|
|
|
<arg name="style" type="uint"/>
|
|
|
|
</request>
|
|
|
|
<request 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.
|
2013-04-18 18:47:20 +04:00
|
|
|
|
|
|
|
This request should be sent before sending preedit_string request.
|
2013-01-17 00:26:38 +04:00
|
|
|
</description>
|
|
|
|
<arg name="index" type="int"/>
|
2012-09-10 01:08:43 +04:00
|
|
|
</request>
|
2012-09-10 01:08:44 +04:00
|
|
|
<request name="delete_surrounding_text">
|
|
|
|
<arg name="index" type="int"/>
|
|
|
|
<arg name="length" type="uint"/>
|
|
|
|
</request>
|
2013-01-31 18:52:23 +04:00
|
|
|
<request name="cursor_position">
|
|
|
|
<arg name="index" type="int"/>
|
|
|
|
<arg name="anchor" type="int"/>
|
|
|
|
</request>
|
2012-11-18 22:06:43 +04:00
|
|
|
<request name="modifiers_map">
|
|
|
|
<arg name="map" type="array"/>
|
|
|
|
</request>
|
|
|
|
<request name="keysym">
|
|
|
|
<description summary="keysym">
|
2013-04-18 18:47:20 +04:00
|
|
|
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. Sym is a XKB keysym, state a wl_keyboard key_state.
|
2012-11-18 22:06:43 +04:00
|
|
|
</description>
|
|
|
|
<arg name="serial" type="uint"/>
|
|
|
|
<arg name="time" type="uint"/>
|
|
|
|
<arg name="sym" type="uint"/>
|
2012-09-10 01:08:45 +04:00
|
|
|
<arg name="state" type="uint"/>
|
2012-11-18 22:06:43 +04:00
|
|
|
<arg name="modifiers" type="uint"/>
|
2012-09-10 01:08:45 +04:00
|
|
|
</request>
|
2012-11-18 22:06:45 +04:00
|
|
|
<request name="grab_keyboard">
|
|
|
|
<description summary="grab hardware keyboard">
|
|
|
|
Allows an input method to receive hardware keyboard input and process
|
2013-04-18 18:47:20 +04:00
|
|
|
key events to generate text events (with pre-edit) over the wire. This
|
|
|
|
allows input methods which compose multiple key events for inputting
|
|
|
|
text like it is done for CJK languages.
|
2012-11-18 22:06:45 +04:00
|
|
|
</description>
|
|
|
|
<arg name="keyboard" type="new_id" interface="wl_keyboard"/>
|
|
|
|
</request>
|
2012-11-18 22:06:46 +04:00
|
|
|
<request name="key">
|
|
|
|
<arg name="serial" type="uint"/>
|
|
|
|
<arg name="time" type="uint"/>
|
|
|
|
<arg name="key" type="uint"/>
|
|
|
|
<arg name="state" type="uint"/>
|
|
|
|
</request>
|
|
|
|
<request name="modifiers">
|
|
|
|
<arg name="serial" type="uint"/>
|
|
|
|
<arg name="mods_depressed" type="uint"/>
|
|
|
|
<arg name="mods_latched" type="uint"/>
|
|
|
|
<arg name="mods_locked" type="uint"/>
|
|
|
|
<arg name="group" type="uint"/>
|
|
|
|
</request>
|
2013-04-18 18:47:15 +04:00
|
|
|
<request name="language">
|
|
|
|
<arg name="serial" type="uint"/>
|
|
|
|
<arg name="language" type="string"/>
|
|
|
|
</request>
|
|
|
|
<request name="text_direction">
|
|
|
|
<arg name="serial" type="uint"/>
|
|
|
|
<arg name="direction" type="uint"/>
|
|
|
|
</request>
|
2012-09-10 01:08:41 +04:00
|
|
|
<event name="surrounding_text">
|
|
|
|
<description summary="surrounding text event">
|
|
|
|
The plain surrounding text around the input position. Cursor is the
|
2013-04-18 18:47:20 +04:00
|
|
|
position in bytes within the surrounding text relative to the beginning
|
|
|
|
of the text. Anchor is the position in bytes of the selection anchor
|
|
|
|
within the surrounding text relative to the beginning of the text. If
|
|
|
|
there is no selected text anchor is the same as cursor.
|
2012-09-10 01:08:41 +04:00
|
|
|
</description>
|
|
|
|
<arg name="text" type="string"/>
|
|
|
|
<arg name="cursor" type="uint"/>
|
|
|
|
<arg name="anchor" type="uint"/>
|
|
|
|
</event>
|
2012-09-10 01:08:46 +04:00
|
|
|
<event name="reset">
|
|
|
|
</event>
|
2013-01-17 00:26:43 +04:00
|
|
|
<event name="content_type">
|
|
|
|
<arg name="hint" type="uint"/>
|
|
|
|
<arg name="purpose" type="uint"/>
|
|
|
|
</event>
|
2013-01-17 00:26:46 +04:00
|
|
|
<event name="invoke_action">
|
|
|
|
<arg name="button" type="uint"/>
|
|
|
|
<arg name="index" type="uint"/>
|
|
|
|
</event>
|
2013-04-18 18:47:33 +04:00
|
|
|
<event name="commit_state">
|
|
|
|
<arg name="serial" type="uint"/>
|
|
|
|
</event>
|
2013-04-18 18:47:15 +04:00
|
|
|
<event name="preferred_language">
|
|
|
|
<arg name="language" type="string"/>
|
|
|
|
</event>
|
2012-09-10 01:08:41 +04:00
|
|
|
</interface>
|
|
|
|
|
|
|
|
<interface name="input_method" version="1">
|
|
|
|
<description summary="input method">
|
|
|
|
An input method object is responsible to compose text in response to
|
|
|
|
input from hardware or virtual keyboards. There is one input method
|
|
|
|
object per seat. On activate there is a new input method context object
|
|
|
|
created which allows the input method to communicate with the text model.
|
|
|
|
</description>
|
|
|
|
<event name="activate">
|
|
|
|
<description summary="activate event">
|
|
|
|
A text model was activated. Creates an input method context object
|
|
|
|
which allows communication with the text model.
|
|
|
|
</description>
|
|
|
|
<arg name="id" type="new_id" interface="input_method_context"/>
|
|
|
|
</event>
|
|
|
|
<event name="deactivate">
|
|
|
|
<description summary="activate event">
|
|
|
|
The text model corresponding to the context argument was deactivated.
|
|
|
|
The input method context should be destroyed after deactivation is
|
|
|
|
handled.
|
|
|
|
</description>
|
|
|
|
<arg name="context" type="object" interface="input_method_context"/>
|
|
|
|
</event>
|
|
|
|
</interface>
|
2013-01-17 00:26:55 +04:00
|
|
|
|
|
|
|
<interface name="input_panel" version="1">
|
|
|
|
<description summary="interface for implementing keyboards">
|
|
|
|
Only one client can bind this interface at a time.
|
|
|
|
</description>
|
|
|
|
|
|
|
|
<request name="get_input_panel_surface">
|
|
|
|
<arg name="id" type="new_id" interface="input_panel_surface"/>
|
|
|
|
<arg name="surface" type="object" interface="wl_surface"/>
|
|
|
|
</request>
|
|
|
|
</interface>
|
|
|
|
|
|
|
|
<interface name="input_panel_surface" version="1">
|
|
|
|
<enum name="position">
|
|
|
|
<entry name="center_bottom" value="0"/>
|
|
|
|
</enum>
|
|
|
|
|
|
|
|
<request name="set_toplevel">
|
|
|
|
<description summary="set the surface type as a keyboard">
|
|
|
|
A keybaord surface is only shown, when a text model is active
|
|
|
|
</description>
|
2013-04-18 18:47:29 +04:00
|
|
|
<arg name="output" type="object" interface="wl_output"/>
|
2013-01-17 00:26:55 +04:00
|
|
|
<arg name="position" type="uint"/>
|
|
|
|
</request>
|
2013-04-18 18:47:28 +04:00
|
|
|
|
|
|
|
<request name="set_panel">
|
|
|
|
</request>
|
2013-01-17 00:26:55 +04:00
|
|
|
</interface>
|
2012-09-10 01:08:41 +04:00
|
|
|
</protocol>
|