GList * gimp_text_style_editor_list_tags (GimpTextStyleEditor *editor, GList **remove_tags) { GList *toggles; GList *tags = NULL; g_return_val_if_fail (GIMP_IS_TEXT_STYLE_EDITOR (editor), NULL); g_return_val_if_fail (remove_tags != NULL, NULL); *remove_tags = NULL; for (toggles = editor->toggles; toggles; toggles = g_list_next (toggles)) { GtkTextTag *tag = g_object_get_data (toggles->data, "tag"); if (gtk_toggle_button_get_active (toggles->data)) { tags = g_list_prepend (tags, tag); } else { *remove_tags = g_list_prepend (*remove_tags, tag); } } *remove_tags = g_list_reverse (*remove_tags); return g_list_reverse (tags); }
GList * gimp_text_style_editor_list_tags (GimpTextStyleEditor *editor, GList **remove_tags) { GList *toggles; GList *tags = NULL; g_return_val_if_fail (GIMP_IS_TEXT_STYLE_EDITOR (editor), NULL); g_return_val_if_fail (remove_tags != NULL, NULL); *remove_tags = NULL; for (toggles = editor->toggles; toggles; toggles = g_list_next (toggles)) { GtkTextTag *tag = g_object_get_data (toggles->data, "tag"); if (gtk_toggle_button_get_active (toggles->data)) { tags = g_list_prepend (tags, tag); } else { *remove_tags = g_list_prepend (*remove_tags, tag); } } { GtkTextTag *tag; GList *list; gdouble pixels; gdouble points; for (list = editor->buffer->size_tags; list; list = g_list_next (list)) *remove_tags = g_list_prepend (*remove_tags, list->data); pixels = gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (editor->size_entry), 0); points = gimp_units_to_points (pixels, GIMP_UNIT_PIXEL, editor->resolution_y); tag = gimp_text_buffer_get_size_tag (editor->buffer, PANGO_SCALE * points); tags = g_list_prepend (tags, tag); } { GtkTextTag *tag; GList *list; const gchar *font_name; for (list = editor->buffer->font_tags; list; list = g_list_next (list)) *remove_tags = g_list_prepend (*remove_tags, list->data); font_name = gimp_context_get_font_name (editor->context); tag = gimp_text_buffer_get_font_tag (editor->buffer, font_name); tags = g_list_prepend (tags, tag); } { GtkTextTag *tag; GList *list; GimpRGB color; for (list = editor->buffer->color_tags; list; list = g_list_next (list)) *remove_tags = g_list_prepend (*remove_tags, list->data); gimp_color_button_get_color (GIMP_COLOR_BUTTON (editor->color_button), &color); tag = gimp_text_buffer_get_color_tag (editor->buffer, &color); tags = g_list_prepend (tags, tag); } *remove_tags = g_list_reverse (*remove_tags); return g_list_reverse (tags); }