static void gimp_text_style_editor_tag_toggled (GtkToggleButton *toggle, GimpTextStyleEditor *editor) { GtkTextBuffer *buffer = GTK_TEXT_BUFFER (editor->buffer); GtkTextTag *tag = g_object_get_data (G_OBJECT (toggle), "tag"); GList *insert_tags; GList *remove_tags; if (gtk_text_buffer_get_has_selection (buffer)) { GtkTextIter start, end; gtk_text_buffer_get_selection_bounds (buffer, &start, &end); gtk_text_buffer_begin_user_action (buffer); if (gtk_toggle_button_get_active (toggle)) { gtk_text_buffer_apply_tag (buffer, tag, &start, &end); } else { gtk_text_buffer_remove_tag (buffer, tag, &start, &end); } gtk_text_buffer_end_user_action (buffer); } insert_tags = gimp_text_style_editor_list_tags (editor, &remove_tags); gimp_text_buffer_set_insert_tags (editor->buffer, insert_tags, remove_tags); }
static void gimp_text_style_editor_size_changed (GimpSizeEntry *entry, GimpTextStyleEditor *editor) { GtkTextBuffer *buffer = GTK_TEXT_BUFFER (editor->buffer); GList *insert_tags; GList *remove_tags; if (gtk_text_buffer_get_has_selection (buffer)) { GtkTextIter start, end; gdouble points; gtk_text_buffer_get_selection_bounds (buffer, &start, &end); points = gimp_units_to_points (gimp_size_entry_get_refval (entry, 0), GIMP_UNIT_PIXEL, editor->resolution_y); gimp_text_buffer_set_size (editor->buffer, &start, &end, PANGO_SCALE * points); } insert_tags = gimp_text_style_editor_list_tags (editor, &remove_tags); gimp_text_buffer_set_insert_tags (editor->buffer, insert_tags, remove_tags); }
static void gimp_text_style_editor_color_changed (GimpColorButton *button, GimpTextStyleEditor *editor) { GtkTextBuffer *buffer = GTK_TEXT_BUFFER (editor->buffer); GList *insert_tags; GList *remove_tags; if (gtk_text_buffer_get_has_selection (buffer)) { GtkTextIter start, end; GimpRGB color; gtk_text_buffer_get_selection_bounds (buffer, &start, &end); gimp_color_button_get_color (button, &color); gimp_text_buffer_set_color (editor->buffer, &start, &end, &color); } insert_tags = gimp_text_style_editor_list_tags (editor, &remove_tags); gimp_text_buffer_set_insert_tags (editor->buffer, insert_tags, remove_tags); }
static void gimp_text_style_editor_font_changed (GimpContext *context, GimpFont *font, GimpTextStyleEditor *editor) { GtkTextBuffer *buffer = GTK_TEXT_BUFFER (editor->buffer); GList *insert_tags; GList *remove_tags; if (gtk_text_buffer_get_has_selection (buffer)) { GtkTextIter start, end; gtk_text_buffer_get_selection_bounds (buffer, &start, &end); gimp_text_buffer_set_font (editor->buffer, &start, &end, gimp_context_get_font_name (context)); } insert_tags = gimp_text_style_editor_list_tags (editor, &remove_tags); gimp_text_buffer_set_insert_tags (editor->buffer, insert_tags, remove_tags); }