void ibus_text_append_attribute (IBusText *text, guint type, guint value, guint start_index, gint end_index) { g_assert (IBUS_IS_TEXT (text)); IBusAttribute *attr; if (end_index < 0) { end_index += g_utf8_strlen(text->text, -1) + 1; } if (end_index <= 0) { return; } if (text->attrs == NULL) { text->attrs = ibus_attr_list_new (); } attr = ibus_attribute_new (type, value, start_index, end_index); ibus_attr_list_append (text->attrs, attr); g_object_unref (attr); }
IBusAttribute * ibus_attr_background_new (guint color, guint start_index, guint end_index) { return ibus_attribute_new (IBUS_ATTR_TYPE_BACKGROUND, color, start_index, end_index); }
IBusAttribute * ibus_attr_underline_new (guint underline_type, guint start_index, guint end_index) { g_return_val_if_fail ( underline_type == IBUS_ATTR_UNDERLINE_NONE || underline_type == IBUS_ATTR_UNDERLINE_SINGLE || underline_type == IBUS_ATTR_UNDERLINE_DOUBLE || underline_type == IBUS_ATTR_UNDERLINE_LOW, NULL); return ibus_attribute_new (IBUS_ATTR_TYPE_UNDERLINE, underline_type, start_index, end_index); }