You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
306 lines
12 KiB
306 lines
12 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<protocol name="input_method_unstable_v1">
|
|
|
|
<copyright>
|
|
Copyright © 2012, 2013 Intel Corporation
|
|
|
|
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.
|
|
</copyright>
|
|
|
|
<interface name="zwp_input_method_context_v1" version="1">
|
|
<description summary="input method context">
|
|
Corresponds to a text input on the input method side. An input method context
|
|
is created on text input activation on the input method side. It allows
|
|
receiving information about the text input from the application via events.
|
|
Input method contexts do not keep state after deactivation and should be
|
|
destroyed after deactivation is handled.
|
|
|
|
Text is generally UTF-8 encoded, indices and lengths are in bytes.
|
|
|
|
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).
|
|
|
|
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.
|
|
</description>
|
|
|
|
<request name="destroy" type="destructor"/>
|
|
|
|
<request name="commit_string">
|
|
<description summary="commit string">
|
|
Send the commit string text for insertion to the application.
|
|
|
|
The text to commit could be either just a single character after a key
|
|
press or the result of some composing (pre-edit). It could be also an
|
|
empty text when some text should be removed (see
|
|
delete_surrounding_text) or when the input cursor should be moved (see
|
|
cursor_position).
|
|
|
|
Any previously set composing text will be removed.
|
|
</description>
|
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
|
<arg name="text" type="string"/>
|
|
</request>
|
|
|
|
<request name="preedit_string">
|
|
<description summary="pre-edit string">
|
|
Send the pre-edit string text to the application text input.
|
|
|
|
The commit text can be used to replace the pre-edit text on reset (for
|
|
example on unfocus).
|
|
|
|
Previously sent preedit_style and preedit_cursor requests are also
|
|
processed by the text_input.
|
|
</description>
|
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
|
<arg name="text" type="string"/>
|
|
<arg name="commit" type="string"/>
|
|
</request>
|
|
|
|
<request name="preedit_styling">
|
|
<description summary="pre-edit styling">
|
|
Set the styling information on composing text. The style is applied for
|
|
length in bytes from index relative to the beginning of
|
|
the composing text (as byte offset). Multiple styles can
|
|
be applied to a composing text.
|
|
|
|
This request should be sent before sending a preedit_string request.
|
|
</description>
|
|
<arg name="index" type="uint"/>
|
|
<arg name="length" type="uint"/>
|
|
<arg name="style" type="uint"/>
|
|
</request>
|
|
|
|
<request name="preedit_cursor">
|
|
<description summary="pre-edit cursor">
|
|
Set the cursor position inside the composing text (as byte offset)
|
|
relative to the start of the composing text.
|
|
|
|
When index is negative no cursor should be displayed.
|
|
|
|
This request should be sent before sending a preedit_string request.
|
|
</description>
|
|
<arg name="index" type="int"/>
|
|
</request>
|
|
|
|
<request name="delete_surrounding_text">
|
|
<description summary="delete text">
|
|
Remove the surrounding text.
|
|
|
|
This request will be handled on the text_input side directly following
|
|
a commit_string request.
|
|
</description>
|
|
<arg name="index" type="int"/>
|
|
<arg name="length" type="uint"/>
|
|
</request>
|
|
|
|
<request name="cursor_position">
|
|
<description summary="set cursor to a new position">
|
|
Set the cursor and anchor to a new position. Index is the new cursor
|
|
position in bytes (when >= 0 this is relative to the end of the inserted text,
|
|
otherwise it is relative to the beginning of the inserted text). Anchor is
|
|
the new anchor position in bytes (when >= 0 this is relative to the end of the
|
|
inserted text, otherwise it is relative to the beginning of the inserted
|
|
text). When there should be no selected text, anchor should be the same
|
|
as index.
|
|
|
|
This request will be handled on the text_input side directly following
|
|
a commit_string request.
|
|
</description>
|
|
<arg name="index" type="int"/>
|
|
<arg name="anchor" type="int"/>
|
|
</request>
|
|
|
|
<request name="modifiers_map">
|
|
<arg name="map" type="array"/>
|
|
</request>
|
|
|
|
<request 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_surrounding_text, etc. The key event follows the wl_keyboard key
|
|
event convention. Sym is an XKB keysym, state is a wl_keyboard key_state.
|
|
</description>
|
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
|
<arg name="time" type="uint"/>
|
|
<arg name="sym" type="uint"/>
|
|
<arg name="state" type="uint"/>
|
|
<arg name="modifiers" type="uint"/>
|
|
</request>
|
|
|
|
<request name="grab_keyboard">
|
|
<description summary="grab hardware keyboard">
|
|
Allow an input method to receive hardware keyboard input and process
|
|
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.
|
|
</description>
|
|
<arg name="keyboard" type="new_id" interface="wl_keyboard"/>
|
|
</request>
|
|
|
|
<request name="key">
|
|
<description summary="forward key event">
|
|
Forward a wl_keyboard::key event to the client that was not processed
|
|
by the input method itself. Should be used when filtering key events
|
|
with grab_keyboard. The arguments should be the ones from the
|
|
wl_keyboard::key event.
|
|
|
|
For generating custom key events use the keysym request instead.
|
|
</description>
|
|
<arg name="serial" type="uint" summary="serial from wl_keyboard::key"/>
|
|
<arg name="time" type="uint" summary="time from wl_keyboard::key"/>
|
|
<arg name="key" type="uint" summary="key from wl_keyboard::key"/>
|
|
<arg name="state" type="uint" summary="state from wl_keyboard::key"/>
|
|
</request>
|
|
|
|
<request name="modifiers">
|
|
<description summary="forward modifiers event">
|
|
Forward a wl_keyboard::modifiers event to the client that was not
|
|
processed by the input method itself. Should be used when filtering
|
|
key events with grab_keyboard. The arguments should be the ones
|
|
from the wl_keyboard::modifiers event.
|
|
</description>
|
|
<arg name="serial" type="uint" summary="serial from wl_keyboard::modifiers"/>
|
|
<arg name="mods_depressed" type="uint" summary="mods_depressed from wl_keyboard::modifiers"/>
|
|
<arg name="mods_latched" type="uint" summary="mods_latched from wl_keyboard::modifiers"/>
|
|
<arg name="mods_locked" type="uint" summary="mods_locked from wl_keyboard::modifiers"/>
|
|
<arg name="group" type="uint" summary="group from wl_keyboard::modifiers"/>
|
|
</request>
|
|
|
|
<request name="language">
|
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
|
<arg name="language" type="string"/>
|
|
</request>
|
|
|
|
<request name="text_direction">
|
|
<arg name="serial" type="uint" summary="serial of the latest known text input state"/>
|
|
<arg name="direction" type="uint"/>
|
|
</request>
|
|
|
|
<event name="surrounding_text">
|
|
<description summary="surrounding text event">
|
|
The plain surrounding text around the input position. Cursor is the
|
|
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 then anchor is the same as cursor.
|
|
</description>
|
|
<arg name="text" type="string"/>
|
|
<arg name="cursor" type="uint"/>
|
|
<arg name="anchor" type="uint"/>
|
|
</event>
|
|
|
|
<event name="reset">
|
|
</event>
|
|
|
|
<event name="content_type">
|
|
<arg name="hint" type="uint"/>
|
|
<arg name="purpose" type="uint"/>
|
|
</event>
|
|
|
|
<event name="invoke_action">
|
|
<arg name="button" type="uint"/>
|
|
<arg name="index" type="uint"/>
|
|
</event>
|
|
|
|
<event name="commit_state">
|
|
<arg name="serial" type="uint" summary="serial of text input state"/>
|
|
</event>
|
|
|
|
<event name="preferred_language">
|
|
<arg name="language" type="string"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="zwp_input_method_v1" version="1">
|
|
<description summary="input method">
|
|
An input method object is responsible for composing 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 input.
|
|
</description>
|
|
|
|
<event name="activate">
|
|
<description summary="activate event">
|
|
A text input was activated. Creates an input method context object
|
|
which allows communication with the text input.
|
|
</description>
|
|
<arg name="id" type="new_id" interface="zwp_input_method_context_v1"/>
|
|
</event>
|
|
|
|
<event name="deactivate">
|
|
<description summary="deactivate event">
|
|
The text input 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="zwp_input_method_context_v1"/>
|
|
</event>
|
|
</interface>
|
|
|
|
<interface name="zwp_input_panel_v1" 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="zwp_input_panel_surface_v1"/>
|
|
<arg name="surface" type="object" interface="wl_surface"/>
|
|
</request>
|
|
</interface>
|
|
|
|
<interface name="zwp_input_panel_surface_v1" 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">
|
|
Set the input_panel_surface type to keyboard.
|
|
|
|
A keyboard surface is only shown when a text input is active.
|
|
</description>
|
|
<arg name="output" type="object" interface="wl_output"/>
|
|
<arg name="position" type="uint"/>
|
|
</request>
|
|
|
|
<request name="set_overlay_panel">
|
|
<description summary="set the surface type as an overlay panel">
|
|
Set the input_panel_surface to be an overlay panel.
|
|
|
|
This is shown near the input cursor above the application window when
|
|
a text input is active.
|
|
</description>
|
|
</request>
|
|
</interface>
|
|
|
|
</protocol>
|