static gboolean ibus_attr_list_serialize (IBusAttrList *attr_list, IBusMessageIter *iter) { IBusMessageIter array_iter; gboolean retval; guint i; retval = IBUS_SERIALIZABLE_CLASS (ibus_attr_list_parent_class)->serialize ((IBusSerializable *)attr_list, iter); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_ATTR_LIST (attr_list), FALSE); retval = ibus_message_iter_open_container (iter, IBUS_TYPE_ARRAY, "v", &array_iter); g_return_val_if_fail (retval, FALSE); for (i = 0;; i++) { IBusAttribute *attr; attr = ibus_attr_list_get (attr_list, i); if (attr == NULL) break; retval = ibus_message_iter_append (&array_iter, IBUS_TYPE_ATTRIBUTE, &attr); g_return_val_if_fail (retval, FALSE); } retval = ibus_message_iter_close_container (iter, &array_iter); g_return_val_if_fail (retval, FALSE); return TRUE; }
static gboolean ibus_attr_list_copy (IBusAttrList *dest, const IBusAttrList *src) { gboolean retval; retval = IBUS_SERIALIZABLE_CLASS (ibus_attr_list_parent_class)->copy ((IBusSerializable *)dest, (IBusSerializable *)src); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_ATTRIBUTE (dest), FALSE); g_return_val_if_fail (IBUS_IS_ATTRIBUTE (src), FALSE); gint i; for (i = 0; ; i++) { IBusAttribute *attr = ibus_attr_list_get ((IBusAttrList *)src, i); if (attr == NULL) { break; } attr = (IBusAttribute *) ibus_serializable_copy ((IBusSerializable *) attr); if (attr == NULL) { g_warning ("can not copy attribute"); continue; } ibus_attr_list_append (dest, attr); } return TRUE; }
static gboolean ibus_property_copy (IBusProperty *dest, const IBusProperty *src) { gboolean retval; retval = IBUS_SERIALIZABLE_CLASS (ibus_property_parent_class)->copy ((IBusSerializable *) dest, (IBusSerializable *) src); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_PROPERTY (dest), FALSE); g_return_val_if_fail (IBUS_IS_PROPERTY (src), FALSE); dest->key = g_strdup (src->key); dest->icon = g_strdup (src->icon); if (src->label) { dest->label = (IBusText *) ibus_serializable_copy ((IBusSerializable *) src->label); } else dest->label = ibus_text_new_from_static_string (""); if (src->tooltip) { dest->tooltip = (IBusText *) ibus_serializable_copy ((IBusSerializable *) src->tooltip); } else dest->tooltip = ibus_text_new_from_static_string (""); dest->sensitive = src->sensitive; dest->visible = src->visible; dest->type = src->type; dest->state = src->state; dest->sub_props = (IBusPropList *) ibus_serializable_copy ((IBusSerializable *) src->sub_props); return TRUE; }
static gboolean ibus_attr_list_deserialize (IBusAttrList *attr_list, IBusMessageIter *iter) { DBusMessageIter array_iter; gboolean retval; retval = IBUS_SERIALIZABLE_CLASS (ibus_attr_list_parent_class)->deserialize ((IBusSerializable *)attr_list, iter); 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); while (ibus_message_iter_get_arg_type (&array_iter) != G_TYPE_INVALID) { IBusAttribute *attr; retval = ibus_message_iter_get (&array_iter, IBUS_TYPE_ATTRIBUTE, &attr); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (&array_iter); ibus_attr_list_append (attr_list, attr); } ibus_message_iter_next (iter); return TRUE; }
static gboolean ibus_property_deserialize (IBusProperty *prop, IBusMessageIter *iter) { gboolean retval; gchar *p; retval = IBUS_SERIALIZABLE_CLASS (ibus_property_parent_class)->deserialize ((IBusSerializable *) prop, iter); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_get (iter, G_TYPE_STRING, &p); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); prop->key = g_strdup (p); retval = ibus_message_iter_get (iter, G_TYPE_UINT, &prop->type); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); retval = ibus_message_iter_get (iter, IBUS_TYPE_TEXT, &prop->label); g_object_ref_sink (prop->label); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); retval = ibus_message_iter_get (iter, G_TYPE_STRING, &p); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); prop->icon = g_strdup (p); retval = ibus_message_iter_get (iter, IBUS_TYPE_TEXT, &prop->tooltip); g_object_ref_sink (prop->tooltip); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); retval = ibus_message_iter_get (iter, G_TYPE_BOOLEAN, &prop->sensitive); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); retval = ibus_message_iter_get (iter, G_TYPE_BOOLEAN, &prop->visible); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); retval = ibus_message_iter_get (iter, G_TYPE_UINT, &prop->state); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); retval = ibus_message_iter_get (iter, IBUS_TYPE_PROP_LIST, &prop->sub_props); g_object_ref_sink (prop->sub_props); g_return_val_if_fail (retval, FALSE); ibus_message_iter_next (iter); return TRUE; }
static void ibus_attr_list_class_init (IBusAttrListClass *klass) { IBusObjectClass *object_class = IBUS_OBJECT_CLASS (klass); IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (klass); object_class->destroy = (IBusObjectDestroyFunc) ibus_attr_list_destroy; serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_attr_list_serialize; serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_attr_list_deserialize; serializable_class->copy = (IBusSerializableCopyFunc) ibus_attr_list_copy; g_string_append (serializable_class->signature, "av"); }
static void ibus_property_class_init (IBusPropertyClass *klass) { IBusObjectClass *object_class = IBUS_OBJECT_CLASS (klass); IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (klass); object_class->destroy = (IBusObjectDestroyFunc) ibus_property_destroy; serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_property_serialize; serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_property_deserialize; serializable_class->copy = (IBusSerializableCopyFunc) ibus_property_copy; g_string_append (serializable_class->signature, "suvsvbbuv"); }
static void ibus_attribute_class_init (IBusAttributeClass *klass) { IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (klass); parent_class = (IBusSerializableClass *) g_type_class_peek_parent (klass); // object_class->destroy = (IBusObjectDestroyFunc) ibus_attribute_destroy; serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_attribute_serialize; serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_attribute_deserialize; serializable_class->copy = (IBusSerializableCopyFunc) ibus_attribute_copy; g_string_append (serializable_class->signature, "uuuu"); }
static void ibus_text_class_init (IBusTextClass *klass) { IBusObjectClass *object_class = IBUS_OBJECT_CLASS (klass); IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (klass); parent_class = (IBusSerializableClass *) g_type_class_peek_parent (klass); object_class->destroy = (IBusObjectDestroyFunc) ibus_text_destroy; serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_text_serialize; serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_text_deserialize; serializable_class->copy = (IBusSerializableCopyFunc) ibus_text_copy; g_string_append (serializable_class->signature, "sv"); }
static void ibus_observed_path_class_init (IBusObservedPathClass *klass) { IBusObjectClass *object_class = IBUS_OBJECT_CLASS (klass); IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (klass); parent_class = (IBusSerializableClass *) g_type_class_peek_parent (klass); // g_type_class_add_private (klass, sizeof (IBusObservedPathPrivate)); object_class->destroy = (IBusObjectDestroyFunc) ibus_observed_path_destroy; serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_observed_path_serialize; serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_observed_path_deserialize; serializable_class->copy = (IBusSerializableCopyFunc) ibus_observed_path_copy; g_string_append (serializable_class->signature, "sx"); }
static void ibus_hotkey_profile_class_init (IBusHotkeyProfileClass *klass) { IBusObjectClass *object_class = IBUS_OBJECT_CLASS (klass); IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (klass); parent_class = (IBusSerializableClass *) g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (IBusHotkeyProfilePrivate)); object_class->destroy = (IBusObjectDestroyFunc) ibus_hotkey_profile_destroy; serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_hotkey_profile_serialize; serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_hotkey_profile_deserialize; serializable_class->copy = (IBusSerializableCopyFunc) ibus_hotkey_profile_copy; klass->trigger = ibus_hotkey_profile_trigger; g_string_append (serializable_class->signature, "av"); /* install signals */ /** * IBusHotkeyProfile::trigger: * @profile: An IBusHotkeyProfile. * @event: An event in GQuark. * @user_data: User data for callback. * * Emitted when a hotkey is pressed and the hotkey is in profile. * Implement the member function trigger() in extended class to receive this signal. * * <note><para>The last parameter, user_data is not actually a valid parameter. It is displayed because of GtkDoc bug.</para></note> */ profile_signals[TRIGGER] = g_signal_new (I_("trigger"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, G_STRUCT_OFFSET (IBusHotkeyProfileClass, trigger), NULL, NULL, ibus_marshal_VOID__UINT_POINTER, G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_POINTER); }
gboolean ibus_property_serialize (IBusProperty *prop, IBusMessageIter *iter) { gboolean retval; retval = IBUS_SERIALIZABLE_CLASS (ibus_property_parent_class)->serialize ((IBusSerializable *) prop, iter); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_PROPERTY (prop), FALSE); retval = ibus_message_iter_append (iter, G_TYPE_STRING, &prop->key); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_UINT, &prop->type); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, IBUS_TYPE_TEXT, &prop->label); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_STRING, &prop->icon); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, IBUS_TYPE_TEXT, &prop->tooltip); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_BOOLEAN, &prop->sensitive); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_BOOLEAN, &prop->visible); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_UINT, &prop->state); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, IBUS_TYPE_PROP_LIST, &prop->sub_props); g_return_val_if_fail (retval, FALSE); return TRUE; }