|
|
47affbc |
From cf1fa1bc72d6d7ad71e928df1c3aa938069cfd9e Mon Sep 17 00:00:00 2001
|
|
|
63b857f |
From: fujiwarat <takao.fujiwara1@gmail.com>
|
|
|
47affbc |
Date: Wed, 29 Jun 2011 16:50:51 +0900
|
|
|
47affbc |
Subject: [PATCH] Add symbol property in IBusEngineDesc.
|
|
|
63b857f |
|
|
|
63b857f |
---
|
|
|
47affbc |
ibus/enginedesc.py | 15 +++++++++------
|
|
|
47affbc |
src/ibusenginedesc.c | 40 ++++++++++++++++++++++++++++++++++++++++
|
|
|
47affbc |
src/ibusenginedesc.h | 10 ++++++++++
|
|
|
47affbc |
3 files changed, 59 insertions(+), 6 deletions(-)
|
|
|
63b857f |
|
|
|
d8d42f1 |
diff --git a/ibus/enginedesc.py b/ibus/enginedesc.py
|
|
|
47affbc |
index e8a8982..3ca7f24 100644
|
|
|
d8d42f1 |
--- a/ibus/enginedesc.py
|
|
|
d8d42f1 |
+++ b/ibus/enginedesc.py
|
|
|
d8d42f1 |
@@ -31,7 +31,7 @@ from serializable import *
|
|
|
d8d42f1 |
class EngineDesc(Serializable):
|
|
|
d8d42f1 |
__gtype_name__ = "PYIBusEngineDesc"
|
|
|
d8d42f1 |
__NAME__ = "IBusEngineDesc"
|
|
|
d8d42f1 |
- def __init__(self, name="", longname="", description="", language="", license="", author="", icon="", layout="", hotkeys="", rank=0):
|
|
|
47affbc |
+ def __init__(self, name="", longname="", description="", language="", license="", author="", icon="", layout="", hotkeys="", rank=0, symbol=""):
|
|
|
d8d42f1 |
super(EngineDesc, self).__init__()
|
|
|
d8d42f1 |
self.__name = name
|
|
|
d8d42f1 |
self.__longname = longname
|
|
|
d8d42f1 |
@@ -43,6 +43,7 @@ class EngineDesc(Serializable):
|
|
|
d8d42f1 |
self.__layout = layout
|
|
|
d8d42f1 |
self.__rank = rank
|
|
|
d8d42f1 |
self.__hotkeys = hotkeys
|
|
|
47affbc |
+ self.__symbol = symbol
|
|
|
d8d42f1 |
|
|
|
d8d42f1 |
def get_name(self):
|
|
|
d8d42f1 |
return self.__name
|
|
|
d8d42f1 |
@@ -74,6 +75,9 @@ class EngineDesc(Serializable):
|
|
|
d8d42f1 |
def get_hotkeys(self):
|
|
|
d8d42f1 |
return self.__hotkeys
|
|
|
d8d42f1 |
|
|
|
47affbc |
+ def get_symbol(self):
|
|
|
47affbc |
+ return self.__symbol
|
|
|
d8d42f1 |
+
|
|
|
d8d42f1 |
name = property(get_name)
|
|
|
d8d42f1 |
longname = property(get_longname)
|
|
|
d8d42f1 |
description = property(get_description)
|
|
|
d8d42f1 |
@@ -84,6 +88,7 @@ class EngineDesc(Serializable):
|
|
|
d8d42f1 |
layout = property(get_layout)
|
|
|
d8d42f1 |
rank = property(get_rank)
|
|
|
d8d42f1 |
hotkeys = property(get_hotkeys)
|
|
|
47affbc |
+ symbol = property(get_symbol)
|
|
|
d8d42f1 |
|
|
|
d8d42f1 |
def serialize(self, struct):
|
|
|
d8d42f1 |
super(EngineDesc, self).serialize(struct)
|
|
|
47affbc |
@@ -97,8 +102,7 @@ class EngineDesc(Serializable):
|
|
|
47affbc |
struct.append(dbus.String(self.__layout))
|
|
|
d8d42f1 |
struct.append(dbus.UInt32(self.__rank))
|
|
|
d8d42f1 |
struct.append(dbus.String(self.__hotkeys))
|
|
|
47affbc |
- # New properties of EngineDesc will use dict for serialize
|
|
|
d8d42f1 |
- struct.append(dbus.Array({}, signature=None))
|
|
|
47affbc |
+ struct.append(dbus.String(self.__symbol))
|
|
|
d8d42f1 |
|
|
|
d8d42f1 |
def deserialize(self, struct):
|
|
|
d8d42f1 |
super(EngineDesc, self).deserialize(struct)
|
|
|
47affbc |
@@ -112,11 +116,10 @@ class EngineDesc(Serializable):
|
|
|
47affbc |
self.__layout = struct.pop(0)
|
|
|
d8d42f1 |
self.__rank = struct.pop(0)
|
|
|
d8d42f1 |
self.__hotkeys = struct.pop(0)
|
|
|
47affbc |
- # New properties of EngineDesc will use dict for serialize
|
|
|
d8d42f1 |
- #value = struct.pop(0)
|
|
|
47affbc |
+ self.__symbol = struct.pop(0)
|
|
|
d8d42f1 |
|
|
|
d8d42f1 |
def test():
|
|
|
d8d42f1 |
- engine = EngineDesc("Hello", "", "", "", "", "", "", "", "")
|
|
|
d8d42f1 |
+ engine = EngineDesc("Hello", "", "", "", "", "", "", "", "", 0, "")
|
|
|
d8d42f1 |
value = serialize_object(engine)
|
|
|
d8d42f1 |
engine = deserialize_object(value)
|
|
|
d8d42f1 |
|
|
|
63b857f |
diff --git a/src/ibusenginedesc.c b/src/ibusenginedesc.c
|
|
|
47affbc |
index ca5ef60..fa3a768 100644
|
|
|
63b857f |
--- a/src/ibusenginedesc.c
|
|
|
63b857f |
+++ b/src/ibusenginedesc.c
|
|
|
47affbc |
@@ -39,6 +39,7 @@ enum {
|
|
|
63b857f |
PROP_LAYOUT,
|
|
|
63b857f |
PROP_RANK,
|
|
|
63b857f |
PROP_HOTKEYS,
|
|
|
47affbc |
+ PROP_SYMBOL,
|
|
|
63b857f |
};
|
|
|
63b857f |
|
|
|
63b857f |
|
|
|
47affbc |
@@ -54,6 +55,7 @@ struct _IBusEngineDescPrivate {
|
|
|
63b857f |
gchar *layout;
|
|
|
63b857f |
guint rank;
|
|
|
63b857f |
gchar *hotkeys;
|
|
|
47affbc |
+ gchar *symbol;
|
|
|
63b857f |
};
|
|
|
63b857f |
|
|
|
63b857f |
#define IBUS_ENGINE_DESC_GET_PRIVATE(o) \
|
|
|
47affbc |
@@ -232,6 +234,19 @@ ibus_engine_desc_class_init (IBusEngineDescClass *class)
|
|
|
63b857f |
"The hotkeys of engine description",
|
|
|
63b857f |
"",
|
|
|
63b857f |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
|
63b857f |
+
|
|
|
63b857f |
+ /**
|
|
|
47affbc |
+ * IBusEngineDesc:symbol:
|
|
|
63b857f |
+ *
|
|
|
63b857f |
+ * The symbol chars of engine description instead of icon image
|
|
|
63b857f |
+ */
|
|
|
63b857f |
+ g_object_class_install_property (gobject_class,
|
|
|
47affbc |
+ PROP_SYMBOL,
|
|
|
47affbc |
+ g_param_spec_string ("symbol",
|
|
|
47affbc |
+ "description symbol",
|
|
|
63b857f |
+ "The icon symbol chars of engine description",
|
|
|
63b857f |
+ "",
|
|
|
47affbc |
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
|
63b857f |
}
|
|
|
63b857f |
|
|
|
63b857f |
static void
|
|
|
47affbc |
@@ -249,6 +264,7 @@ ibus_engine_desc_init (IBusEngineDesc *desc)
|
|
|
63b857f |
desc->priv->layout = NULL;
|
|
|
63b857f |
desc->priv->rank = 0;
|
|
|
63b857f |
desc->priv->hotkeys = NULL;
|
|
|
47affbc |
+ desc->priv->symbol = NULL;
|
|
|
63b857f |
}
|
|
|
63b857f |
|
|
|
63b857f |
static void
|
|
|
47affbc |
@@ -263,6 +279,7 @@ ibus_engine_desc_destroy (IBusEngineDesc *desc)
|
|
|
63b857f |
g_free (desc->priv->icon);
|
|
|
63b857f |
g_free (desc->priv->layout);
|
|
|
63b857f |
g_free (desc->priv->hotkeys);
|
|
|
47affbc |
+ g_free (desc->priv->symbol);
|
|
|
63b857f |
|
|
|
63b857f |
IBUS_OBJECT_CLASS (ibus_engine_desc_parent_class)->destroy (IBUS_OBJECT (desc));
|
|
|
63b857f |
}
|
|
|
47affbc |
@@ -313,6 +330,10 @@ ibus_engine_desc_set_property (IBusEngineDesc *desc,
|
|
|
63b857f |
g_assert (desc->priv->hotkeys == NULL);
|
|
|
63b857f |
desc->priv->hotkeys = g_value_dup_string (value);
|
|
|
63b857f |
break;
|
|
|
47affbc |
+ case PROP_SYMBOL:
|
|
|
47affbc |
+ g_assert (desc->priv->symbol == NULL);
|
|
|
47affbc |
+ desc->priv->symbol = g_value_dup_string (value);
|
|
|
63b857f |
+ break;
|
|
|
63b857f |
default:
|
|
|
63b857f |
G_OBJECT_WARN_INVALID_PROPERTY_ID (desc, prop_id, pspec);
|
|
|
63b857f |
}
|
|
|
47affbc |
@@ -355,6 +376,9 @@ ibus_engine_desc_get_property (IBusEngineDesc *desc,
|
|
|
63b857f |
case PROP_HOTKEYS:
|
|
|
63b857f |
g_value_set_string (value, ibus_engine_desc_get_hotkeys (desc));
|
|
|
63b857f |
break;
|
|
|
47affbc |
+ case PROP_SYMBOL:
|
|
|
47affbc |
+ g_value_set_string (value, ibus_engine_desc_get_symbol (desc));
|
|
|
63b857f |
+ break;
|
|
|
63b857f |
default:
|
|
|
63b857f |
G_OBJECT_WARN_INVALID_PROPERTY_ID (desc, prop_id, pspec);
|
|
|
63b857f |
}
|
|
|
47affbc |
@@ -371,6 +395,10 @@ ibus_engine_desc_serialize (IBusEngineDesc *desc,
|
|
|
47affbc |
/* End dict iter */
|
|
|
47affbc |
|
|
|
47affbc |
#define NOTNULL(s) ((s) != NULL ? (s) : "")
|
|
|
47affbc |
+ /* If you will add a new property, you can append it at the end and
|
|
|
47affbc |
+ * you should not change the serialized order of name, longname,
|
|
|
47affbc |
+ * description, ... because the order is also used in other applications
|
|
|
47affbc |
+ * likes ibus-qt. */
|
|
|
47affbc |
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->name));
|
|
|
47affbc |
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->longname));
|
|
|
47affbc |
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->description));
|
|
|
47affbc |
@@ -381,7 +409,9 @@ ibus_engine_desc_serialize (IBusEngineDesc *desc,
|
|
|
47affbc |
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->layout));
|
|
|
63b857f |
g_variant_builder_add (builder, "u", desc->priv->rank);
|
|
|
63b857f |
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->hotkeys));
|
|
|
47affbc |
+ g_variant_builder_add (builder, "s", NOTNULL (desc->priv->symbol));
|
|
|
63b857f |
#undef NOTNULL
|
|
|
63b857f |
+
|
|
|
63b857f |
return TRUE;
|
|
|
63b857f |
}
|
|
|
63b857f |
|
|
|
47affbc |
@@ -394,6 +424,10 @@ ibus_engine_desc_deserialize (IBusEngineDesc *desc,
|
|
|
47affbc |
retval = IBUS_SERIALIZABLE_CLASS (ibus_engine_desc_parent_class)->deserialize ((IBusSerializable *)desc, variant);
|
|
|
47affbc |
g_return_val_if_fail (retval, 0);
|
|
|
47affbc |
|
|
|
47affbc |
+ /* If you will add a new property, you can append it at the end and
|
|
|
47affbc |
+ * you should not change the serialized order of name, longname,
|
|
|
47affbc |
+ * description, ... because the order is also used in other applications
|
|
|
47affbc |
+ * likes ibus-qt. */
|
|
|
47affbc |
g_variant_get_child (variant, retval++, "s", &desc->priv->name);
|
|
|
47affbc |
g_variant_get_child (variant, retval++, "s", &desc->priv->longname);
|
|
|
47affbc |
g_variant_get_child (variant, retval++, "s", &desc->priv->description);
|
|
|
47affbc |
@@ -404,6 +438,7 @@ ibus_engine_desc_deserialize (IBusEngineDesc *desc,
|
|
|
47affbc |
g_variant_get_child (variant, retval++, "s", &desc->priv->layout);
|
|
|
63b857f |
g_variant_get_child (variant, retval++, "u", &desc->priv->rank);
|
|
|
63b857f |
g_variant_get_child (variant, retval++, "s", &desc->priv->hotkeys);
|
|
|
47affbc |
+ g_variant_get_child (variant, retval++, "s", &desc->priv->symbol);
|
|
|
63b857f |
|
|
|
63b857f |
return retval;
|
|
|
63b857f |
}
|
|
|
47affbc |
@@ -428,6 +463,7 @@ ibus_engine_desc_copy (IBusEngineDesc *dest,
|
|
|
63b857f |
dest->priv->layout = g_strdup (src->priv->layout);
|
|
|
63b857f |
dest->priv->rank = src->priv->rank;
|
|
|
63b857f |
dest->priv->hotkeys = g_strdup (src->priv->hotkeys);
|
|
|
47affbc |
+ dest->priv->symbol = g_strdup (src->priv->symbol);
|
|
|
63b857f |
return TRUE;
|
|
|
63b857f |
}
|
|
|
63b857f |
|
|
|
47affbc |
@@ -465,6 +501,7 @@ ibus_engine_desc_output (IBusEngineDesc *desc,
|
|
|
63b857f |
OUTPUT_ENTRY_1(icon);
|
|
|
63b857f |
OUTPUT_ENTRY_1(layout);
|
|
|
63b857f |
OUTPUT_ENTRY_1(hotkeys);
|
|
|
47affbc |
+ OUTPUT_ENTRY_1(symbol);
|
|
|
63b857f |
g_string_append_indent (output, indent + 1);
|
|
|
63b857f |
g_string_append_printf (output, "<rank>%u</rank>\n", desc->priv->rank);
|
|
|
63b857f |
#undef OUTPUT_ENTRY
|
|
|
47affbc |
@@ -498,6 +535,7 @@ ibus_engine_desc_parse_xml_node (IBusEngineDesc *desc,
|
|
|
63b857f |
PARSE_ENTRY_1(icon);
|
|
|
63b857f |
PARSE_ENTRY_1(layout);
|
|
|
63b857f |
PARSE_ENTRY_1(hotkeys);
|
|
|
47affbc |
+ PARSE_ENTRY_1(symbol);
|
|
|
63b857f |
#undef PARSE_ENTRY
|
|
|
63b857f |
#undef PARSE_ENTRY_1
|
|
|
63b857f |
if (g_strcmp0 (sub_node->name , "rank") == 0) {
|
|
|
47affbc |
@@ -526,6 +564,7 @@ IBUS_ENGINE_DESC_GET_PROPERTY (icon, const gchar *)
|
|
|
63b857f |
IBUS_ENGINE_DESC_GET_PROPERTY (layout, const gchar *)
|
|
|
63b857f |
IBUS_ENGINE_DESC_GET_PROPERTY (rank, guint)
|
|
|
63b857f |
IBUS_ENGINE_DESC_GET_PROPERTY (hotkeys, const gchar *)
|
|
|
47affbc |
+IBUS_ENGINE_DESC_GET_PROPERTY (symbol, const gchar *)
|
|
|
63b857f |
#undef IBUS_ENGINE_DESC_GET_PROPERTY
|
|
|
63b857f |
|
|
|
63b857f |
IBusEngineDesc *
|
|
|
47affbc |
@@ -573,6 +612,7 @@ ibus_engine_desc_new_varargs (const gchar *first_property_name, ...)
|
|
|
63b857f |
g_assert (desc->priv->icon);
|
|
|
63b857f |
g_assert (desc->priv->layout);
|
|
|
63b857f |
g_assert (desc->priv->hotkeys);
|
|
|
47affbc |
+ g_assert (desc->priv->symbol);
|
|
|
63b857f |
|
|
|
63b857f |
return desc;
|
|
|
63b857f |
}
|
|
|
63b857f |
diff --git a/src/ibusenginedesc.h b/src/ibusenginedesc.h
|
|
|
47affbc |
index 9718b15..76a7adc 100644
|
|
|
63b857f |
--- a/src/ibusenginedesc.h
|
|
|
63b857f |
+++ b/src/ibusenginedesc.h
|
|
|
63b857f |
@@ -249,6 +249,16 @@ guint ibus_engine_desc_get_rank (IBusEngineDesc *info);
|
|
|
63b857f |
const gchar *ibus_engine_desc_get_hotkeys (IBusEngineDesc *info);
|
|
|
63b857f |
|
|
|
63b857f |
/**
|
|
|
47affbc |
+ * ibus_engine_desc_get_symbol:
|
|
|
63b857f |
+ * @info: An IBusEngineDesc
|
|
|
47affbc |
+ * @returns: symbol property in IBusEngineDesc
|
|
|
63b857f |
+ *
|
|
|
47affbc |
+ * Return the symbol property in IBusEngineDesc. It should not be freed.
|
|
|
63b857f |
+ */
|
|
|
47affbc |
+const gchar *ibus_engine_desc_get_symbol
|
|
|
63b857f |
+ (IBusEngineDesc *info);
|
|
|
63b857f |
+
|
|
|
63b857f |
+/**
|
|
|
63b857f |
* ibus_engine_desc_output:
|
|
|
63b857f |
* @info: An IBusEngineDesc
|
|
|
63b857f |
* @output: XML-formatted Input method engine description.
|
|
|
63b857f |
--
|
|
|
47affbc |
1.7.5.4
|
|
|
63b857f |
|