Details
GTK_TREE_MODEL_GET_IFACE()
#define GTK_TREE_MODEL_GET_IFACE(obj) ((GtkTreeModelIface *)g_type_interface_peek (((GTypeInstance *)GTK_TREE_MODEL (obj))->g_class, GTK_TYPE_TREE_MODEL)) |
struct GtkTreeIter
struct GtkTreeIter
{
gint stamp;
gpointer user_data;
gpointer user_data2;
gpointer user_data3;
}; |
struct GtkTreeModelIface
struct GtkTreeModelIface
{
GTypeInterface g_iface;
/* Signals */
void (* range_changed) (GtkTreeModel *tree_model,
GtkTreePath *start_path,
GtkTreeIter *start_iter,
GtkTreePath *end_path,
GtkTreeIter *end_iter);
void (* inserted) (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
void (* has_child_toggled) (GtkTreeModel *tree_model,
GtkTreePath *path,
GtkTreeIter *iter);
void (* deleted) (GtkTreeModel *tree_model,
GtkTreePath *path);
void (* 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);
}; |
enum GtkTreeModelFlags
typedef enum
{
GTK_TREE_MODEL_ITERS_PERSIST = 1 << 0
} GtkTreeModelFlags; |
gtk_tree_path_new_from_string ()
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.
gtk_tree_path_to_string ()
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.
gtk_tree_path_new_root ()
Creates a new root GtkTreePath. The string representation of this path is
"0"
gtk_tree_path_append_index ()
Appends a new index to a path. As a result, the depth of the path is
increased.
gtk_tree_path_prepend_index ()
Prepends a new index to a path. As a result, the depth of the path is
increased.
gtk_tree_path_get_depth ()
Returns the current depth of path.
gtk_tree_path_get_indices ()
Returns the current indices of path. This is an array of integers, each
representing a node in a tree.
gtk_tree_path_free ()
Frees path.
gtk_tree_path_copy ()
Creates a new GtkTreePath as a copy of path.
gtk_tree_path_compare ()
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.
gtk_tree_path_next ()
Moves the path to point to the next node at the current depth.
gtk_tree_path_prev ()
Moves the path to point to the previous node at the current depth, if it exists.
gtk_tree_path_up ()
Moves the path to point to it's parent node, if it has a parent.
gtk_tree_path_down ()
Moves path to point to the first child of the current path.
gtk_tree_iter_copy ()
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().
gtk_tree_iter_free ()
Free an iterator that has been allocated on the heap. This function is
mainly used for language bindings.
gtk_tree_model_get_flags ()
Returns a set of flags supported by this interface. The flags are a bitwise
combination of GtkTreeModelFlags. It is expected that the flags supported
do not change for an interface.
gtk_tree_model_get_n_columns ()
Returns the number of columns supported by the tree_model
gtk_tree_model_get_column_type ()
Returns the type of the column.
gtk_tree_model_get_iter ()
Sets iter to a valid iterator pointing to path. If the model does not
provide an implementation of this function, it is implemented in terms of
gtk_tree_model_iter_nth_child.
gtk_tree_model_get_value ()
Sets initializes and sets value to that at column. When done with value,
g_value_unset needs to be called on it.
gtk_tree_model_iter_next ()
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.
gtk_tree_model_iter_children ()
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.
gtk_tree_model_iter_has_child ()
Returns TRUE if iter has children, FALSE otherwise.
gtk_tree_model_iter_n_children ()
Returns the number of children that iter has. If iter is NULL, then the
number of toplevel nodes is returned.
gtk_tree_model_iter_nth_child ()
Sets iter to be the child of parent, using the given index. The first
index is 0. If the 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. If parent is NULL, then the
root node is assumed.
gtk_tree_model_iter_parent ()
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.
gtk_tree_model_ref_node ()
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-heirarchy in memory, just the sections that are currently being
displayed by every current view.
gtk_tree_model_unref_node ()
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, please see gtk_tree_model_ref_node.
Please note that nodes that are deleted are not unreffed.