| <?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="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> |
| </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"/> |
| <request name="set_content_type"/> |
| |
| <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="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="text" type="string"/> |
| <arg name="index" type="uint"/> |
| </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="index" type="int"/> |
| <arg name="length" type="uint"/> |
| </event> |
| <event name="preedit_styling"/> |
| <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> |