[PATCH v2 12/17] text: Split text and input-method protocols
Jan Arne Petersen
jpetersen at openismus.com
Sun Sep 9 14:08:41 PDT 2012
From: Jan Arne Petersen <jpetersen at openismus.com>
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 at openismus.com>
---
clients/.gitignore | 2 ++
clients/Makefile.am | 6 ++--
clients/keyboard.c | 2 +-
protocol/Makefile.am | 1 +
protocol/input-method.xml | 81 +++++++++++++++++++++++++++++++++++++++++++++++
protocol/text.xml | 80 ++++++++++++++++------------------------------
src/.gitignore | 2 ++
src/Makefile.am | 4 +++
src/text-backend.c | 1 +
9 files changed, 123 insertions(+), 56 deletions(-)
create mode 100644 protocol/input-method.xml
diff --git a/clients/.gitignore b/clients/.gitignore
index 014c0fb..07e71e7 100644
--- a/clients/.gitignore
+++ b/clients/.gitignore
@@ -28,5 +28,7 @@ wscreensaver
editor
text-protocol.c
text-client-protocol.h
+input-method-protocol.c
+input-method-client-protocol.h
keyboard
weston-info
diff --git a/clients/Makefile.am b/clients/Makefile.am
index 1b7fa10..73ff33d 100644
--- a/clients/Makefile.am
+++ b/clients/Makefile.am
@@ -113,8 +113,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 = \
@@ -142,6 +142,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 \
diff --git a/clients/keyboard.c b/clients/keyboard.c
index c940c6f..6ad966b 100644
--- a/clients/keyboard.c
+++ b/clients/keyboard.c
@@ -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 {
diff --git a/protocol/Makefile.am b/protocol/Makefile.am
index bf5ef99..c68e4c1 100644
--- a/protocol/Makefile.am
+++ b/protocol/Makefile.am
@@ -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
index 0000000..be68d85
--- /dev/null
+++ b/protocol/input-method.xml
@@ -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>
diff --git a/protocol/text.xml b/protocol/text.xml
index 6a99eba..b280a28 100644
--- a/protocol/text.xml
+++ b/protocol/text.xml
@@ -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
@@ -88,57 +115,4 @@
<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>
diff --git a/src/.gitignore b/src/.gitignore
index cd68a3e..18efb53 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -13,3 +13,5 @@ desktop-shell-protocol.c
desktop-shell-server-protocol.h
text-protocol.c
text-server-protocol.h
+input-method-protocol.c
+input-method-server-protocol.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 028735e..fb0910c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -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 \
@@ -175,6 +177,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
diff --git a/src/text-backend.c b/src/text-backend.c
index ed2e24c..63b6b57 100644
--- a/src/text-backend.c
+++ b/src/text-backend.c
@@ -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;
--
1.7.11.4
More information about the wayland-devel
mailing list