Synopsis#include <gtk/gtk.h> 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, GDestroyNotify destroy); void gtk_tree_model_filter_set_modify_func (GtkTreeModelFilter *filter, gint n_columns, GType *types, GtkTreeModelFilterModifyFunc func, gpointer data, GDestroyNotify destroy); void gtk_tree_model_filter_set_visible_column (GtkTreeModelFilter *filter, gint column); GtkTreeModel* gtk_tree_model_filter_get_model (GtkTreeModelFilter *filter); gboolean 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 *filter, GtkTreePath *filter_path); void gtk_tree_model_filter_refilter (GtkTreeModelFilter *filter); void gtk_tree_model_filter_clear_cache (GtkTreeModelFilter *filter); Properties"child-model" GtkTreeModel* : Read / Write / Construct Only "virtual-root" GtkTreePath* : Read / Write / Construct Only DescriptionA GtkTreeModelFilter is a tree model which wraps another tree model, and can do the following things:
DetailsGtkTreeModelFiltertypedef struct _GtkTreeModelFilter GtkTreeModelFilter; The GtkTreeModelFilter struct contains only private fields. GtkTreeModelFilterVisibleFunc ()gboolean (*GtkTreeModelFilterVisibleFunc) (GtkTreeModel *model, GtkTreeIter *iter, gpointer data);
A function which decides whether the row indicated by
GtkTreeModelFilterModifyFunc ()void (*GtkTreeModelFilterModifyFunc) (GtkTreeModel *model, GtkTreeIter *iter, GValue *value, gint column, gpointer data);
A function which calculates display values from raw values in the model.
It must fill Since this function is called for each data access, it's not a particularly efficient operation.
gtk_tree_model_filter_new ()GtkTreeModel* gtk_tree_model_filter_new (GtkTreeModel *child_model, GtkTreePath *root);
Creates a new GtkTreeModel, with
Since 2.4 gtk_tree_model_filter_set_visible_func ()void gtk_tree_model_filter_set_visible_func (GtkTreeModelFilter *filter, GtkTreeModelFilterVisibleFunc func, gpointer data, GDestroyNotify destroy);
Sets the visible function used when filtering the
If the condition calculated by the function changes over time (e.g. because
it depends on some global parameters), you must call
Note that
static gboolean visible_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { /* Visible if row is non-empty and first column is "HI" */ gchar *str; gboolean visible = FALSE; gtk_tree_model_get (model, iter, 0, &str, -1); if (str && strcmp (str, "HI") == 0) visible = TRUE; g_free (str); return visible; }
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, GDestroyNotify destroy);
With the
Since 2.4 gtk_tree_model_filter_set_visible_column ()void gtk_tree_model_filter_set_visible_column (GtkTreeModelFilter *filter, gint column);
Sets
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
Since 2.4 gtk_tree_model_filter_convert_child_iter_to_iter ()gboolean gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter *filter, GtkTreeIter *filter_iter, GtkTreeIter *child_iter);
Sets
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
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
Since 2.4 gtk_tree_model_filter_convert_path_to_child_path ()GtkTreePath* gtk_tree_model_filter_convert_path_to_child_path (GtkTreeModelFilter *filter, GtkTreePath *filter_path);
Converts
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.
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
Since 2.4 Property DetailsThe
|