Exemple #1
0
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);
}
Exemple #2
0
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);
}