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,
GTK_TREE_MODEL_LIST_ONLY = 1 << 1,
} 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. If an invalid
path is past in, NULL is returned.
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. The flags supported should not change
during the lifecycle of the tree_model.
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.
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 to free any allocated memory.
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. As a special case, 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 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.
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.
A model should be expected to be able to get an iter independent of it's
reffed state.
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.