text: Order requests and events in a nice way
authorJan Arne Petersen <jpetersen@openismus.com>
Thu, 18 Apr 2013 14:47:23 +0000 (16:47 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 2 May 2013 20:23:14 +0000 (16:23 -0400)
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
clients/editor.c
protocol/text.xml
src/text-backend.c
tests/text-test.c

index 1696fca..c921c43 100644 (file)
@@ -428,17 +428,17 @@ text_model_text_direction(void *data,
 }
 
 static const struct text_model_listener text_model_listener = {
-       text_model_commit_string,
+       text_model_enter,
+       text_model_leave,
+       text_model_modifiers_map,
+       text_model_input_panel_state,
        text_model_preedit_string,
-       text_model_delete_surrounding_text,
-       text_model_cursor_position,
        text_model_preedit_styling,
        text_model_preedit_cursor,
-       text_model_modifiers_map,
+       text_model_commit_string,
+       text_model_cursor_position,
+       text_model_delete_surrounding_text,
        text_model_keysym,
-       text_model_enter,
-       text_model_leave,
-       text_model_input_panel_state,
        text_model_language,
        text_model_text_direction
 };
index ea5bfe1..97ac8b4 100644 (file)
       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 then it 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
       </description>
       <arg name="seat" type="object" interface="wl_seat"/>
     </request>
+    <request name="show_input_panel">
+      <description summary="show input panels">
+        Requests input panels (virtual keyboard) to show.
+      </description>
+    </request>
+    <request name="hide_input_panel">
+      <description summary="hide input panels">
+        Requests input panels (virtual keyboard) to hide.
+      </description>
+    </request>
     <request name="reset">
       <description summary="reset">
         Should be called by an editor widget when the input state should be
       </description>
       <arg name="serial" type="uint"/>
     </request>
-    <request name="set_cursor_rectangle">
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="width" type="int"/>
-      <arg name="height" type="int"/>
+    <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 then it is the same as cursor.
+      </description>
+      <arg name="text" type="string"/>
+      <arg name="cursor" type="uint"/>
+      <arg name="anchor" type="uint"/>
     </request>
     <enum name="content_hint">
       <description summary="content hint">
       <arg name="hint" type="uint"/>
       <arg name="purpose" type="uint"/>
     </request>
-    <request name="invoke_action">
-      <arg name="button" type="uint"/>
-      <arg name="index" type="uint"/>
-    </request>
-    <request name="commit_state">
-    </request>
-    <request name="show_input_panel">
-      <description summary="show input panels">
-        Requests input panels (virtual keyboard) to show.
-      </description>
-    </request>
-    <request name="hide_input_panel">
-      <description summary="hide input panels">
-        Requests input panels (virtual keyboard) to hide.
-      </description>
+    <request name="set_cursor_rectangle">
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
     </request>
     <request name="set_preferred_language">
       <description summary="sets preferred language">
       </description>
       <arg name="language" type="string"/>
     </request>
-    <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 beginning of inserted text.
-
-        Any previously set composing text should be removed.
+    <request name="commit_state">
+    </request>
+    <request name="invoke_action">
+      <arg name="button" type="uint"/>
+      <arg name="index" type="uint"/>
+    </request>
+    <event name="enter">
+      <description summary="enter event">
+        Notify the model when it is activated. Typically in response to an
+        activate request.
       </description>
-      <arg name="serial" type="uint"/>
-      <arg name="text" type="string"/>
+      <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>
+    <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="input_panel_state">
+      <description summary="state of the input panel">
+        Notify when the visibility state of the input panel changed.
+      </description>
+      <arg name="state" type="uint"/>
     </event>
     <event name="preedit_string">
       <description summary="pre-edit">
       <arg name="text" type="string"/>
       <arg name="commit" type="string"/>
     </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 (in bytes).
-      </description>
-      <arg name="serial" type="uint"/>
-      <arg name="index" type="int"/>
-      <arg name="length" type="uint"/>
-    </event>
-    <event name="cursor_position">
-      <description summary="set cursor to new position">
-        Notify when the cursor or anchor position should be modified. It
-        should take effect after the next commit_string event.
-      </description>
-      <arg name="serial" type="uint"/>
-      <arg name="index" type="int"/>
-      <arg name="anchor" type="int"/>
-    </event>
     <enum name="preedit_style">
       <entry name="default" value="1"/>
       <entry name="active" value="2"/>
       <arg name="serial" type="uint"/>
       <arg name="index" type="int"/>
     </event>
-    <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.
+    <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 beginning of inserted text.
+
+        Any previously set composing text should be removed.
       </description>
-      <arg name="map" type="array"/>
+      <arg name="serial" type="uint"/>
+      <arg name="text" type="string"/>
+    </event>
+    <event name="cursor_position">
+      <description summary="set cursor to new position">
+        Notify when the cursor or anchor position should be modified. It
+        should take effect after the next commit_string event.
+      </description>
+      <arg name="serial" type="uint"/>
+      <arg name="index" type="int"/>
+      <arg name="anchor" type="int"/>
+    </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 (in bytes).
+      </description>
+      <arg name="serial" type="uint"/>
+      <arg name="index" type="int"/>
+      <arg name="length" type="uint"/>
     </event>
     <event name="keysym">
       <description summary="keysym">
       <arg name="state" type="uint"/>
       <arg name="modifiers" type="uint"/>
     </event>
-    <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>
-    <event name="input_panel_state">
-      <description summary="state of the input panel">
-        Notify when the visibility state of the input panel changed.
-      </description>
-      <arg name="state" type="uint"/>
-    </event>
     <event name="language">
       <description summary="language">
         Sets the language of the input text. The "language" argument is a RFC-3066 
index 7d1d7d7..c083683 100644 (file)
@@ -219,12 +219,12 @@ text_model_reset(struct wl_client *client,
 }
 
 static void
-text_model_set_micro_focus(struct wl_client *client,
-                          struct wl_resource *resource,
-                          int32_t x,
-                          int32_t y,
-                          int32_t width,
-                          int32_t height)
+text_model_set_cursor_rectangle(struct wl_client *client,
+                               struct wl_resource *resource,
+                               int32_t x,
+                               int32_t y,
+                               int32_t width,
+                               int32_t height)
 {
 }
 
@@ -317,17 +317,17 @@ text_model_set_preferred_language(struct wl_client *client,
 }
 
 static const struct text_model_interface text_model_implementation = {
-       text_model_set_surrounding_text,
        text_model_activate,
        text_model_deactivate,
+       text_model_show_input_panel,
+       text_model_hide_input_panel,
        text_model_reset,
-       text_model_set_micro_focus,
+       text_model_set_surrounding_text,
        text_model_set_content_type,
-       text_model_invoke_action,
+       text_model_set_cursor_rectangle,
+       text_model_set_preferred_language,
        text_model_commit_state,
-       text_model_show_input_panel,
-       text_model_hide_input_panel,
-       text_model_set_preferred_language
+       text_model_invoke_action
 };
 
 static void text_model_factory_create_text_model(struct wl_client *client,
index 41bf750..8983ac4 100644 (file)
@@ -148,17 +148,17 @@ text_model_text_direction(void *data,
 }
 
 static const struct text_model_listener text_model_listener = {
-       text_model_commit_string,
+       text_model_enter,
+       text_model_leave,
+       text_model_modifiers_map,
+       text_model_input_panel_state,
        text_model_preedit_string,
-       text_model_delete_surrounding_text,
-       text_model_cursor_position,
        text_model_preedit_styling,
        text_model_preedit_cursor,
-       text_model_modifiers_map,
+       text_model_commit_string,
+       text_model_cursor_position,
+       text_model_delete_surrounding_text,
        text_model_keysym,
-       text_model_enter,
-       text_model_leave,
-       text_model_input_panel_state,
        text_model_language,
        text_model_text_direction
 };