GTK+ Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# GtkTextTag

## Name

GtkTextTag -- A tag that can be applied to text in a GtkTextBuffer

## Synopsis

    #include <gtk/gtk.h>

    struct      GtkTextTag;
    struct      GtkTextBTreeNode;
    struct      GtkTextTagTable;
    enum        GtkWrapMode;
    struct      GtkTextAttributes;
    GtkTextTag* gtk_text_tag_new                (const gchar *name);
    gint        gtk_text_tag_get_priority       (GtkTextTag *tag);
    void        gtk_text_tag_set_priority       (GtkTextTag *tag,
                                                 gint priority);
    gint        gtk_text_tag_event              (GtkTextTag *tag,
                                                 GObject *event_object,
                                                 GdkEvent *event,
                                                 const GtkTextIter *iter);
    struct      GtkTextAppearance;
    GtkTextAttributes* gtk_text_attributes_new  (void);
    GtkTextAttributes* gtk_text_attributes_copy (GtkTextAttributes *src);
    void        gtk_text_attributes_copy_values (GtkTextAttributes *src,
                                                 GtkTextAttributes *dest);
    void        gtk_text_attributes_unref       (GtkTextAttributes *values);
    void        gtk_text_attributes_ref         (GtkTextAttributes *values);

## Description

You may wish to begin by reading the text widget conceptual overview which gives an overview of all the objects and data types related to the text widget and how they work together.

## Details

### struct GtkTextTag

    struct GtkTextTag
    {
      GObject parent_instance;

      GtkTextTagTable *table;

      char *name;                   /* Name of this tag.  This field is actually
                                     * a pointer to the key from the entry in
                                     * tkxt->tagTable, so it needn't be freed
                                     * explicitly. */
      int priority;         /* Priority of this tag within widget.  0
                             * means lowest priority.  Exactly one tag
                             * has each integer value between 0 and
                             * numTags-1. */
      /*
       * Information for displaying text with this tag.  The information
       * belows acts as an override on information specified by lower-priority
       * tags.  If no value is specified, then the next-lower-priority tag
       * on the text determins the value.  The text widget itself provides
       * defaults if no tag specifies an override.
       */

      GtkTextAttributes *values;

      /* Flags for whether a given value is set; if a value is unset, then
       * this tag does not affect it.
       */
      guint bg_color_set : 1;
      guint bg_stipple_set : 1;
      guint fg_color_set : 1;
      guint family_set : 1;
      guint style_set : 1;
      guint variant_set : 1;
      guint weight_set : 1;
      guint stretch_set : 1;
      guint size_set : 1;
      guint fg_stipple_set : 1;
      guint justification_set : 1;
      guint left_margin_set : 1;
      guint indent_set : 1;
      guint rise_set : 1;
      guint strikethrough_set : 1;
      guint right_margin_set : 1;
      guint pixels_above_lines_set : 1;
      guint pixels_below_lines_set : 1;
      guint pixels_inside_wrap_set : 1;
      guint tabs_set : 1;
      guint underline_set : 1;
      guint wrap_mode_set : 1;
      guint bg_full_height_set : 1;
      guint invisible_set : 1;
      guint editable_set : 1;
      guint language_set : 1;
      guint pad1 : 1;
      guint pad2 : 1;
      guint pad3 : 1;
    };

### struct GtkTextBTreeNode

    struct GtkTextBTreeNode;

### struct GtkTextTagTable

    struct GtkTextTagTable {
      GObject parent_instance;

      GHashTable *hash;
      GSList *anonymous;
      gint anon_count;
    };

### enum GtkWrapMode

    typedef enum
    {
      GTK_WRAP_NONE,
      GTK_WRAP_CHAR,
      GTK_WRAP_WORD
    } GtkWrapMode;

Describes a type of line wrapping.

### struct GtkTextAttributes

    struct GtkTextAttributes
    {
      guint refcount;

      GtkTextAppearance appearance;

      GtkJustification justification;
      GtkTextDirection direction;

      /* Individual chunks of this can be set/unset as a group */
      PangoFontDescription font;

      gint left_margin;

      gint indent;

      gint right_margin;

      gint pixels_above_lines;

      gint pixels_below_lines;

      gint pixels_inside_wrap;

      PangoTabArray *tabs;

      GtkWrapMode wrap_mode;        /* How to handle wrap-around for this tag.
                                     * Must be GTK_WRAPMODE_CHAR,
                                     * GTK_WRAPMODE_NONE, GTK_WRAPMODE_WORD
                                     */

      gchar *language;

      /* hide the text  */
      guint invisible : 1;

      /* Background is fit to full line height rather than
       * baseline +/- ascent/descent (font height)
       */
      guint bg_full_height : 1;

      /* can edit this text */
      guint editable : 1;

      /* colors are allocated etc. */
      guint realized : 1;

      guint pad1 : 1;
      guint pad2 : 1;
      guint pad3 : 1;
      guint pad4 : 1;
    };

### gtk_text_tag_new ()

    GtkTextTag* gtk_text_tag_new                (const gchar *name);

Creates a GtkTextTag. Configure the tag using object arguments, i.e. using g_object_set().

`name` : | tag name, or `NULL`
Returns : | a new GtkTextTag

### gtk_text_tag_get_priority ()

    gint        gtk_text_tag_get_priority       (GtkTextTag *tag);

Get the tag priority.

`tag` : | a GtkTextTag
Returns : | The tag's priority.

### gtk_text_tag_set_priority ()

    void        gtk_text_tag_set_priority       (GtkTextTag *tag,
                                                 gint priority);

Sets the priority of a GtkTextTag. Valid priorities are start at 0 and go to one less than gtk_text_tag_table_size(). Each tag in a table has a unique priority; setting the priority of one tag shifts the priorities of all the other tags in the table to maintain a unique priority for each tag. Higher priority tags "win" if two tags both set the same text attribute. When adding a tag to a tag table, it will be assigned the highest priority in the table by default; so normally the precedence of a set of tags is the order in which they were added to the table, or created with gtk_text_buffer_create_tag(), which adds the tag to the buffer's table automatically.

`tag` : | a GtkTextTag
`priority` : | the new priority

### gtk_text_tag_event ()

    gint        gtk_text_tag_event              (GtkTextTag *tag,
                                                 GObject *event_object,
                                                 GdkEvent *event,
                                                 const GtkTextIter *iter);

Emits the "event" signal on the GtkTextTag.

`tag` : | a GtkTextTag
`event_object` : | object that received the event, such as a widget
`event` : | the event
`iter` : | location where the event was received
Returns : | result of signal emission (whether the event was handled)

### struct GtkTextAppearance

    struct GtkTextAppearance
    {
      GdkColor bg_color;
      GdkColor fg_color;
      GdkBitmap *bg_stipple;
      GdkBitmap *fg_stipple;

      /* super/subscript rise, can be negative */
      gint rise;

      guint underline : 4;          /* PangoUnderline */
      guint strikethrough : 1;

      /* Whether to use background-related values; this is irrelevant for
       * the values struct when in a tag, but is used for the composite
       * values struct; it's true if any of the tags being composited
       * had background stuff set.
       */
      guint draw_bg : 1;

      /* These are only used when we are actually laying out and rendering
       * a paragraph; not when a GtkTextAppearance is part of a
       * GtkTextAttributes.
       */
      guint inside_selection : 1;
      guint is_text : 1;
    };

### gtk_text_attributes_new ()

    GtkTextAttributes* gtk_text_attributes_new  (void);

Creates a GtkTextAttributes, which describes a set of properties on some text.

Returns : | a new GtkTextAttributes

### gtk_text_attributes_copy ()

    GtkTextAttributes* gtk_text_attributes_copy (GtkTextAttributes *src);

Copies `src` and returns a new GtkTextAttributes.

`src` : | a GtkTextAttributes to be copied
Returns : | a copy of `src`

### gtk_text_attributes_copy_values ()

    void        gtk_text_attributes_copy_values (GtkTextAttributes *src,
                                                 GtkTextAttributes *dest);

Copies the values from `src` to `dest` so that `dest` has the same values as `src`. Frees existing values in `dest`.

`src` : | a GtkTextAttributes
`dest` : | another GtkTextAttributes

### gtk_text_attributes_unref ()

    void        gtk_text_attributes_unref       (GtkTextAttributes *values);

Decrements the reference count on `values`, freeing the structure if the reference count reaches 0.

`values` : | a GtkTextAttributes

### gtk_text_attributes_ref ()

    void        gtk_text_attributes_ref         (GtkTextAttributes *values);

Increments the reference count on `values`.

`values` : | a GtkTextAttributes

<<< Previous Page | Home | Up | Next Page >>>
GtkTextBuffer | GtkTextTagTable