### Method

# Gtk TreeStore insert_with_values

#### Declaration [src]

    void
    gtk_tree_store_insert_with_values (
      GtkTreeStore* tree_store,
      GtkTreeIter* iter,
      GtkTreeIter* parent,
      int position,
      ...
    )

#### Description [src]

Creates a new row at `position`. `iter` will be changed to point to this new row. If `position` is -1, or larger than the number of rows on the list, then the new row will be appended to the list. The row will be filled with the values given to this function.

Calling `gtk_tree_store_insert_with_values (tree_store, iter, position, ...)` has the same effect as calling

    gtk_tree_store_insert (tree_store, iter, position);
    gtk_tree_store_set (tree_store, iter, ...);

with the different that the former will only emit a row_inserted signal, while the latter will emit row_inserted, row_changed and if the tree store is sorted, rows_reordered. Since emitting the rows_reordered signal repeatedly can affect the performance of the program, gtk_tree_store_insert_with_values() should generally be preferred when inserting rows in a sorted tree store.

#### Parameters

`iter` | `GtkTreeIter`
| An unset `GtkTreeIter` to set the new row.
| The argument will be set by the function.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`parent` | `GtkTreeIter`
| A valid `GtkTreeIter`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`position` | `int`
| Position to insert the new row, or -1 to append after existing rows.
`...` | ``
| Pairs of column number and value, terminated with -1.