text: Add support for control keys to the protocol
[profile/ivi/weston.git] / protocol / text.xml
index 54866e1..62746d3 100644 (file)
@@ -1,16 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <protocol name="text">
-   <interface name="text_model" version="1">
+
+  <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
+        position within the surrounding text. Anchor is the position 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="set_cursor_index">
-      <arg name="index" type="uint"/>
+    <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="activate"/>
-    <request name="deactivate"/>
-    <request name="set_selected_text">
-      <arg name="text" type="string"/>
-      <arg name="index" type="int"/>
+    <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="set_micro_focus">
       <arg name="x" type="int"/>
       <arg name="text" type="string"/>
       <arg name="index" type="uint"/>
     </event>
+    <event name="delete_surrounding_text">
+      <arg name="index" type="int"/>
+      <arg name="length" type="uint"/>
+    </event>
     <event name="preedit_styling"/>
-    <event name="key"/>
+    <event name="key">
+      <arg name="key" type="uint"/>
+      <arg name="state" type="uint"/>
+    </event>
     <event name="selection_replacement"/>
     <event name="direction"/>
-    <event name="locale"/>      
+    <event name="locale"/>
+    <event name="activated">
+      <description summary="activated event">
+        Notify the model when it is activated. Typically in response to an
+        activate request.
+      </description>
+    </event>
+    <event name="deactivated">
+      <description summary="deactivated 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"/>
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </request>
-  </interface>
-
-  <interface name="input_method" version="1">
-    <request name="commit_string">
-      <arg name="text" type="string"/>
-      <arg name="index" type="uint"/>
     </request>
   </interface>
 </protocol>