text: Split text and input-method protocols
authorJan Arne Petersen <jpetersen@openismus.com>
Sun, 9 Sep 2012 21:08:41 +0000 (23:08 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 12 Sep 2012 20:48:59 +0000 (16:48 -0400)
It makes sense to split the interfaces in a text and a input-method
protocol for now (only the text protocol needs to be used in toolkits).

Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
clients/.gitignore
clients/Makefile.am
clients/keyboard.c
protocol/Makefile.am
protocol/input-method.xml [new file with mode: 0644]
protocol/text.xml
src/.gitignore
src/Makefile.am
src/text-backend.c

index 8405777..6ed849d 100644 (file)
@@ -8,6 +8,8 @@ eventdemo
 flower
 gears
 image
+input-method-protocol.c
+input-method-client-protocol.h
 keyboard
 libtoytoolkit.a
 resizor
index a777772..85fc95c 100644 (file)
@@ -118,8 +118,8 @@ keyboard_SOURCES =                          \
        keyboard.c                              \
        desktop-shell-client-protocol.h         \
        desktop-shell-protocol.c                \
-       text-client-protocol.h                  \
-       text-protocol.c
+       input-method-protocol.c                 \
+       input-method-client-protocol.h
 keyboard_LDADD = $(toolkit_libs)
 
 weston_info_SOURCES =                          \
@@ -147,6 +147,8 @@ BUILT_SOURCES =                                     \
        text-cursor-position-protocol.c         \
        text-protocol.c                         \
        text-client-protocol.h                  \
+       input-method-protocol.c                 \
+       input-method-client-protocol.h          \
        desktop-shell-client-protocol.h         \
        desktop-shell-protocol.c                \
        tablet-shell-client-protocol.h          \
index c940c6f..6ad966b 100644 (file)
@@ -29,7 +29,7 @@
 #include <cairo.h>
 
 #include "window.h"
-#include "text-client-protocol.h"
+#include "input-method-client-protocol.h"
 #include "desktop-shell-client-protocol.h"
 
 struct virtual_keyboard {
index bf5ef99..c68e4c1 100644 (file)
@@ -4,4 +4,5 @@ EXTRA_DIST =                                    \
        tablet-shell.xml                        \
        xserver.xml                             \
        text.xml                                \
+       input-method.xml                        \
        workspaces.xml
diff --git a/protocol/input-method.xml b/protocol/input-method.xml
new file mode 100644 (file)
index 0000000..be68d85
--- /dev/null
@@ -0,0 +1,81 @@
+<?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.
+    </description>
+    <request name="destroy" type="destructor"/>
+    <request name="commit_string">
+      <description summary="commit string">
+        Send the commit string text to the applications text model.
+      </description>
+      <arg name="text" type="string"/>
+      <arg name="index" type="uint"/>
+    </request>
+    <event name="surrounding_text">
+      <description summary="surrounding text event">
+        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"/>
+    </event>
+  </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>
+</protocol>
index 6a99eba..b280a28 100644 (file)
@@ -1,4 +1,31 @@
+<?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
       <arg name="id" type="new_id" interface="text_model"/>
     </request>
   </interface>
-
-  <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.
-    </description>
-    <request name="destroy" type="destructor"/>
-    <request name="commit_string">
-      <description summary="commit string">
-        Send the commit string text to the applications text model.
-      </description>
-      <arg name="text" type="string"/>
-      <arg name="index" type="uint"/>
-    </request>
-    <event name="surrounding_text">
-      <description summary="surrounding text event">
-        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"/>
-    </event>
-  </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>
 </protocol>
index 22289c7..3c27953 100644 (file)
@@ -15,3 +15,5 @@ text-protocol.c
 text-server-protocol.h
 workspaces-protocol.c
 workspaces-server-protocol.h
+input-method-protocol.c
+input-method-server-protocol.h
index c04e3bc..8f0c48e 100644 (file)
@@ -28,6 +28,8 @@ weston_SOURCES =                              \
        text-backend.c                          \
        text-protocol.c                         \
        text-server-protocol.h                  \
+       input-method-protocol.c                 \
+       input-method-server-protocol.h          \
        workspaces-protocol.c                   \
        workspaces-server-protocol.h            \
        util.c                                  \
@@ -176,6 +178,8 @@ BUILT_SOURCES =                                     \
        desktop-shell-server-protocol.h         \
        text-protocol.c                         \
        text-server-protocol.h                  \
+       input-method-protocol.c                 \
+       input-method-server-protocol.h          \
        workspaces-server-protocol.h            \
        workspaces-protocol.c                   \
        git-version.h
index ed2e24c..63b6b57 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "compositor.h"
 #include "text-server-protocol.h"
+#include "input-method-server-protocol.h"
 
 struct input_method;
 struct input_method_context;