<!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 &lt;gtk/gtk.h&gt;

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">&amp;</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">&amp;&amp;</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>