diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2009-02-09 10:28:19 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2009-02-09 10:28:19 +0800 |
commit | 30bff4867177ec439cb210a016e2dd416ebab963 (patch) | |
tree | 355e8aaaae81e83407941f44226d9d3248b74322 /src | |
parent | c9dab029a3f84fe529c0c90dcf8571f1c0c16d85 (diff) | |
download | ibus-30bff4867177ec439cb210a016e2dd416ebab963.tar.gz ibus-30bff4867177ec439cb210a016e2dd416ebab963.tar.xz ibus-30bff4867177ec439cb210a016e2dd416ebab963.zip |
Add round lookup table support.
Diffstat (limited to 'src')
-rw-r--r-- | src/ibuslookuptable.c | 15 | ||||
-rw-r--r-- | src/ibuslookuptable.h | 5 | ||||
-rw-r--r-- | src/test-lookuptable.c | 2 |
3 files changed, 17 insertions, 5 deletions
diff --git a/src/ibuslookuptable.c b/src/ibuslookuptable.c index aab3ecd..e2935b8 100644 --- a/src/ibuslookuptable.c +++ b/src/ibuslookuptable.c @@ -73,7 +73,7 @@ ibus_lookup_table_class_init (IBusLookupTableClass *klass) serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_lookup_table_deserialize; serializable_class->copy = (IBusSerializableCopyFunc) ibus_lookup_table_copy; - g_string_append (serializable_class->signature, "uubav"); + g_string_append (serializable_class->signature, "uubbav"); } static void @@ -121,6 +121,9 @@ ibus_lookup_table_serialize (IBusLookupTable *table, retval = ibus_message_iter_append (iter, G_TYPE_BOOLEAN, &table->cursor_visible); g_return_val_if_fail (retval, FALSE); + + retval = ibus_message_iter_append (iter, G_TYPE_BOOLEAN, &table->round); + g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_open_container (iter, IBUS_TYPE_ARRAY, @@ -165,6 +168,9 @@ ibus_lookup_table_deserialize (IBusLookupTable *table, retval = ibus_message_iter_get (iter, G_TYPE_BOOLEAN, &table->cursor_visible); g_return_val_if_fail (retval, FALSE); + + retval = ibus_message_iter_get (iter, G_TYPE_BOOLEAN, &table->round); + g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_recurse (iter, IBUS_TYPE_ARRAY, &array_iter); g_return_val_if_fail (retval, FALSE); @@ -213,15 +219,18 @@ ibus_lookup_table_copy (IBusLookupTable *dest, IBusLookupTable * ibus_lookup_table_new (guint page_size, - gboolean cursor_visible) + guint cursor_pos, + gboolean cursor_visible, + gboolean round) { IBusLookupTable *table; table= g_object_new (IBUS_TYPE_LOOKUP_TABLE, NULL); - table->cursor_pos = 0; table->page_size = page_size; + table->cursor_pos = cursor_pos; table->cursor_visible = cursor_visible; + table->round = round; return table; } diff --git a/src/ibuslookuptable.h b/src/ibuslookuptable.h index 2b29138..62ca7d8 100644 --- a/src/ibuslookuptable.h +++ b/src/ibuslookuptable.h @@ -52,6 +52,7 @@ struct _IBusLookupTable { guint page_size; guint cursor_pos; gboolean cursor_visible; + gboolean round; GArray *candidates; }; @@ -63,7 +64,9 @@ struct _IBusLookupTableClass { GType ibus_lookup_table_get_type (void); IBusLookupTable *ibus_lookup_table_new (guint page_size, - gboolean cursor_visible); + guint cursor_pos, + gboolean cursor_visible, + gboolean round); void ibus_lookup_table_append_candidate (IBusLookupTable *table, IBusText *text); diff --git a/src/test-lookuptable.c b/src/test-lookuptable.c index ec56811..731f74b 100644 --- a/src/test-lookuptable.c +++ b/src/test-lookuptable.c @@ -8,7 +8,7 @@ int main() IBusError *error; gboolean retval; - table = ibus_lookup_table_new (9, TRUE); + table = ibus_lookup_table_new (9, 0, TRUE, FALSE); ibus_lookup_table_append_candidate (table, ibus_text_new_from_static_string ("Hello")); ibus_lookup_table_append_candidate (table, ibus_text_new_from_static_string ("Cool")); |