## GtkTextTagTable GtkTextTagTable — Collection of tags that can be used together |

## Functions

void | (*GtkTextTagTableForeach) ()
GtkTextTagTable * | gtk_text_tag_table_new ()
gboolean | gtk_text_tag_table_add ()
void | gtk_text_tag_table_remove ()
GtkTextTag * | gtk_text_tag_table_lookup ()
void | gtk_text_tag_table_foreach ()
gint | gtk_text_tag_table_get_size ()

## Signals

void | tag-added | Run Last
void | tag-changed | Run Last
void | tag-removed | Run Last

## Types and Values

| GtkTextTagTable

## Object Hierarchy

        GObject
        ╰── GtkTextTagTable

## Implemented Interfaces

GtkTextTagTable implements GtkBuildable.

## Includes

    #include <gtk/gtk.h>

## 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.

### GtkTextTagTables as GtkBuildable

The GtkTextTagTable implementation of the GtkBuildable interface supports adding tags by specifying “tag” as the “type” attribute of a `<child>` element.

An example of a UI definition fragment specifying tags:

    1
    2
    3
    4
    5
    <object class="GtkTextTagTable">
     <child type="tag">
       <object class="GtkTextTag"/>
     </child>
    </object>

## Functions

### GtkTextTagTableForeach ()

    void
    (*GtkTextTagTableForeach) (GtkTextTag *tag,
                               gpointer data);

#### Parameters

tag | the GtkTextTag |
data | data passed to `gtk_text_tag_table_foreach()`. | [closure]

### gtk_text_tag_table_new ()

    GtkTextTagTable *
    gtk_text_tag_table_new (void);

Creates a new GtkTextTagTable. The table contains no tags by default.

#### Returns

a new GtkTextTagTable

### gtk_text_tag_table_add ()

    gboolean
    gtk_text_tag_table_add (GtkTextTagTable *table,
                            GtkTextTag *tag);

Add a tag to the table. The tag is assigned the highest priority in the table.

`tag` must not be in a tag table already, and may not have the same name as an already-added tag.

#### Parameters

table | a GtkTextTagTable |
tag | a GtkTextTag |

#### Returns

`TRUE` on success.

### gtk_text_tag_table_remove ()

    void
    gtk_text_tag_table_remove (GtkTextTagTable *table,
                               GtkTextTag *tag);

Remove a tag from the table. If a GtkTextBuffer has `table` as its tag table, the tag is removed from the buffer. The table’s reference to the tag is removed, so the tag will end up destroyed if you don’t have a reference to it.

#### Parameters

table | a GtkTextTagTable |
tag | a GtkTextTag |

### gtk_text_tag_table_lookup ()

    GtkTextTag *
    gtk_text_tag_table_lookup (GtkTextTagTable *table,
                               const gchar *name);

Look up a named tag.

#### Parameters

table | a GtkTextTagTable |
name | name of a tag |

#### Returns

The tag, or `NULL` if none by that name is in the table.

[nullable][transfer none]

### gtk_text_tag_table_foreach ()

    void
    gtk_text_tag_table_foreach (GtkTextTagTable *table,
                                GtkTextTagTableForeach func,
                                gpointer data);

Calls `func` on each tag in `table` , with user data `data` . Note that the table may not be modified while iterating over it (you can’t add/remove tags).

#### Parameters

table | a GtkTextTagTable |
func | a function to call on each tag. | [scope call]
data | user data |

### gtk_text_tag_table_get_size ()

    gint
    gtk_text_tag_table_get_size (GtkTextTagTable *table);

Returns the size of the table (number of tags)

#### Parameters

table | a GtkTextTagTable |

#### Returns

number of tags in `table`

## Types and Values

### GtkTextTagTable

    typedef struct _GtkTextTagTable GtkTextTagTable;

## Signal Details

### The `“tag-added”` signal

    void
    user_function (GtkTextTagTable *texttagtable,
                   GtkTextTag      *tag,
                   gpointer         user_data)

#### Parameters

texttagtable | the object which received the signal. |
tag | the added tag. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“tag-changed”` signal

    void
    user_function (GtkTextTagTable *texttagtable,
                   GtkTextTag      *tag,
                   gboolean         size_changed,
                   gpointer         user_data)

#### Parameters

texttagtable | the object which received the signal. |
tag | the changed tag. |
size_changed | whether the change affects the GtkTextView layout. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“tag-removed”` signal

    void
    user_function (GtkTextTagTable *texttagtable,
                   GtkTextTag      *tag,
                   gpointer         user_data)

#### Parameters

texttagtable | the object which received the signal. |
tag | the removed tag. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last