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_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_text_copy (IBusText *dest, const IBusText *src) { gboolean retval; retval = parent_class->copy ((IBusSerializable *)dest, (IBusSerializable *)src); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_TEXT (dest), FALSE); g_return_val_if_fail (IBUS_IS_TEXT (src), FALSE); dest->text = g_strdup (src->text); dest->is_static = FALSE; if (src->attrs) dest->attrs = (IBusAttrList *)ibus_serializable_copy ((IBusSerializable *)src->attrs); return TRUE; }