GtkTreeModel

Name

GtkTreeModel -- The tree interface used by GtkTreeView

Synopsis


#include <gtk/gtk.h>


struct      GtkTreeModel;
struct      GtkTreeIter;
struct      GtkTreePath;
struct      GtkTreeRowReference;
struct      GtkTreeModelIface;
gboolean    (*GtkTreeModelForeachFunc)      (GtkTreeModel *model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gpointer data);
enum        GtkTreeModelFlags;
GtkTreePath* gtk_tree_path_new              (void);
GtkTreePath* gtk_tree_path_new_from_string  (const gchar *path);
gchar*      gtk_tree_path_to_string         (GtkTreePath *path);
GtkTreePath* gtk_tree_path_new_first        (void);
#define     gtk_tree_path_new_root          ()
void        gtk_tree_path_append_index      (GtkTreePath *path,
                                             gint index);
void        gtk_tree_path_prepend_index     (GtkTreePath *path,
                                             gint index);
gint        gtk_tree_path_get_depth         (GtkTreePath *path);
gint*       gtk_tree_path_get_indices       (GtkTreePath *path);
void        gtk_tree_path_free              (GtkTreePath *path);
GtkTreePath* gtk_tree_path_copy             (GtkTreePath *path);
gint        gtk_tree_path_compare           (const GtkTreePath *a,
                                             const GtkTreePath *b);
void        gtk_tree_path_next              (GtkTreePath *path);
gboolean    gtk_tree_path_prev              (GtkTreePath *path);
gboolean    gtk_tree_path_up                (GtkTreePath *path);
void        gtk_tree_path_down              (GtkTreePath *path);
gboolean    gtk_tree_path_is_ancestor       (GtkTreePath *path,
                                             GtkTreePath *descendant);
gboolean    gtk_tree_path_is_descendant     (GtkTreePath *path,
                                             GtkTreePath *ancestor);
GtkTreeRowReference* gtk_tree_row_reference_new
                                            (GtkTreeModel *model,
                                             GtkTreePath *path);
GtkTreeRowReference* gtk_tree_row_reference_new_proxy
                                            (GObject *proxy,
                                             GtkTreeModel *model,
                                             GtkTreePath *path);
GtkTreePath* gtk_tree_row_reference_get_path
                                            (GtkTreeRowReference *reference);
gboolean    gtk_tree_row_reference_valid    (GtkTreeRowReference *reference);
void        gtk_tree_row_reference_free     (GtkTreeRowReference *reference);
void        gtk_tree_row_reference_inserted (GObject *proxy,
                                             GtkTreePath *path);
void        gtk_tree_row_reference_deleted  (GObject *proxy,
                                             GtkTreePath *path);
void        gtk_tree_row_reference_reordered
                                            (GObject *proxy,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gint *new_order);
GtkTreeIter* gtk_tree_iter_copy             (GtkTreeIter *iter);
void        gtk_tree_iter_free              (GtkTreeIter *iter);
GtkTreeModelFlags gtk_tree_model_get_flags  (GtkTreeModel *tree_model);
gint        gtk_tree_model_get_n_columns    (GtkTreeModel *tree_model);
GType       gtk_tree_model_get_column_type  (GtkTreeModel *tree_model,
                                             gint index);
gboolean    gtk_tree_model_get_iter         (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreePath *path);
gboolean    gtk_tree_model_get_iter_from_string
                                            (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             const gchar *path_string);
gboolean    gtk_tree_model_get_iter_first   (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);
#define     gtk_tree_model_get_iter_root    (tree_model, iter)
GtkTreePath* gtk_tree_model_get_path        (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);
void        gtk_tree_model_get_value        (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             gint column,
                                             GValue *value);
gboolean    gtk_tree_model_iter_next        (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);
gboolean    gtk_tree_model_iter_children    (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent);
gboolean    gtk_tree_model_iter_has_child   (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);
gint        gtk_tree_model_iter_n_children  (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);
gboolean    gtk_tree_model_iter_nth_child   (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             gint n);
gboolean    gtk_tree_model_iter_parent      (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *child);
void        gtk_tree_model_ref_node         (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);
void        gtk_tree_model_unref_node       (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);
void        gtk_tree_model_get              (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             ...);
void        gtk_tree_model_get_valist       (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             va_list var_args);
void        gtk_tree_model_foreach          (GtkTreeModel *model,
                                             GtkTreeModelForeachFunc func,
                                             gpointer user_data);
void        gtk_tree_model_row_changed      (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter);
void        gtk_tree_model_row_inserted     (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter);
void        gtk_tree_model_row_has_child_toggled
                                            (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter);
void        gtk_tree_model_row_deleted      (GtkTreeModel *tree_model,
                                             GtkTreePath *path);
void        gtk_tree_model_rows_reordered   (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gint *new_order);


Description

Details

struct GtkTreeModel

struct GtkTreeModel;


struct GtkTreeIter

struct GtkTreeIter
{
  gint stamp;
  gpointer user_data;
  gpointer user_data2;
  gpointer user_data3;
};


struct GtkTreePath

struct GtkTreePath;


struct GtkTreeRowReference

struct GtkTreeRowReference;


struct GtkTreeModelIface

struct GtkTreeModelIface
{
  GTypeInterface g_iface;

  /* Signals */
  void         (* row_changed)           (GtkTreeModel *tree_model,
					  GtkTreePath  *path,
					  GtkTreeIter  *iter);
  void         (* row_inserted)          (GtkTreeModel *tree_model,
					  GtkTreePath  *path,
					  GtkTreeIter  *iter);
  void         (* row_has_child_toggled) (GtkTreeModel *tree_model,
					  GtkTreePath  *path,
					  GtkTreeIter  *iter);
  void         (* row_deleted)           (GtkTreeModel *tree_model,
					  GtkTreePath  *path);
  void         (* rows_reordered)        (GtkTreeModel *tree_model,
					  GtkTreePath  *path,
					  GtkTreeIter  *iter,
					  gint         *new_order);

  /* Virtual Table */
  GtkTreeModelFlags (* get_flags)  (GtkTreeModel *tree_model);   

  gint         (* get_n_columns)   (GtkTreeModel *tree_model);
  GType        (* get_column_type) (GtkTreeModel *tree_model,
				    gint          index);
  gboolean     (* get_iter)        (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter,
				    GtkTreePath  *path);
  GtkTreePath *(* get_path)        (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter);
  void         (* get_value)       (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter,
				    gint          column,
				    GValue       *value);
  gboolean     (* iter_next)       (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter);
  gboolean     (* iter_children)   (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter,
				    GtkTreeIter  *parent);
  gboolean     (* iter_has_child)  (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter);
  gint         (* iter_n_children) (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter);
  gboolean     (* iter_nth_child)  (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter,
				    GtkTreeIter  *parent,
				    gint          n);
  gboolean     (* iter_parent)     (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter,
				    GtkTreeIter  *child);
  void         (* ref_node)        (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter);
  void         (* unref_node)      (GtkTreeModel *tree_model,
				    GtkTreeIter  *iter);
};


GtkTreeModelForeachFunc ()

gboolean    (*GtkTreeModelForeachFunc)      (GtkTreeModel *model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gpointer data);

model : 
path : 
iter : 
data : 
Returns : 


enum GtkTreeModelFlags

typedef enum
{
  GTK_TREE_MODEL_ITERS_PERSIST = 1 << 0,
  GTK_TREE_MODEL_LIST_ONLY = 1 << 1
} GtkTreeModelFlags;


gtk_tree_path_new ()

GtkTreePath* gtk_tree_path_new              (void);

Creates a new GtkTreePath. This structure refers to a row.

Returns : A newly created GtkTreePath.


gtk_tree_path_new_from_string ()

GtkTreePath* gtk_tree_path_new_from_string  (const gchar *path);

Creates a new GtkTreePath initialized to path. path is expected to be a colon separated list of numbers. For example, the string "10:4:0" would create a path of depth 3 pointing to the 11th child of the root node, the 5th child of that 11th child, and the 1st child of that 5th child. If an invalid path string is passed in, NULL is returned.

path : The string representation of a path.
Returns : A newly-created GtkTreePath, or NULL


gtk_tree_path_to_string ()

gchar*      gtk_tree_path_to_string         (GtkTreePath *path);

Generates a string representation of the path. This string is a ':' separated list of numbers. For example, "4:10:0:3" would be an acceptable return value for this string.

path : A GtkTreePath
Returns : A newly-allocated string. Must be freed with g_free().


gtk_tree_path_new_first ()

GtkTreePath* gtk_tree_path_new_first        (void);

Creates a new GtkTreePath. The string representation of this path is "0"

Returns : A new GtkTreePath.


gtk_tree_path_new_root()

#define gtk_tree_path_new_root() gtk_tree_path_new_first()

A alternate name for gtk_tree_path_new_root() provided for compatibility reasons; this macro will be deprecated in future versions of GTK+.

Returns :A new GtkTreePath.


gtk_tree_path_append_index ()

void        gtk_tree_path_append_index      (GtkTreePath *path,
                                             gint index);

Appends a new index to a path. As a result, the depth of the path is increased.

path : A GtkTreePath.
index : The index.


gtk_tree_path_prepend_index ()

void        gtk_tree_path_prepend_index     (GtkTreePath *path,
                                             gint index);

Prepends a new index to a path. As a result, the depth of the path is increased.

path : A GtkTreePath.
index : The index.


gtk_tree_path_get_depth ()

gint        gtk_tree_path_get_depth         (GtkTreePath *path);

Returns the current depth of path.

path : A GtkTreePath.
Returns : The depth of path


gtk_tree_path_get_indices ()

gint*       gtk_tree_path_get_indices       (GtkTreePath *path);

Returns the current indices of path. This is an array of integers, each representing a node in a tree. This value should not be freed.

path : A GtkTreePath.
Returns : The current indices, or NULL.


gtk_tree_path_free ()

void        gtk_tree_path_free              (GtkTreePath *path);

Frees path.

path : A GtkTreePath.


gtk_tree_path_copy ()

GtkTreePath* gtk_tree_path_copy             (GtkTreePath *path);

Creates a new GtkTreePath as a copy of path.

path : A GtkTreePath.
Returns : A new GtkTreePath.


gtk_tree_path_compare ()

gint        gtk_tree_path_compare           (const GtkTreePath *a,
                                             const GtkTreePath *b);

Compares two paths. If a appears before b in a tree, then -1 is returned. If b appears before a, then 1 is returned. If the two nodes are equal, then 0 is returned.

a : A GtkTreePath.
b : A GtkTreePath to compare with.
Returns : The relative positions of a and b


gtk_tree_path_next ()

void        gtk_tree_path_next              (GtkTreePath *path);

Moves the path to point to the next node at the current depth.

path : A GtkTreePath.


gtk_tree_path_prev ()

gboolean    gtk_tree_path_prev              (GtkTreePath *path);

Moves the path to point to the previous node at the current depth, if it exists.

path : A GtkTreePath.
Returns : TRUE if path has a previous node, and the move was made.


gtk_tree_path_up ()

gboolean    gtk_tree_path_up                (GtkTreePath *path);

Moves the path to point to it's parent node, if it has a parent.

path : A GtkTreePath.
Returns : TRUE if path has a parent, and the move was made.


gtk_tree_path_down ()

void        gtk_tree_path_down              (GtkTreePath *path);

Moves path to point to the first child of the current path.

path : A GtkTreePath.


gtk_tree_path_is_ancestor ()

gboolean    gtk_tree_path_is_ancestor       (GtkTreePath *path,
                                             GtkTreePath *descendant);

Returns TRUE if descendant is a descendant of path.

path : a GtkTreePath
descendant : another GtkTreePath
Returns : TRUE if descendant is contained inside path


gtk_tree_path_is_descendant ()

gboolean    gtk_tree_path_is_descendant     (GtkTreePath *path,
                                             GtkTreePath *ancestor);

Returns TRUE if path is a descendant of ancestor.

path : a GtkTreePath
ancestor : another GtkTreePath
Returns : TRUE if ancestor contains path somewhere below it


gtk_tree_row_reference_new ()

GtkTreeRowReference* gtk_tree_row_reference_new
                                            (GtkTreeModel *model,
                                             GtkTreePath *path);

Creates a row reference based on path. This reference will keep pointing to the node pointed to by path, so long as it exists. It listens to all signals emitted by model, and updates it's path appropriately. If path isn't a valid path in model, then NULL is returned.

model : A GtkTreeModel
path : A valid GtkTreePath to monitor
Returns : A newly allocated GtkTreeRowReference, or NULL


gtk_tree_row_reference_new_proxy ()

GtkTreeRowReference* gtk_tree_row_reference_new_proxy
                                            (GObject *proxy,
                                             GtkTreeModel *model,
                                             GtkTreePath *path);

You do not need to use this function. Creates a row reference based on path. This reference will keep pointing to the node pointed to by path, so long as it exists. If path isn't a valid path in model, then NULL is returned. However, unlike references created with gtk_tree_row_reference_new(), it does not listen to the model for changes. The creator of the row reference must do this explicitly using gtk_tree_row_reference_inserted(), gtk_tree_row_reference_deleted(), gtk_tree_row_reference_reordered(). This must be called once per signal per proxy.

This type of row reference is primarily meant by structures that need to carefully monitor exactly when a row_reference updates itself, and is not generally needed by most applications.

proxy : A proxy GObject
model : A GtkTreeModel
path : A valid GtkTreePath to monitor
Returns : A newly allocated GtkTreeRowReference, or NULL


gtk_tree_row_reference_get_path ()

GtkTreePath* gtk_tree_row_reference_get_path
                                            (GtkTreeRowReference *reference);

Returns a path that the row reference currently points to, or NULL if the path pointed to is no longer valid.

reference : A GtkTreeRowReference
Returns : A current path, or NULL.


gtk_tree_row_reference_valid ()

gboolean    gtk_tree_row_reference_valid    (GtkTreeRowReference *reference);

Returns TRUE if the reference is non-NULL and refers to a current valid path.

reference : A GtkTreeRowReference, or NULL
Returns : TRUE if reference points to a valid path.


gtk_tree_row_reference_free ()

void        gtk_tree_row_reference_free     (GtkTreeRowReference *reference);

Free's reference. reference may be NULL.

reference : A GtkTreeRowReference, or NULL


gtk_tree_row_reference_inserted ()

void        gtk_tree_row_reference_inserted (GObject *proxy,
                                             GtkTreePath *path);

Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the "row_inserted" signal.

proxy : A GObject
path : The row position that was inserted


gtk_tree_row_reference_deleted ()

void        gtk_tree_row_reference_deleted  (GObject *proxy,
                                             GtkTreePath *path);

Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the "row_deleted" signal.

proxy : A GObject
path : The path position that was deleted


gtk_tree_row_reference_reordered ()

void        gtk_tree_row_reference_reordered
                                            (GObject *proxy,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gint *new_order);

Lets a set of row reference created by gtk_tree_row_reference_new_proxy() know that the model emitted the "rows_reordered" signal.

proxy : A GObject
path : The parent path of the reordered signal
iter : The iter pointing to the parent of the reordered
new_order : The new order of rows


gtk_tree_iter_copy ()

GtkTreeIter* gtk_tree_iter_copy             (GtkTreeIter *iter);

Creates a dynamically allocated tree iterator as a copy of iter. This function is not intended for use in applications, because you can just copy the structs by value (GtkTreeIter new_iter = iter;). You must free this iter with gtk_tree_iter_free().

iter : A GtkTreeIter.
Returns : a newly-allocated copy of iter.


gtk_tree_iter_free ()

void        gtk_tree_iter_free              (GtkTreeIter *iter);

Frees an iterator that has been allocated on the heap. This function is mainly used for language bindings.

iter : A dynamically allocated tree iterator.


gtk_tree_model_get_flags ()

GtkTreeModelFlags gtk_tree_model_get_flags  (GtkTreeModel *tree_model);

Returns a set of flags supported by this interface. The flags are a bitwise combination of GtkTreeModelFlags. The flags supported should not change during the lifecycle of the tree_model.

tree_model : A GtkTreeModel.
Returns : The flags supported by this interface.


gtk_tree_model_get_n_columns ()

gint        gtk_tree_model_get_n_columns    (GtkTreeModel *tree_model);

Returns the number of columns supported by tree_model.

tree_model : A GtkTreeModel.
Returns : The number of columns.


gtk_tree_model_get_column_type ()

GType       gtk_tree_model_get_column_type  (GtkTreeModel *tree_model,
                                             gint index);

Returns the type of the column.

tree_model : A GtkTreeModel.
index : The column index.
Returns : The type of the column.


gtk_tree_model_get_iter ()

gboolean    gtk_tree_model_get_iter         (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreePath *path);

Sets iter to a valid iterator pointing to path.

tree_model : A GtkTreeModel.
iter : The uninitialized GtkTreeIter.
path : The GtkTreePath.
Returns : TRUE, if iter was set.


gtk_tree_model_get_iter_from_string ()

gboolean    gtk_tree_model_get_iter_from_string
                                            (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             const gchar *path_string);

Sets iter to a valid iterator pointing to path_string, if it exists. Otherwise, iter is left invalid and FALSE is returned.

tree_model : A GtkTreeModel.
iter : An uninitialized GtkTreeIter.
path_string : A string representation of a GtkTreePath.
Returns : TRUE, if iter was set.


gtk_tree_model_get_iter_first ()

gboolean    gtk_tree_model_get_iter_first   (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);

Initializes iter with the first iterator in the tree (the one at the path "0") and returns TRUE. Returns FALSE if the tree is empty.

tree_model : A GtkTreeModel.
iter : The uninitialized GtkTreeIter.
Returns : TRUE, if iter was set.


gtk_tree_model_get_iter_root()

#define gtk_tree_model_get_iter_root(tree_model, iter) gtk_tree_model_get_iter_first(tree_model, iter)

A alternate name for gtk_tree_model_get_iter_root() provided for compatibility reasons; this macro will be deprecated in future versions of GTK+.

tree_model : A GtkTreeModel.
iter :uninitialized GtkTreeIter.
Returns : TRUE, if iter was set.


gtk_tree_model_get_path ()

GtkTreePath* gtk_tree_model_get_path        (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);

Returns a newly-created GtkTreePath referenced by iter. This path should be freed with gtk_tree_path_free().

tree_model : A GtkTreeModel.
iter : The GtkTreeIter.
Returns : a newly-created GtkTreePath.


gtk_tree_model_get_value ()

void        gtk_tree_model_get_value        (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             gint column,
                                             GValue *value);

Sets initializes and sets value to that at column. When done with value, g_value_unset() needs to be called to free any allocated memory.

tree_model : A GtkTreeModel.
iter : The GtkTreeIter.
column : The column to lookup the value at.
value : An empty GValue to set.


gtk_tree_model_iter_next ()

gboolean    gtk_tree_model_iter_next        (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);

Sets iter to point to the node following it at the current level. If there is no next iter, FALSE is returned and iter is set to be invalid.

tree_model : A GtkTreeModel.
iter : The GtkTreeIter.
Returns : TRUE if iter has been changed to the next node.


gtk_tree_model_iter_children ()

gboolean    gtk_tree_model_iter_children    (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent);

Sets iter to point to the first child of parent. If parent has no children, FALSE is returned and iter is set to be invalid. parent will remain a valid node after this function has been called.

tree_model : A GtkTreeModel.
iter : The new GtkTreeIter to be set to the child.
parent : The GtkTreeIter.
Returns : TRUE, if child has been set to the first child.


gtk_tree_model_iter_has_child ()

gboolean    gtk_tree_model_iter_has_child   (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);

Returns TRUE if iter has children, FALSE otherwise.

tree_model : A GtkTreeModel.
iter : The GtkTreeIter to test for children.
Returns : TRUE if iter has children.


gtk_tree_model_iter_n_children ()

gint        gtk_tree_model_iter_n_children  (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);

Returns the number of children that iter has. As a special case, if iter is NULL, then the number of toplevel nodes is returned.

tree_model : A GtkTreeModel.
iter : The GtkTreeIter, or NULL.
Returns : The number of children of iter.


gtk_tree_model_iter_nth_child ()

gboolean    gtk_tree_model_iter_nth_child   (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *parent,
                                             gint n);

Sets iter to be the child of parent, using the given index. The first index is 0. If index is too big, or parent has no children, iter is set to an invalid iterator and FALSE is returned. parent will remain a valid node after this function has been called. As a special case, if parent is NULL, then the nth root node is set.

tree_model : A GtkTreeModel.
iter : The GtkTreeIter to set to the nth child.
parent : The GtkTreeIter to get the child from, or NULL.
n : Then index of the desired child.
Returns : TRUE, if parent has an nth child.


gtk_tree_model_iter_parent ()

gboolean    gtk_tree_model_iter_parent      (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             GtkTreeIter *child);

Sets iter to be the parent of child. If child is at the toplevel, and doesn't have a parent, then iter is set to an invalid iterator and FALSE is returned. child will remain a valid node after this function has been called.

tree_model : A GtkTreeModel
iter : The new GtkTreeIter to set to the parent.
child : The GtkTreeIter.
Returns : TRUE, if iter is set to the parent of child.


gtk_tree_model_ref_node ()

void        gtk_tree_model_ref_node         (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);

Lets the tree ref the node. This is an optional method for models to implement. To be more specific, models may ignore this call as it exists primarily for performance reasons.

This function is primarily meant as a way for views to let caching model know when nodes are being displayed (and hence, whether or not to cache that node.) For example, a file-system based model would not want to keep the entire file-hierarchy in memory, just the sections that are currently being displayed by every current view.

A model should be expected to be able to get an iter independent of it's reffed state.

tree_model : A GtkTreeModel.
iter : The GtkTreeIter.


gtk_tree_model_unref_node ()

void        gtk_tree_model_unref_node       (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter);

Lets the tree unref the node. This is an optional method for models to implement. To be more specific, models may ignore this call as it exists primarily for performance reasons.

For more information on what this means, see gtk_tree_model_ref_node(). Please note that nodes that are deleted are not unreffed.

tree_model : A GtkTreeModel.
iter : The GtkTreeIter.


gtk_tree_model_get ()

void        gtk_tree_model_get              (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             ...);

Gets the value of one or more cells in the row referenced by iter. The variable argument list should contain integer column numbers, each column number followed by a place to store the value being retrieved. The list is terminated by a -1. For example, to get a value from column 0 with type G_TYPE_STRING, you would write: gtk_tree_model_get (model, iter, 0, &place_string_here, -1), where place_string_here is a gchar* to be filled with the string. If appropriate, the returned values have to be freed or unreferenced.

tree_model : a GtkTreeModel
iter : a row in tree_model
... : pairs of column number and value return locations, terminated by -1


gtk_tree_model_get_valist ()

void        gtk_tree_model_get_valist       (GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             va_list var_args);

See gtk_tree_model_get(), this version takes a va_list for language bindings to use.

tree_model : a GtkTreeModel
iter : a row in tree_model
var_args : va_list of column/return location pairs


gtk_tree_model_foreach ()

void        gtk_tree_model_foreach          (GtkTreeModel *model,
                                             GtkTreeModelForeachFunc func,
                                             gpointer user_data);

Calls func on each node in model in a depth-first fashion. If func returns TRUE, then the tree ceases to be walked, and gtk_tree_model_foreach() returns.

model : A GtkTreeModel
func : A function to be called on each row
user_data : User data to passed to func.


gtk_tree_model_row_changed ()

void        gtk_tree_model_row_changed      (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter);

Emits the "row_changed" signal on tree_model.

tree_model : A GtkTreeModel
path : A GtkTreePath pointing to the changed row
iter : A valid GtkTreeIter pointing to the changed row


gtk_tree_model_row_inserted ()

void        gtk_tree_model_row_inserted     (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter);

Emits the "row_inserted" signal on tree_model

tree_model : A GtkTreeModel
path : A GtkTreePath pointing to the inserted row
iter : A valid GtkTreeIter pointing to the inserted row


gtk_tree_model_row_has_child_toggled ()

void        gtk_tree_model_row_has_child_toggled
                                            (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter);

Emits the "row_has_child_toggled" signal on tree_model. This should be called by models after the child state of a node changes.

tree_model : A GtkTreeModel
path : A GtkTreePath pointing to the changed row
iter : A valid GtkTreeIter pointing to the changed row


gtk_tree_model_row_deleted ()

void        gtk_tree_model_row_deleted      (GtkTreeModel *tree_model,
                                             GtkTreePath *path);

Emits the "row_deleted" signal on tree_model. This should be called by models after a row has been removed. The location pointed to by path should be the location that the row previously was at. It may not be a valid location anymore.

tree_model : A GtkTreeModel
path : A GtkTreePath pointing to the previous location of the deleted row.


gtk_tree_model_rows_reordered ()

void        gtk_tree_model_rows_reordered   (GtkTreeModel *tree_model,
                                             GtkTreePath *path,
                                             GtkTreeIter *iter,
                                             gint *new_order);

Emits the "rows_reordered" signal on tree_model. This should be called by models when their rows have been reordered.

tree_model : A GtkTreeModel
path : A GtkTreePath pointing to the tree node whose children have been reordered
iter : A valid GtkTreeIter pointing to the node whose children have been reordered
new_order : an array of integers containing the new indices of the children, i.e. the former child n is now at position new_order[n].

See Also

GtkTreeView, GtkTreeStore, GtkListStore