summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2009-02-09 10:28:19 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2009-02-09 10:28:19 +0800
commit30bff4867177ec439cb210a016e2dd416ebab963 (patch)
tree355e8aaaae81e83407941f44226d9d3248b74322 /src
parentc9dab029a3f84fe529c0c90dcf8571f1c0c16d85 (diff)
downloadibus-30bff4867177ec439cb210a016e2dd416ebab963.tar.gz
ibus-30bff4867177ec439cb210a016e2dd416ebab963.tar.xz
ibus-30bff4867177ec439cb210a016e2dd416ebab963.zip
Add round lookup table support.
Diffstat (limited to 'src')
-rw-r--r--src/ibuslookuptable.c15
-rw-r--r--src/ibuslookuptable.h5
-rw-r--r--src/test-lookuptable.c2
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"));