<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>GtkTreeModelFilter</title> <meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> <link rel="home" href="index.html" title="GTK+ 2 Reference Manual"> <link rel="up" href="TreeWidgetObjects.html" title="Tree, List and Icon Grid Widgets"> <link rel="prev" href="GtkTreeModelSort.html" title="GtkTreeModelSort"> <link rel="next" href="GtkCellLayout.html" title="GtkCellLayout"> <meta name="generator" content="GTK-Doc V1.18 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> <tr valign="middle"> <td><a accesskey="p" href="GtkTreeModelSort.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="TreeWidgetObjects.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> <th width="100%" align="center">GTK+ 2 Reference Manual</th> <td><a accesskey="n" href="GtkCellLayout.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#GtkTreeModelFilter.synopsis" class="shortcut">Top</a> | <a href="#GtkTreeModelFilter.description" class="shortcut">Description</a> | <a href="#GtkTreeModelFilter.object-hierarchy" class="shortcut">Object Hierarchy</a> | <a href="#GtkTreeModelFilter.implemented-interfaces" class="shortcut">Implemented Interfaces</a> | <a href="#GtkTreeModelFilter.properties" class="shortcut">Properties</a> </td></tr> </table> <div class="refentry"> <a name="GtkTreeModelFilter"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="GtkTreeModelFilter.top_of_page"></a>GtkTreeModelFilter</span></h2> <p>GtkTreeModelFilter — A GtkTreeModel which hides parts of an underlying tree model</p> </td> <td valign="top" align="right"></td> </tr></table></div> <div class="refsynopsisdiv"> <a name="GtkTreeModelFilter.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis"> #include <gtk/gtk.h> struct <a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilter-struct" title="struct GtkTreeModelFilter">GtkTreeModelFilter</a>; <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (<a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterVisibleFunc" title="GtkTreeModelFilterVisibleFunc ()">*GtkTreeModelFilterVisibleFunc</a>) (<em class="parameter"><code><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *iter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); <span class="returnvalue">void</span> (<a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterModifyFunc" title="GtkTreeModelFilterModifyFunc ()">*GtkTreeModelFilterModifyFunc</a>) (<em class="parameter"><code><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *iter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> column</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>); <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="returnvalue">GtkTreeModel</span></a> * <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-new" title="gtk_tree_model_filter_new ()">gtk_tree_model_filter_new</a> (<em class="parameter"><code><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *child_model</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> *root</code></em>); <span class="returnvalue">void</span> <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-set-visible-func" title="gtk_tree_model_filter_set_visible_func ()">gtk_tree_model_filter_set_visible_func</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterVisibleFunc" title="GtkTreeModelFilterVisibleFunc ()"><span class="type">GtkTreeModelFilterVisibleFunc</span></a> func</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>); <span class="returnvalue">void</span> <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-set-modify-func" title="gtk_tree_model_filter_set_modify_func ()">gtk_tree_model_filter_set_modify_func</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_columns</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> *types</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterModifyFunc" title="GtkTreeModelFilterModifyFunc ()"><span class="type">GtkTreeModelFilterModifyFunc</span></a> func</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>); <span class="returnvalue">void</span> <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-set-visible-column" title="gtk_tree_model_filter_set_visible_column ()">gtk_tree_model_filter_set_visible_column</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> column</code></em>); <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="returnvalue">GtkTreeModel</span></a> * <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-get-model" title="gtk_tree_model_filter_get_model ()">gtk_tree_model_filter_get_model</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>); <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-convert-child-iter-to-iter" title="gtk_tree_model_filter_convert_child_iter_to_iter ()">gtk_tree_model_filter_convert_child_iter_to_iter</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *filter_iter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *child_iter</code></em>); <span class="returnvalue">void</span> <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-convert-iter-to-child-iter" title="gtk_tree_model_filter_convert_iter_to_child_iter ()">gtk_tree_model_filter_convert_iter_to_child_iter</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *child_iter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *filter_iter</code></em>); <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="returnvalue">GtkTreePath</span></a> * <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-convert-child-path-to-path" title="gtk_tree_model_filter_convert_child_path_to_path ()">gtk_tree_model_filter_convert_child_path_to_path</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> *child_path</code></em>); <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="returnvalue">GtkTreePath</span></a> * <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-convert-path-to-child-path" title="gtk_tree_model_filter_convert_path_to_child_path ()">gtk_tree_model_filter_convert_path_to_child_path</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> *filter_path</code></em>); <span class="returnvalue">void</span> <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-refilter" title="gtk_tree_model_filter_refilter ()">gtk_tree_model_filter_refilter</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>); <span class="returnvalue">void</span> <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-clear-cache" title="gtk_tree_model_filter_clear_cache ()">gtk_tree_model_filter_clear_cache</a> (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>); </pre> </div> <div class="refsect1"> <a name="GtkTreeModelFilter.object-hierarchy"></a><h2>Object Hierarchy</h2> <pre class="synopsis"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> +----GtkTreeModelFilter </pre> </div> <div class="refsect1"> <a name="GtkTreeModelFilter.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> GtkTreeModelFilter implements <a class="link" href="GtkTreeModel.html" title="GtkTreeModel">GtkTreeModel</a> and <a class="link" href="gtk-GtkTreeView-drag-and-drop.html#GtkTreeDragSource">GtkTreeDragSource</a>.</p> </div> <div class="refsect1"> <a name="GtkTreeModelFilter.properties"></a><h2>Properties</h2> <pre class="synopsis"> "<a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilter--child-model" title='The "child-model" property'>child-model</a>" <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>* : Read / Write / Construct Only "<a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilter--virtual-root" title='The "virtual-root" property'>virtual-root</a>" <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a>* : Read / Write / Construct Only </pre> </div> <div class="refsect1"> <a name="GtkTreeModelFilter.description"></a><h2>Description</h2> <p> A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> is a tree model which wraps another tree model, and can do the following things: </p> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"><p> Filter specific rows, based on data from a "visible column", a column storing booleans indicating whether the row should be filtered or not, or based on the return value of a "visible function", which gets a model, iter and user_data and returns a boolean indicating whether the row should be filtered or not. </p></li> <li class="listitem"><p> Modify the "appearance" of the model, using a modify function. This is extremely powerful and allows for just changing some values and also for creating a completely different model based on the given child model. </p></li> <li class="listitem"><p> Set a different root node, also known as a "virtual root". You can pass in a <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> indicating the root node for the filter at construction time. </p></li> </ul></div> <p> </p> </div> <div class="refsect1"> <a name="GtkTreeModelFilter.details"></a><h2>Details</h2> <div class="refsect2"> <a name="GtkTreeModelFilter-struct"></a><h3>struct GtkTreeModelFilter</h3> <pre class="programlisting">struct GtkTreeModelFilter;</pre> <p> The GtkTreeModelFilter struct contains only private fields. </p> </div> <hr> <div class="refsect2"> <a name="GtkTreeModelFilterVisibleFunc"></a><h3>GtkTreeModelFilterVisibleFunc ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (*GtkTreeModelFilterVisibleFunc) (<em class="parameter"><code><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *iter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> <p> A function which decides whether the row indicated by <em class="parameter"><code>iter</code></em> is visible. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>the child model of the <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>a <a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> pointing to the row in <em class="parameter"><code>model</code></em> whose visibility is determined</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> <td>user data given to <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-set-visible-func" title="gtk_tree_model_filter_set_visible_func ()"><code class="function">gtk_tree_model_filter_set_visible_func()</code></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>Whether the row indicated by <em class="parameter"><code>iter</code></em> is visible.</td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2"> <a name="GtkTreeModelFilterModifyFunc"></a><h3>GtkTreeModelFilterModifyFunc ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> (*GtkTreeModelFilterModifyFunc) (<em class="parameter"><code><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *iter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> column</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre> <p> A function which calculates display values from raw values in the model. It must fill <em class="parameter"><code>value</code></em> with the display value for the column <em class="parameter"><code>column</code></em> in the row indicated by <em class="parameter"><code>iter</code></em>. </p> <p> Since this function is called for each data access, it's not a particularly efficient operation. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>the <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>a <a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> pointing to the row whose display values are determined</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td> <td>A <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> which is already initialized for with the correct type for the column <em class="parameter"><code>column</code></em>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>column</code></em> :</span></p></td> <td>the column whose display value is determined</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> <td>user data given to <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-set-modify-func" title="gtk_tree_model_filter_set_modify_func ()"><code class="function">gtk_tree_model_filter_set_modify_func()</code></a> </td> </tr> </tbody> </table></div> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-new"></a><h3>gtk_tree_model_filter_new ()</h3> <pre class="programlisting"><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="returnvalue">GtkTreeModel</span></a> * gtk_tree_model_filter_new (<em class="parameter"><code><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a> *child_model</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> *root</code></em>);</pre> <p> Creates a new <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>, with <em class="parameter"><code>child_model</code></em> as the child_model and <em class="parameter"><code>root</code></em> as the virtual root. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>child_model</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>root</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>A new <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-set-visible-func"></a><h3>gtk_tree_model_filter_set_visible_func ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gtk_tree_model_filter_set_visible_func (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterVisibleFunc" title="GtkTreeModelFilterVisibleFunc ()"><span class="type">GtkTreeModelFilterVisibleFunc</span></a> func</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre> <p> Sets the visible function used when filtering the <em class="parameter"><code>filter</code></em> to be <em class="parameter"><code>func</code></em>. The function should return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given row should be visible and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise. </p> <p> If the condition calculated by the function changes over time (e.g. because it depends on some global parameters), you must call <a class="link" href="GtkTreeModelFilter.html#gtk-tree-model-filter-refilter" title="gtk_tree_model_filter_refilter ()"><code class="function">gtk_tree_model_filter_refilter()</code></a> to keep the visibility information of the model uptodate. </p> <p> Note that <em class="parameter"><code>func</code></em> is called whenever a row is inserted, when it may still be empty. The visible function should therefore take special care of empty rows, like in the example below. </p> <p> </p> <div class="informalexample"> <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="listing_lines" align="right"><pre>1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16</pre></td> <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean">gboolean</a></span> <span class="function">visible_func</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkTreeModel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">model</span><span class="symbol">,</span> <span class="normal"> </span><span class="usertype">GtkTreeIter</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iter</span><span class="symbol">,</span> <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">)</span> <span class="cbracket">{</span> <span class="normal"> </span><span class="comment">/* Visible if row is non-empty and first column is "HI" */</span> <span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">str</span><span class="symbol">;</span> <span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> visible </span><span class="symbol">=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">;</span> <span class="normal"> </span><span class="function"><a href="GtkTreeModel.html#gtk-tree-model-get">gtk_tree_model_get</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">model</span><span class="symbol">,</span><span class="normal"> iter</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&</span><span class="normal">str</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">);</span> <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">str </span><span class="symbol">&&</span><span class="normal"> </span><span class="function">strcmp</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">str</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"HI"</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">==</span><span class="normal"> </span><span class="number">0</span><span class="symbol">)</span> <span class="normal"> visible </span><span class="symbol">=</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">;</span> <span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">str</span><span class="symbol">);</span> <span class="normal"> </span><span class="keyword">return</span><span class="normal"> visible</span><span class="symbol">;</span> <span class="cbracket">}</span></pre></td> </tr> </tbody> </table> </div> <p> </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterVisibleFunc" title="GtkTreeModelFilterVisibleFunc ()"><span class="type">GtkTreeModelFilterVisibleFunc</span></a>, the visible function.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> <td>User data to pass to the visible function, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td> <td>Destroy notifier of <em class="parameter"><code>data</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-set-modify-func"></a><h3>gtk_tree_model_filter_set_modify_func ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gtk_tree_model_filter_set_modify_func (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> n_columns</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> *types</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterModifyFunc" title="GtkTreeModelFilterModifyFunc ()"><span class="type">GtkTreeModelFilterModifyFunc</span></a> func</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre> <p> With the <em class="parameter"><code>n_columns</code></em> and <em class="parameter"><code>types</code></em> parameters, you give an array of column types for this model (which will be exposed to the parent model/view). The <em class="parameter"><code>func</code></em>, <em class="parameter"><code>data</code></em> and <em class="parameter"><code>destroy</code></em> parameters are for specifying the modify function. The modify function will get called for <span class="emphasis"><em>each</em></span> data access, the goal of the modify function is to return the data which should be displayed at the location specified using the parameters of the modify function. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>n_columns</code></em> :</span></p></td> <td>The number of columns in the filter model.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>types</code></em> :</span></p></td> <td>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>s of the columns. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_columns]</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html#GtkTreeModelFilterModifyFunc" title="GtkTreeModelFilterModifyFunc ()"><span class="type">GtkTreeModelFilterModifyFunc</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> <td>User data to pass to the modify function, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td> <td>Destroy notifier of <em class="parameter"><code>data</code></em>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-set-visible-column"></a><h3>gtk_tree_model_filter_set_visible_column ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gtk_tree_model_filter_set_visible_column (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> column</code></em>);</pre> <p> Sets <em class="parameter"><code>column</code></em> of the child_model to be the column where <em class="parameter"><code>filter</code></em> should look for visibility information. <em class="parameter"><code>columns</code></em> should be a column of type <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-BOOLEAN:CAPS"><code class="literal">G_TYPE_BOOLEAN</code></a>, where <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> means that a row is visible, and <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>column</code></em> :</span></p></td> <td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> which is the column containing the visible information.</td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-get-model"></a><h3>gtk_tree_model_filter_get_model ()</h3> <pre class="programlisting"><a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="returnvalue">GtkTreeModel</span></a> * gtk_tree_model_filter_get_model (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>);</pre> <p> Returns a pointer to the child model of <em class="parameter"><code>filter</code></em>. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>A pointer to a <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-convert-child-iter-to-iter"></a><h3>gtk_tree_model_filter_convert_child_iter_to_iter ()</h3> <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gtk_tree_model_filter_convert_child_iter_to_iter (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *filter_iter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *child_iter</code></em>);</pre> <p> Sets <em class="parameter"><code>filter_iter</code></em> to point to the row in <em class="parameter"><code>filter</code></em> that corresponds to the row pointed at by <em class="parameter"><code>child_iter</code></em>. If <em class="parameter"><code>filter_iter</code></em> was not set, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>filter_iter</code></em> :</span></p></td> <td>An uninitialized <a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>child_iter</code></em> :</span></p></td> <td>A valid <a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> pointing to a row on the child model.</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if <em class="parameter"><code>filter_iter</code></em> was set, i.e. if <em class="parameter"><code>child_iter</code></em> is a valid iterator pointing to a visible row in child model.</td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-convert-iter-to-child-iter"></a><h3>gtk_tree_model_filter_convert_iter_to_child_iter ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gtk_tree_model_filter_convert_iter_to_child_iter (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *child_iter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> *filter_iter</code></em>);</pre> <p> Sets <em class="parameter"><code>child_iter</code></em> to point to the row pointed to by <em class="parameter"><code>filter_iter</code></em>. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>child_iter</code></em> :</span></p></td> <td>An uninitialized <a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>filter_iter</code></em> :</span></p></td> <td>A valid <a class="link" href="GtkTreeModel.html#GtkTreeIter"><span class="type">GtkTreeIter</span></a> pointing to a row on <em class="parameter"><code>filter</code></em>.</td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-convert-child-path-to-path"></a><h3>gtk_tree_model_filter_convert_child_path_to_path ()</h3> <pre class="programlisting"><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="returnvalue">GtkTreePath</span></a> * gtk_tree_model_filter_convert_child_path_to_path (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> *child_path</code></em>);</pre> <p> Converts <em class="parameter"><code>child_path</code></em> to a path relative to <em class="parameter"><code>filter</code></em>. That is, <em class="parameter"><code>child_path</code></em> points to a path in the child model. The rerturned path will point to the same row in the filtered model. If <em class="parameter"><code>child_path</code></em> isn't a valid path on the child model or points to a row which is not visible in <em class="parameter"><code>filter</code></em>, then <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>child_path</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> to convert.</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>A newly allocated <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-convert-path-to-child-path"></a><h3>gtk_tree_model_filter_convert_path_to_child_path ()</h3> <pre class="programlisting"><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="returnvalue">GtkTreePath</span></a> * gtk_tree_model_filter_convert_path_to_child_path (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>, <em class="parameter"><code><a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> *filter_path</code></em>);</pre> <p> Converts <em class="parameter"><code>filter_path</code></em> to a path on the child model of <em class="parameter"><code>filter</code></em>. That is, <em class="parameter"><code>filter_path</code></em> points to a location in <em class="parameter"><code>filter</code></em>. The returned path will point to the same location in the model not being filtered. If <em class="parameter"><code>filter_path</code></em> does not point to a location in the child model, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>filter_path</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a> to convert.</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>A newly allocated <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td> </tr> </tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-refilter"></a><h3>gtk_tree_model_filter_refilter ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gtk_tree_model_filter_refilter (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>);</pre> <p> Emits ::row_changed for each row in the child model, which causes the filter to re-evaluate whether a row is visible or not. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr></tbody> </table></div> <p class="since">Since 2.4</p> </div> <hr> <div class="refsect2"> <a name="gtk-tree-model-filter-clear-cache"></a><h3>gtk_tree_model_filter_clear_cache ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> gtk_tree_model_filter_clear_cache (<em class="parameter"><code><a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a> *filter</code></em>);</pre> <p> This function should almost never be called. It clears the <em class="parameter"><code>filter</code></em> of any cached iterators that haven't been reffed with <a class="link" href="GtkTreeModel.html#gtk-tree-model-ref-node" title="gtk_tree_model_ref_node ()"><code class="function">gtk_tree_model_ref_node()</code></a>. 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 iters will be invalid. </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>filter</code></em> :</span></p></td> <td>A <a class="link" href="GtkTreeModelFilter.html" title="GtkTreeModelFilter"><span class="type">GtkTreeModelFilter</span></a>.</td> </tr></tbody> </table></div> <p class="since">Since 2.4</p> </div> </div> <div class="refsect1"> <a name="GtkTreeModelFilter.property-details"></a><h2>Property Details</h2> <div class="refsect2"> <a name="GtkTreeModelFilter--child-model"></a><h3>The <code class="literal">"child-model"</code> property</h3> <pre class="programlisting"> "child-model" <a class="link" href="GtkTreeModel.html" title="GtkTreeModel"><span class="type">GtkTreeModel</span></a>* : Read / Write / Construct Only</pre> <p>The model for the filtermodel to filter.</p> </div> <hr> <div class="refsect2"> <a name="GtkTreeModelFilter--virtual-root"></a><h3>The <code class="literal">"virtual-root"</code> property</h3> <pre class="programlisting"> "virtual-root" <a class="link" href="GtkTreeModel.html#GtkTreePath"><span class="type">GtkTreePath</span></a>* : Read / Write / Construct Only</pre> <p>The virtual root (relative to the child model) for this filtermodel.</p> </div> </div> <div class="refsect1"> <a name="GtkTreeModelFilter.see-also"></a><h2>See Also</h2> <p> <a class="link" href="GtkTreeModelSort.html" title="GtkTreeModelSort"><span class="type">GtkTreeModelSort</span></a> </p> </div> </div> <div class="footer"> <hr> Generated by GTK-Doc V1.18</div> </body> </html>