From: Jan Arne Petersen <[email protected]> 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 <[email protected]> --- 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 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
