GtkTreeModelFilter

GtkTreeModelFilter —

Synopsis


#include <gtk/gtk.h>


struct      GtkTreeModelFilter;
gboolean    (*GtkTreeModelFilterVisibleFunc)
                                            (GtkTreeModel *model,
                                             GtkTreeIter *iter,
                                             gpointer data);
void        (*GtkTreeModelFilterModifyFunc) (GtkTreeModel *model,
                                             GtkTreeIter *iter,
                                             GValue *value,
                                             gint column,
                                             gpointer data);
GtkTreeModel* gtk_tree_model_filter_new     (GtkTreeModel *child_model,
                                             GtkTreePath *root);
void        gtk_tree_model_filter_set_visible_func
                                            (GtkTreeModelFilter *filter,
                                             GtkTreeModelFilterVisibleFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);
void        gtk_tree_model_filter_set_modify_func
                                            (GtkTreeModelFilter *filter,
                                             gint n_columns,
                                             GType *types,
                                             GtkTreeModelFilterModifyFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);
void        gtk_tree_model_filter_set_visible_column
                                            (GtkTreeModelFilter *filter,
                                             gint column);
GtkTreeModel* gtk_tree_model_filter_get_model
                                            (GtkTreeModelFilter *filter);
void        gtk_tree_model_filter_convert_child_iter_to_iter
                                            (GtkTreeModelFilter *filter,
                                             GtkTreeIter *filter_iter,
                                             GtkTreeIter *child_iter);
void        gtk_tree_model_filter_convert_iter_to_child_iter
                                            (GtkTreeModelFilter *filter,
                                             GtkTreeIter *child_iter,
                                             GtkTreeIter *filter_iter);
GtkTreePath* gtk_tree_model_filter_convert_child_path_to_path
                                            (GtkTreeModelFilter *filter,
                                             GtkTreePath *child_path);
GtkTreePath* gtk_tree_model_filter_convert_path_to_child_path
                                            (GtkTreeModelFilter *path,
                                             GtkTreePath *filter_path);
void        gtk_tree_model_filter_refilter  (GtkTreeModelFilter *filter);
void        gtk_tree_model_filter_clear_cache
                                            (GtkTreeModelFilter *filter);


Object Hierarchy


  GObject
   +----GtkTreeModelFilter

Implemented Interfaces

GtkTreeModelFilter implements GtkTreeModel.

Properties


  "child-model"          GtkTreeModel         : Read / Write / Construct Only
  "virtual-root"         GtkTreePath          : Read / Write / Construct Only

Description

Details

struct GtkTreeModelFilter

struct GtkTreeModelFilter;


GtkTreeModelFilterVisibleFunc ()

gboolean    (*GtkTreeModelFilterVisibleFunc)
                                            (GtkTreeModel *model,
                                             GtkTreeIter *iter,
                                             gpointer data);

model :
iter :
data :
Returns :

GtkTreeModelFilterModifyFunc ()

void        (*GtkTreeModelFilterModifyFunc) (GtkTreeModel *model,
                                             GtkTreeIter *iter,
                                             GValue *value,
                                             gint column,
                                             gpointer data);

model :
iter :
value :
column :
data :

gtk_tree_model_filter_new ()

GtkTreeModel* gtk_tree_model_filter_new     (GtkTreeModel *child_model,
                                             GtkTreePath *root);

Creates a new GtkTreeModel, with child_model as the child_model and root as the virtual root.

child_model : A GtkTreeModel.
root : A GtkTreePath or NULL.
Returns : A new GtkTreeModel.

Since 2.4


gtk_tree_model_filter_set_visible_func ()

void        gtk_tree_model_filter_set_visible_func
                                            (GtkTreeModelFilter *filter,
                                             GtkTreeModelFilterVisibleFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);

Sets the visible function used when filtering the filter to be func. The function should return TRUE if the given row should be visible and FALSE otherwise.

filter : A GtkTreeModelFilter.
func : A GtkTreeModelFilterVisibleFunc, the visible function.
data : User data to pass to the visible function, or NULL.
destroy : Destroy notifier of data, or NULL.

Since 2.4


gtk_tree_model_filter_set_modify_func ()

void        gtk_tree_model_filter_set_modify_func
                                            (GtkTreeModelFilter *filter,
                                             gint n_columns,
                                             GType *types,
                                             GtkTreeModelFilterModifyFunc func,
                                             gpointer data,
                                             GtkDestroyNotify destroy);

Sets the filter to have n_columns columns with types. If func is not NULL, it will set func to be the modify function of filter.

filter : A GtkTreeModelFilter.
n_columns : The number of columns in the filter model.
types : The GTypes of the columns.
func : A GtkTreeModelFilterModifyFunc, or NULL.
data : User data to pass to the modify function, or NULL.
destroy : Destroy notifier of data, or NULL.

Since 2.4


gtk_tree_model_filter_set_visible_column ()

void        gtk_tree_model_filter_set_visible_column
                                            (GtkTreeModelFilter *filter,
                                             gint column);

Sets column of the child_model to be the column where filter should look for visibility information. columns should be a column of type G_TYPE_BOOLEAN, where TRUE means that a row is visible, and FALSE if not.

filter : A GtkTreeModelFilter.
column : A gint which is the column containing the visible information.

Since 2.4


gtk_tree_model_filter_get_model ()

GtkTreeModel* gtk_tree_model_filter_get_model
                                            (GtkTreeModelFilter *filter);

Returns a pointer to the child model of filter.

filter : A GtkTreeModelFilter.
Returns : A pointer to a GtkTreeModel.

Since 2.4


gtk_tree_model_filter_convert_child_iter_to_iter ()

void        gtk_tree_model_filter_convert_child_iter_to_iter
                                            (GtkTreeModelFilter *filter,
                                             GtkTreeIter *filter_iter,
                                             GtkTreeIter *child_iter);

Sets filter_iter to point to the row in filter that corresponds to the row pointed at by child_iter.

filter : A GtkTreeModelFilter.
filter_iter : An uninitialized GtkTreeIter.
child_iter : A valid GtkTreeIter pointing to a row on the child model.

Since 2.4


gtk_tree_model_filter_convert_iter_to_child_iter ()

void        gtk_tree_model_filter_convert_iter_to_child_iter
                                            (GtkTreeModelFilter *filter,
                                             GtkTreeIter *child_iter,
                                             GtkTreeIter *filter_iter);

Sets child_iter to point to the row pointed to by filter_iter.

filter : A GtkTreeModelFilter.
child_iter : An uninitialized GtkTreeIter.
filter_iter : A valid GtkTreeIter pointing to a row on filter.

Since 2.4


gtk_tree_model_filter_convert_child_path_to_path ()

GtkTreePath* gtk_tree_model_filter_convert_child_path_to_path
                                            (GtkTreeModelFilter *filter,
                                             GtkTreePath *child_path);

Converts child_path to a path relative to filter. That is, child_path points to a path in the child model. The rerturned path will point to the same row in the filtered model. If child_path isn't a valid path on the child model, then NULL is returned.

filter : A GtkTreeModelFilter.
child_path : A GtkTreePath to convert.
Returns : A newly allocated GtkTreePath, or NULL.

Since 2.4


gtk_tree_model_filter_convert_path_to_child_path ()

GtkTreePath* gtk_tree_model_filter_convert_path_to_child_path
                                            (GtkTreeModelFilter *path,
                                             GtkTreePath *filter_path);

Converts filter_path to a path on the child model of filter. That is, filter_path points to a location in filter. The returned path will point to the same location in the model not being filtered. If filter_path does not point to a location in the child model, NULL is returned.

path :
filter_path : A GtkTreePath to convert.
Returns : A newly allocated GtkTreePath, or NULL.

Since 2.4


gtk_tree_model_filter_refilter ()

void        gtk_tree_model_filter_refilter  (GtkTreeModelFilter *filter);

Emits ::row_changed for each row in the child model, which causes the filter to re-evaluate whether a row is visible or not.

filter : A GtkTreeModelFilter.

Since 2.4


gtk_tree_model_filter_clear_cache ()

void        gtk_tree_model_filter_clear_cache
                                            (GtkTreeModelFilter *filter);

This function should almost never be called. It clears the filter of any cached iterators that haven't been reffed with gtk_tree_model_ref_node(). This might be useful if the child model being filtered is static (and doesn't change often) and there has been a lot of unreffed access to nodes. As a side effect of this function, all unreffed itters will be invalid.

filter : A GtkTreeModelFilter.

Since 2.4

Properties

"child-model" (GtkTreeModel : Read / Write / Construct Only)

The model for the filtermodel to filter.

"virtual-root" (GtkTreePath : Read / Write / Construct Only)

The virtual root (relative to the child model) for this filtermodel.