<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ClutterModel</title> <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> <link rel="home" href="index.html" title="Clutter Reference Manual"> <link rel="up" href="ch12.html" title="Generic list model"> <link rel="prev" href="ch12.html" title="Generic list model"> <link rel="next" href="ClutterModelIter.html" title="ClutterModelIter"> <meta name="generator" content="GTK-Doc V1.18.1 (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="ch12.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td><a accesskey="u" href="ch12.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">Clutter Reference Manual</th> <td><a accesskey="n" href="ClutterModelIter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"> <a href="#ClutterModel.synopsis" class="shortcut">Top</a> | <a href="#ClutterModel.description" class="shortcut">Description</a> | <a href="#ClutterModel.object-hierarchy" class="shortcut">Object Hierarchy</a> | <a href="#ClutterModel.implemented-interfaces" class="shortcut">Implemented Interfaces</a> | <a href="#ClutterModel.properties" class="shortcut">Properties</a> | <a href="#ClutterModel.signals" class="shortcut">Signals</a> </td></tr> </table> <div class="refentry"> <a name="ClutterModel"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="ClutterModel.top_of_page"></a>ClutterModel</span></h2> <p>ClutterModel — A generic model implementation</p> </td> <td valign="top" align="right"></td> </tr></table></div> <div class="refsynopsisdiv"> <a name="ClutterModel.synopsis"></a><h2>Synopsis</h2> <pre class="synopsis">struct <a class="link" href="ClutterModel.html#ClutterModel-struct" title="struct ClutterModel">ClutterModel</a>; struct <a class="link" href="ClutterModel.html#ClutterModelClass" title="struct ClutterModelClass">ClutterModelClass</a>; <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-set-names" title="clutter_model_set_names ()">clutter_model_set_names</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code>const <span class="type">gchar</span> * const names[]</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-set-types" title="clutter_model_set_types ()">clutter_model_set_types</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">GType</span> *types</code></em>); const <span class="returnvalue">gchar</span> * <a class="link" href="ClutterModel.html#clutter-model-get-column-name" title="clutter_model_get_column_name ()">clutter_model_get_column_name</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> column</code></em>); <span class="returnvalue">GType</span> <a class="link" href="ClutterModel.html#clutter-model-get-column-type" title="clutter_model_get_column_type ()">clutter_model_get_column_type</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> column</code></em>); <span class="returnvalue">guint</span> <a class="link" href="ClutterModel.html#clutter-model-get-n-columns" title="clutter_model_get_n_columns ()">clutter_model_get_n_columns</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>); <span class="returnvalue">guint</span> <a class="link" href="ClutterModel.html#clutter-model-get-n-rows" title="clutter_model_get_n_rows ()">clutter_model_get_n_rows</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-append" title="clutter_model_append ()">clutter_model_append</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code>...</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-appendv" title="clutter_model_appendv ()">clutter_model_appendv</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">guint</span> *columns</code></em>, <em class="parameter"><code><span class="type">GValue</span> *values</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-prepend" title="clutter_model_prepend ()">clutter_model_prepend</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code>...</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-prependv" title="clutter_model_prependv ()">clutter_model_prependv</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">guint</span> *columns</code></em>, <em class="parameter"><code><span class="type">GValue</span> *values</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-insert" title="clutter_model_insert ()">clutter_model_insert</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>, <em class="parameter"><code>...</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-insertv" title="clutter_model_insertv ()">clutter_model_insertv</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">guint</span> *columns</code></em>, <em class="parameter"><code><span class="type">GValue</span> *values</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-insert-value" title="clutter_model_insert_value ()">clutter_model_insert_value</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>, <em class="parameter"><code><span class="type">guint</span> column</code></em>, <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-remove" title="clutter_model_remove ()">clutter_model_remove</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>); <span class="returnvalue">gboolean</span> (<a class="link" href="ClutterModel.html#ClutterModelForeachFunc" title="ClutterModelForeachFunc ()">*ClutterModelForeachFunc</a>) (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-foreach" title="clutter_model_foreach ()">clutter_model_foreach</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModel.html#ClutterModelForeachFunc" title="ClutterModelForeachFunc ()"><span class="type">ClutterModelForeachFunc</span></a> func</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-set-sorting-column" title="clutter_model_set_sorting_column ()">clutter_model_set_sorting_column</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">gint</span> column</code></em>); <span class="returnvalue">gint</span> <a class="link" href="ClutterModel.html#clutter-model-get-sorting-column" title="clutter_model_get_sorting_column ()">clutter_model_get_sorting_column</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>); <span class="returnvalue">gint</span> (<a class="link" href="ClutterModel.html#ClutterModelSortFunc" title="ClutterModelSortFunc ()">*ClutterModelSortFunc</a>) (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code>const <span class="type">GValue</span> *a</code></em>, <em class="parameter"><code>const <span class="type">GValue</span> *b</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-set-sort" title="clutter_model_set_sort ()">clutter_model_set_sort</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">gint</span> column</code></em>, <em class="parameter"><code><a class="link" href="ClutterModel.html#ClutterModelSortFunc" title="ClutterModelSortFunc ()"><span class="type">ClutterModelSortFunc</span></a> func</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>, <em class="parameter"><code><span class="type">GDestroyNotify</span> notify</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-resort" title="clutter_model_resort ()">clutter_model_resort</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>); <span class="returnvalue">gboolean</span> (<a class="link" href="ClutterModel.html#ClutterModelFilterFunc" title="ClutterModelFilterFunc ()">*ClutterModelFilterFunc</a>) (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>); <span class="returnvalue">void</span> <a class="link" href="ClutterModel.html#clutter-model-set-filter" title="clutter_model_set_filter ()">clutter_model_set_filter</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModel.html#ClutterModelFilterFunc" title="ClutterModelFilterFunc ()"><span class="type">ClutterModelFilterFunc</span></a> func</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>, <em class="parameter"><code><span class="type">GDestroyNotify</span> notify</code></em>); <span class="returnvalue">gboolean</span> <a class="link" href="ClutterModel.html#clutter-model-get-filter-set" title="clutter_model_get_filter_set ()">clutter_model_get_filter_set</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>); <span class="returnvalue">gboolean</span> <a class="link" href="ClutterModel.html#clutter-model-filter-iter" title="clutter_model_filter_iter ()">clutter_model_filter_iter</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter</code></em>); <span class="returnvalue">gboolean</span> <a class="link" href="ClutterModel.html#clutter-model-filter-row" title="clutter_model_filter_row ()">clutter_model_filter_row</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>); <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="returnvalue">ClutterModelIter</span></a> * <a class="link" href="ClutterModel.html#clutter-model-get-first-iter" title="clutter_model_get_first_iter ()">clutter_model_get_first_iter</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>); <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="returnvalue">ClutterModelIter</span></a> * <a class="link" href="ClutterModel.html#clutter-model-get-last-iter" title="clutter_model_get_last_iter ()">clutter_model_get_last_iter</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>); <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="returnvalue">ClutterModelIter</span></a> * <a class="link" href="ClutterModel.html#clutter-model-get-iter-at-row" title="clutter_model_get_iter_at_row ()">clutter_model_get_iter_at_row</a> (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>); </pre> </div> <div class="refsect1"> <a name="ClutterModel.object-hierarchy"></a><h2>Object Hierarchy</h2> <pre class="synopsis"> GObject +----ClutterModel +----<a class="link" href="ClutterListModel.html" title="ClutterListModel">ClutterListModel</a> </pre> </div> <div class="refsect1"> <a name="ClutterModel.implemented-interfaces"></a><h2>Implemented Interfaces</h2> <p> ClutterModel implements <a class="link" href="ClutterScriptable.html" title="ClutterScriptable">ClutterScriptable</a>.</p> </div> <div class="refsect1"> <a name="ClutterModel.properties"></a><h2>Properties</h2> <pre class="synopsis"> "<a class="link" href="ClutterModel.html#ClutterModel--filter-set" title='The "filter-set" property'>filter-set</a>" <span class="type">gboolean</span> : Read </pre> </div> <div class="refsect1"> <a name="ClutterModel.signals"></a><h2>Signals</h2> <pre class="synopsis"> "<a class="link" href="ClutterModel.html#ClutterModel-filter-changed" title='The "filter-changed" signal'>filter-changed</a>" : <code class="literal">Run Last</code> "<a class="link" href="ClutterModel.html#ClutterModel-row-added" title='The "row-added" signal'>row-added</a>" : <code class="literal">Run Last</code> "<a class="link" href="ClutterModel.html#ClutterModel-row-changed" title='The "row-changed" signal'>row-changed</a>" : <code class="literal">Run Last</code> "<a class="link" href="ClutterModel.html#ClutterModel-row-removed" title='The "row-removed" signal'>row-removed</a>" : <code class="literal">Run Last</code> "<a class="link" href="ClutterModel.html#ClutterModel-sort-changed" title='The "sort-changed" signal'>sort-changed</a>" : <code class="literal">Run Last</code> </pre> </div> <div class="refsect1"> <a name="ClutterModel.description"></a><h2>Description</h2> <p> <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> is a generic list model API which can be used to implement the model-view-controller architectural pattern in Clutter. </p> <p> The <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> class is a list model which can accept most GObject types as a column type. </p> <p> Creating a simple clutter model: </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 17 18 19 20 21 22 23 24 25 26 27 28</pre></td> <td class="listing_code"><pre class="programlisting"><span class="keyword">enum</span> <span class="cbracket">{</span> <span class="normal"> COLUMN_INT</span><span class="symbol">,</span> <span class="normal"> COLUMN_STRING</span><span class="symbol">,</span> <span class="normal"> N_COLUMNS</span> <span class="cbracket">}</span><span class="symbol">;</span> <span class="cbracket">{</span> <span class="normal"> </span><span class="usertype">ClutterModel</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">gint</span><span class="normal"> i</span><span class="symbol">;</span> <span class="normal"> model </span><span class="symbol">=</span><span class="normal"> </span><span class="function">clutter_model_default_new</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">N_COLUMNS</span><span class="symbol">,</span> <span class="normal"> </span><span class="comment">/* column type, column title */</span> <span class="normal"> G_TYPE_INT</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"my integers"</span><span class="symbol">,</span> <span class="normal"> G_TYPE_STRING</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"my strings"</span><span class="symbol">);</span> <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol"><</span><span class="normal"> </span><span class="number">10</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span> <span class="normal"> </span><span class="cbracket">{</span> <span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">string </span><span class="symbol">=</span><span class="normal"> </span><span class="function">g_strdup_printf</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"String %d"</span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">);</span> <span class="normal"> </span><span class="function"><a href="ClutterModel.html#clutter-model-append">clutter_model_append</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">model</span><span class="symbol">,</span> <span class="normal"> COLUMN_INT</span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">,</span> <span class="normal"> COLUMN_STRING</span><span class="symbol">,</span><span class="normal"> string</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="function">g_free</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">string</span><span class="symbol">);</span> <span class="normal"> </span><span class="cbracket">}</span> <span class="normal"> </span> <span class="cbracket">}</span></pre></td> </tr> </tbody> </table> </div> <p> </p> <p> Iterating through the model consists of retrieving a new <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> pointing to the starting row, and calling <a class="link" href="ClutterModelIter.html#clutter-model-iter-next" title="clutter_model_iter_next ()"><code class="function">clutter_model_iter_next()</code></a> or <a class="link" href="ClutterModelIter.html#clutter-model-iter-prev" title="clutter_model_iter_prev ()"><code class="function">clutter_model_iter_prev()</code></a> to move forward or backwards, repectively. </p> <p> A valid <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> represents the position between two rows in the model. For example, the "first" iterator represents the gap immediately before the first row, and the "last" iterator represents the gap immediately after the last row. In an empty sequence, the first and last iterators are the same. </p> <p> Iterating a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>: </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 17 18 19 20 21 22 23 24 25 26 27</pre></td> <td class="listing_code"><pre class="programlisting"><span class="keyword">enum</span> <span class="cbracket">{</span> <span class="normal"> COLUMN_INT</span><span class="symbol">,</span> <span class="normal"> COLUMN_STRING</span><span class="symbol">.</span> <span class="normal"> N_COLUMNS</span> <span class="cbracket">}</span><span class="symbol">;</span> <span class="cbracket">{</span> <span class="normal"> </span><span class="usertype">ClutterModel</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">ClutterModelIter</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iter </span><span class="symbol">=</span><span class="normal"> NULL</span><span class="symbol">;</span> <span class="normal"> </span><span class="comment">/* Fill the model */</span> <span class="normal"> model </span><span class="symbol">=</span><span class="normal"> </span><span class="function">populate_model</span><span class="normal"> </span><span class="symbol">();</span> <span class="normal"> </span><span class="comment">/* Get the first iter */</span> <span class="normal"> iter </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterModel.html#clutter-model-get-first-iter">clutter_model_get_first_iter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">model</span><span class="symbol">);</span> <span class="normal"> </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="ClutterModelIter.html#clutter-model-iter-is-last">clutter_model_iter_is_last</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iter</span><span class="symbol">))</span> <span class="normal"> </span><span class="cbracket">{</span> <span class="normal"> </span><span class="function">print_row</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iter</span><span class="symbol">);</span> <span class="normal"> </span> <span class="normal"> iter </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="ClutterModelIter.html#clutter-model-iter-next">clutter_model_iter_next</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iter</span><span class="symbol">);</span> <span class="normal"> </span><span class="cbracket">}</span> <span class="normal"> </span><span class="comment">/* Make sure to unref the iter */</span> <span class="normal"> </span><span class="function">g_object_unref</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iter</span><span class="symbol">);</span> <span class="cbracket">}</span></pre></td> </tr> </tbody> </table> </div> <p> </p> <p> <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> is an abstract class. Clutter provides a list model implementation called <a class="link" href="ClutterListModel.html" title="ClutterListModel"><span class="type">ClutterListModel</span></a> which has been optimised for insertion and look up in sorted lists. </p> <p> </p> <div class="refsect2"> <a name="ClutterModel-script"></a><h3>ClutterModel custom properties for <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> </h3> <p><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> defines a custom property "columns" for <a class="link" href="ClutterScript.html" title="ClutterScript"><span class="type">ClutterScript</span></a> which allows defining the column names and types. It also defines a custom "rows" property which allows filling the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> with some data.</p> <div class="example"> <a name="ClutterModel-script-example"></a><p class="title"><b>Example 11. Example of the "columns" and "rows" custom properties</b></p> <div class="example-contents"> <p>The definition below will create a <a class="link" href="ClutterListModel.html" title="ClutterListModel"><span class="type">ClutterListModel</span></a> with three columns: the first one with name "Name" and containing strings; the second one with name "Score" and containing integers; the third one with name "Icon" and containing <a class="link" href="ClutterTexture.html" title="ClutterTexture"><span class="type">ClutterTexture</span></a>s. The model is filled with three rows. A row can be defined either with an array that holds all columns of a row, or an object that holds "column-name" : "column-value" pairs. </p> <pre class="programlisting"> { "type" : "ClutterListModel", "id" : "teams-model", "columns" : [ [ "Name", "gchararray" ], [ "Score", "gint" ], [ "Icon", "ClutterTexture" ] ], "rows" : [ [ "Team 1", 42, { "type" : "ClutterTexture", "filename" : "team1.png" } ], [ "Team 2", 23, "team2-icon-script-id" ], { "Name" : "Team 3", "Icon" : "team3-icon-script-id" } ] } </pre> </div> </div> <br class="example-break"> </div> <p> </p> <p> <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> is available since Clutter 0.6 </p> </div> <div class="refsect1"> <a name="ClutterModel.details"></a><h2>Details</h2> <div class="refsect2"> <a name="ClutterModel-struct"></a><h3>struct ClutterModel</h3> <pre class="programlisting">struct ClutterModel;</pre> <p> Base class for list models. The <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> structure contains only private data and should be manipulated using the provided API. </p> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModelClass"></a><h3>struct ClutterModelClass</h3> <pre class="programlisting">struct ClutterModelClass { /* vtable */ guint (* get_n_rows) (ClutterModel *model); guint (* get_n_columns) (ClutterModel *model); const gchar * (* get_column_name) (ClutterModel *model, guint column); GType (* get_column_type) (ClutterModel *model, guint column); ClutterModelIter *(* insert_row) (ClutterModel *model, gint index_); void (* remove_row) (ClutterModel *model, guint row); ClutterModelIter *(* get_iter_at_row) (ClutterModel *model, guint row); void (* resort) (ClutterModel *model, ClutterModelSortFunc func, gpointer data); /* signals */ void (* row_added) (ClutterModel *model, ClutterModelIter *iter); void (* row_removed) (ClutterModel *model, ClutterModelIter *iter); void (* row_changed) (ClutterModel *model, ClutterModelIter *iter); void (* sort_changed) (ClutterModel *model); void (* filter_changed) (ClutterModel *model); }; </pre> <p> Class for <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> instances. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.get-n-rows"></a>get_n_rows</code></em> ()</span></p></td> <td>virtual function for returning the number of rows of the model</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.get-n-columns"></a>get_n_columns</code></em> ()</span></p></td> <td>virtual function for retuning the number of columns of the model</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.get-column-name"></a>get_column_name</code></em> ()</span></p></td> <td>virtual function for returning the name of a column</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.get-column-type"></a>get_column_type</code></em> ()</span></p></td> <td>virtual function for returning the type of a column</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.insert-row"></a>insert_row</code></em> ()</span></p></td> <td>virtual function for inserting a row at the given index and returning an iterator pointing to it; if the index is a negative integer, the row should be appended to the model</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.remove-row"></a>remove_row</code></em> ()</span></p></td> <td>virtual function for removing a row at the given index</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.get-iter-at-row"></a>get_iter_at_row</code></em> ()</span></p></td> <td>virtual function for returning an iterator for the given row</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.resort"></a>resort</code></em> ()</span></p></td> <td>virtual function for sorting the model using the passed sorting function</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.row-added"></a>row_added</code></em> ()</span></p></td> <td>signal class handler for ClutterModel::row-added</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.row-removed"></a>row_removed</code></em> ()</span></p></td> <td>signal class handler for ClutterModel::row-removed</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.row-changed"></a>row_changed</code></em> ()</span></p></td> <td>signal class handler for ClutterModel::row-changed</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.sort-changed"></a>sort_changed</code></em> ()</span></p></td> <td>signal class handler for ClutterModel::sort-changed</td> </tr> <tr> <td><p><span class="term"><em class="structfield"><code><a name="ClutterModelClass.filter-changed"></a>filter_changed</code></em> ()</span></p></td> <td>signal class handler for ClutterModel::filter-changed</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-set-names"></a><h3>clutter_model_set_names ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_set_names (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code>const <span class="type">gchar</span> * const names[]</code></em>);</pre> <p> Assigns a name to the columns of a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. </p> <p> This function is meant primarily for <span class="type">GObjects</span> that inherit from <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>, and should only be used when contructing a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. It will not work after the initial creation of the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</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 column names</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td> <td>an array of strings. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_columns]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-set-types"></a><h3>clutter_model_set_types ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_set_types (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">GType</span> *types</code></em>);</pre> <p> Sets the types of the columns inside a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. </p> <p> This function is meant primarily for <span class="type">GObjects</span> that inherit from <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>, and should only be used when contructing a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. It will not work after the initial creation of the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>n_columns</code></em> :</span></p></td> <td>number of columns for the model</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>types</code></em> :</span></p></td> <td>an array of <span class="type">GType</span> types. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_columns]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-column-name"></a><h3>clutter_model_get_column_name ()</h3> <pre class="programlisting">const <span class="returnvalue">gchar</span> * clutter_model_get_column_name (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> column</code></em>);</pre> <p> Retrieves the name of the <em class="parameter"><code>column</code></em> </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a></td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>column</code></em> :</span></p></td> <td>the column number</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>the name of the column. The model holds the returned string, and it should not be modified or freed</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-column-type"></a><h3>clutter_model_get_column_type ()</h3> <pre class="programlisting"><span class="returnvalue">GType</span> clutter_model_get_column_type (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> column</code></em>);</pre> <p> Retrieves the type of the <em class="parameter"><code>column</code></em>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a></td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>column</code></em> :</span></p></td> <td>the column number</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>the type of the column.</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-n-columns"></a><h3>clutter_model_get_n_columns ()</h3> <pre class="programlisting"><span class="returnvalue">guint</span> clutter_model_get_n_columns (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>);</pre> <p> Retrieves the number of columns inside <em class="parameter"><code>model</code></em>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>the number of columns</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-n-rows"></a><h3>clutter_model_get_n_rows ()</h3> <pre class="programlisting"><span class="returnvalue">guint</span> clutter_model_get_n_rows (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>);</pre> <p> Retrieves the number of rows inside <em class="parameter"><code>model</code></em>, eventually taking into account any filtering function set using <a class="link" href="ClutterModel.html#clutter-model-set-filter" title="clutter_model_set_filter ()"><code class="function">clutter_model_set_filter()</code></a>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>The length of the <em class="parameter"><code>model</code></em>. If there is a filter set, then the length of the filtered <em class="parameter"><code>model</code></em> is returned.</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-append"></a><h3>clutter_model_append ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_append (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code>...</code></em>);</pre> <p> Creates and appends a new row to the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>, setting the row values upon creation. For example, to append a new row where column 0 is type <code class="literal">G_TYPE_INT</code> and column 1 is of type <code class="literal">G_TYPE_STRING</code>: </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</pre></td> <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterModel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">model</span><span class="symbol">;</span> <span class="normal">model </span><span class="symbol">=</span><span class="normal"> </span><span class="function">clutter_model_default_new</span><span class="normal"> </span><span class="symbol">(</span><span class="number">2</span><span class="symbol">,</span> <span class="normal"> G_TYPE_INT</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Score"</span><span class="symbol">,</span> <span class="normal"> G_TYPE_STRING</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Team"</span><span class="symbol">);</span> <span class="function"><a href="ClutterModel.html#clutter-model-append">clutter_model_append</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">model</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">42</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Team <GTKDOCLINK HREF="</span><span class="number">1</span><span class="symbol">:</span><span class="normal">CAPS</span><span class="string">">1</GTKDOCLINK>"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">);</span></pre></td> </tr> </tbody> </table> </div> <p> </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> <td>pairs of column number and value, terminated with -1</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-appendv"></a><h3>clutter_model_appendv ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_appendv (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">guint</span> *columns</code></em>, <em class="parameter"><code><span class="type">GValue</span> *values</code></em>);</pre> <p> Creates and appends a new row to the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>, setting the row values for the given <em class="parameter"><code>columns</code></em> upon creation. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</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 and values</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>columns</code></em> :</span></p></td> <td>a vector with the columns to set. <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>values</code></em> :</span></p></td> <td>a vector with the values. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_columns]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-prepend"></a><h3>clutter_model_prepend ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_prepend (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code>...</code></em>);</pre> <p> Creates and prepends a new row to the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>, setting the row values upon creation. For example, to prepend a new row where column 0 is type <code class="literal">G_TYPE_INT</code> and column 1 is of type <code class="literal">G_TYPE_STRING</code>: </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</pre></td> <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterModel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">model</span><span class="symbol">;</span> <span class="normal">model </span><span class="symbol">=</span><span class="normal"> </span><span class="function">clutter_model_default_new</span><span class="normal"> </span><span class="symbol">(</span><span class="number">2</span><span class="symbol">,</span> <span class="normal"> G_TYPE_INT</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Score"</span><span class="symbol">,</span> <span class="normal"> G_TYPE_STRING</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Team"</span><span class="symbol">);</span> <span class="function"><a href="ClutterModel.html#clutter-model-prepend">clutter_model_prepend</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">model</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">42</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Team <GTKDOCLINK HREF="</span><span class="number">1</span><span class="symbol">:</span><span class="normal">CAPS</span><span class="string">">1</GTKDOCLINK>"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">);</span></pre></td> </tr> </tbody> </table> </div> <p> </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> <td>pairs of column number and value, terminated with -1</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-prependv"></a><h3>clutter_model_prependv ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_prependv (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">guint</span> *columns</code></em>, <em class="parameter"><code><span class="type">GValue</span> *values</code></em>);</pre> <p> Creates and prepends a new row to the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>, setting the row values for the given <em class="parameter"><code>columns</code></em> upon creation. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</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 and values to set</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>columns</code></em> :</span></p></td> <td>a vector containing the columns to set. <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>values</code></em> :</span></p></td> <td>a vector containing the values for the cells. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_columns]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-insert"></a><h3>clutter_model_insert ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_insert (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>, <em class="parameter"><code>...</code></em>);</pre> <p> Inserts a new row to the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> at <em class="parameter"><code>row</code></em>, setting the row values upon creation. For example, to insert a new row at index 100, where column 0 is type <code class="literal">G_TYPE_INT</code> and column 1 is of type <code class="literal">G_TYPE_STRING</code>: </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</pre></td> <td class="listing_code"><pre class="programlisting"><span class="usertype">ClutterModel</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">model</span><span class="symbol">;</span> <span class="normal">model </span><span class="symbol">=</span><span class="normal"> </span><span class="function">clutter_model_default_new</span><span class="normal"> </span><span class="symbol">(</span><span class="number">2</span><span class="symbol">,</span> <span class="normal"> G_TYPE_INT</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Score"</span><span class="symbol">,</span> <span class="normal"> G_TYPE_STRING</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Team"</span><span class="symbol">);</span> <span class="function"><a href="ClutterModel.html#clutter-model-insert">clutter_model_insert</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">model</span><span class="symbol">,</span><span class="normal"> </span><span class="number">3</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> </span><span class="number">42</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Team <GTKDOCLINK HREF="</span><span class="number">1</span><span class="symbol">:</span><span class="normal">CAPS</span><span class="string">">1</GTKDOCLINK>"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">);</span></pre></td> </tr> </tbody> </table> </div> <p> </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>row</code></em> :</span></p></td> <td>the position to insert the new row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td> <td>pairs of column number and value, terminated with -1</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-insertv"></a><h3>clutter_model_insertv ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_insertv (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>, <em class="parameter"><code><span class="type">guint</span> n_columns</code></em>, <em class="parameter"><code><span class="type">guint</span> *columns</code></em>, <em class="parameter"><code><span class="type">GValue</span> *values</code></em>);</pre> <p> Inserts data at <em class="parameter"><code>row</code></em> into the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>, setting the row values for the given <em class="parameter"><code>columns</code></em> upon creation. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>row</code></em> :</span></p></td> <td>row index</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>n_columns</code></em> :</span></p></td> <td>the number of columns and values to set</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>columns</code></em> :</span></p></td> <td>a vector containing the columns to set. <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>values</code></em> :</span></p></td> <td>a vector containing the values for the cells. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_columns]</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-insert-value"></a><h3>clutter_model_insert_value ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_insert_value (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>, <em class="parameter"><code><span class="type">guint</span> column</code></em>, <em class="parameter"><code>const <span class="type">GValue</span> *value</code></em>);</pre> <p> Sets the data in the cell specified by <em class="parameter"><code>iter</code></em> and <em class="parameter"><code>column</code></em>. The type of <em class="parameter"><code>value</code></em> must be convertable to the type of the column. If the row does not exist then it is created. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>row</code></em> :</span></p></td> <td>position of the row to modify</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>column</code></em> :</span></p></td> <td>column to modify</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td> <td>new value for the cell</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-remove"></a><h3>clutter_model_remove ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_remove (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>);</pre> <p> Removes the row at the given position from the model. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>row</code></em> :</span></p></td> <td>position of row to remove</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModelForeachFunc"></a><h3>ClutterModelForeachFunc ()</h3> <pre class="programlisting"><span class="returnvalue">gboolean</span> (*ClutterModelForeachFunc) (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre> <p> Iterates on the content of a row in the model </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>the iterator for the row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>data passed to <a class="link" href="ClutterModel.html#clutter-model-foreach" title="clutter_model_foreach ()"><code class="function">clutter_model_foreach()</code></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> <code class="literal">TRUE</code> if the iteration should continue, <code class="literal">FALSE</code> otherwise</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-foreach"></a><h3>clutter_model_foreach ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_foreach (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModel.html#ClutterModelForeachFunc" title="ClutterModelForeachFunc ()"><span class="type">ClutterModelForeachFunc</span></a> func</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre> <p> Calls <em class="parameter"><code>func</code></em> for each row in the model. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</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="ClutterModel.html#ClutterModelForeachFunc" title="ClutterModelForeachFunc ()"><span class="type">ClutterModelForeachFunc</span></a>. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>user data to pass to <em class="parameter"><code>func</code></em> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-set-sorting-column"></a><h3>clutter_model_set_sorting_column ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_set_sorting_column (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">gint</span> column</code></em>);</pre> <p> Sets the model to sort by <em class="parameter"><code>column</code></em>. If <em class="parameter"><code>column</code></em> is a negative value the sorting column will be unset. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>column</code></em> :</span></p></td> <td>the column of the <em class="parameter"><code>model</code></em> to sort, or -1</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-sorting-column"></a><h3>clutter_model_get_sorting_column ()</h3> <pre class="programlisting"><span class="returnvalue">gint</span> clutter_model_get_sorting_column (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>);</pre> <p> Retrieves the number of column used for sorting the <em class="parameter"><code>model</code></em>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>a column number, or -1 if the model is not sorted</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModelSortFunc"></a><h3>ClutterModelSortFunc ()</h3> <pre class="programlisting"><span class="returnvalue">gint</span> (*ClutterModelSortFunc) (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code>const <span class="type">GValue</span> *a</code></em>, <em class="parameter"><code>const <span class="type">GValue</span> *b</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre> <p> Compares the content of two rows in the model. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td> <td>a <span class="type">GValue</span> representing the contents of the row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td> <td>a <span class="type">GValue</span> representing the contents of the second row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>data passed to <a class="link" href="ClutterModel.html#clutter-model-set-sort" title="clutter_model_set_sort ()"><code class="function">clutter_model_set_sort()</code></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>a positive integer if <em class="parameter"><code>a</code></em> is after <em class="parameter"><code>b</code></em>, a negative integer if <em class="parameter"><code>a</code></em> is before <em class="parameter"><code>b</code></em>, or 0 if the rows are the same</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-set-sort"></a><h3>clutter_model_set_sort ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_set_sort (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">gint</span> column</code></em>, <em class="parameter"><code><a class="link" href="ClutterModel.html#ClutterModelSortFunc" title="ClutterModelSortFunc ()"><span class="type">ClutterModelSortFunc</span></a> func</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>, <em class="parameter"><code><span class="type">GDestroyNotify</span> notify</code></em>);</pre> <p> Sorts <em class="parameter"><code>model</code></em> using the given sorting function. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>column</code></em> :</span></p></td> <td>the column to sort on</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html#ClutterModelSortFunc" title="ClutterModelSortFunc ()"><span class="type">ClutterModelSortFunc</span></a>, or <span class="type">NULL</span>. <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>user_data</code></em> :</span></p></td> <td>user data to pass to <em class="parameter"><code>func</code></em>, or <span class="type">NULL</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td> <td>destroy notifier of <em class="parameter"><code>user_data</code></em>, or <span class="type">NULL</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-resort"></a><h3>clutter_model_resort ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_resort (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>);</pre> <p> Force a resort on the <em class="parameter"><code>model</code></em>. This function should only be used by subclasses of <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr></tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModelFilterFunc"></a><h3>ClutterModelFilterFunc ()</h3> <pre class="programlisting"><span class="returnvalue">gboolean</span> (*ClutterModelFilterFunc) (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre> <p> Filters the content of a row in the model. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>the iterator for the row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>data passed to <a class="link" href="ClutterModel.html#clutter-model-set-filter" title="clutter_model_set_filter ()"><code class="function">clutter_model_set_filter()</code></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td>If the row should be displayed, return <code class="literal">TRUE</code> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-set-filter"></a><h3>clutter_model_set_filter ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> clutter_model_set_filter (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModel.html#ClutterModelFilterFunc" title="ClutterModelFilterFunc ()"><span class="type">ClutterModelFilterFunc</span></a> func</code></em>, <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>, <em class="parameter"><code><span class="type">GDestroyNotify</span> notify</code></em>);</pre> <p> Filters the <em class="parameter"><code>model</code></em> using the given filtering function. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</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="ClutterModel.html#ClutterModelFilterFunc" title="ClutterModelFilterFunc ()"><span class="type">ClutterModelFilterFunc</span></a>, or <span class="type">NULL</span>. <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>user_data</code></em> :</span></p></td> <td>user data to pass to <em class="parameter"><code>func</code></em>, or <span class="type">NULL</span> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td> <td>destroy notifier of <em class="parameter"><code>user_data</code></em>, or <span class="type">NULL</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-filter-set"></a><h3>clutter_model_get_filter_set ()</h3> <pre class="programlisting"><span class="returnvalue">gboolean</span> clutter_model_get_filter_set (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>);</pre> <p> Returns whether the <em class="parameter"><code>model</code></em> has a filter in place, set using <a class="link" href="ClutterModel.html#clutter-model-set-filter" title="clutter_model_set_filter ()"><code class="function">clutter_model_set_filter()</code></a> </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> <code class="literal">TRUE</code> if a filter is set</td> </tr> </tbody> </table></div> <p class="since">Since 1.0</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-filter-iter"></a><h3>clutter_model_filter_iter ()</h3> <pre class="programlisting"><span class="returnvalue">gboolean</span> clutter_model_filter_iter (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter</code></em>);</pre> <p> Checks whether the row pointer by <em class="parameter"><code>iter</code></em> should be filtered or not using the filtering function set on <em class="parameter"><code>model</code></em>. </p> <p> This function should be used only by subclasses of <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>the row to filter</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> <code class="literal">TRUE</code> if the row should be displayed, <code class="literal">FALSE</code> otherwise</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-filter-row"></a><h3>clutter_model_filter_row ()</h3> <pre class="programlisting"><span class="returnvalue">gboolean</span> clutter_model_filter_row (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>);</pre> <p> Checks whether <em class="parameter"><code>row</code></em> should be filtered or not using the filtering function set on <em class="parameter"><code>model</code></em>. </p> <p> This function should be used only by subclasses of <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>row</code></em> :</span></p></td> <td>the row to filter</td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> <code class="literal">TRUE</code> if the row should be displayed, <code class="literal">FALSE</code> otherwise</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-first-iter"></a><h3>clutter_model_get_first_iter ()</h3> <pre class="programlisting"><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="returnvalue">ClutterModelIter</span></a> * clutter_model_get_first_iter (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>);</pre> <p> Retrieves a <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> representing the first non-filtered row in <em class="parameter"><code>model</code></em>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </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="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a>. Call <code class="function">g_object_unref()</code> when done using it. <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 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-last-iter"></a><h3>clutter_model_get_last_iter ()</h3> <pre class="programlisting"><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="returnvalue">ClutterModelIter</span></a> * clutter_model_get_last_iter (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>);</pre> <p> Retrieves a <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> representing the last non-filtered row in <em class="parameter"><code>model</code></em>. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </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="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a>. Call <code class="function">g_object_unref()</code> when done using it. <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 0.6</p> </div> <hr> <div class="refsect2"> <a name="clutter-model-get-iter-at-row"></a><h3>clutter_model_get_iter_at_row ()</h3> <pre class="programlisting"><a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="returnvalue">ClutterModelIter</span></a> * clutter_model_get_iter_at_row (<em class="parameter"><code><a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model</code></em>, <em class="parameter"><code><span class="type">guint</span> row</code></em>);</pre> <p> Retrieves a <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> representing the row at the given index. </p> <p> If a filter function has been set using <a class="link" href="ClutterModel.html#clutter-model-set-filter" title="clutter_model_set_filter ()"><code class="function">clutter_model_set_filter()</code></a> then the <em class="parameter"><code>model</code></em> implementation will return the first non filtered row. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>row</code></em> :</span></p></td> <td>position of the row to retrieve</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="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a>, or <code class="literal">NULL</code> if <em class="parameter"><code>row</code></em> was out of bounds. When done using the iterator object, call <code class="function">g_object_unref()</code> to deallocate its resources. <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 0.6</p> </div> </div> <div class="refsect1"> <a name="ClutterModel.property-details"></a><h2>Property Details</h2> <div class="refsect2"> <a name="ClutterModel--filter-set"></a><h3>The <code class="literal">"filter-set"</code> property</h3> <pre class="programlisting"> "filter-set" <span class="type">gboolean</span> : Read</pre> <p> Whether the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> has a filter set </p> <p> This property is set to <code class="literal">TRUE</code> if a filter function has been set using <a class="link" href="ClutterModel.html#clutter-model-set-filter" title="clutter_model_set_filter ()"><code class="function">clutter_model_set_filter()</code></a> </p> <p>Default value: FALSE</p> <p class="since">Since 1.0</p> </div> </div> <div class="refsect1"> <a name="ClutterModel.signal-details"></a><h2>Signal Details</h2> <div class="refsect2"> <a name="ClutterModel-filter-changed"></a><h3>The <code class="literal">"filter-changed"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model, <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre> <p> The ::filter-changed signal is emitted when a new filter has been applied </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> on which the signal is emitted</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>user data set when the signal handler was connected.</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModel-row-added"></a><h3>The <code class="literal">"row-added"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model, <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter, <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre> <p> The ::row-added signal is emitted when a new row has been added. The data on the row has already been set when the ::row-added signal has been emitted. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> on which the signal is emitted</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> pointing to the new row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>user data set when the signal handler was connected.</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModel-row-changed"></a><h3>The <code class="literal">"row-changed"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model, <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter, <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre> <p> The ::row-removed signal is emitted when a row has been changed. The data on the row has already been updated when the ::row-changed signal has been emitted. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> on which the signal is emitted</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> pointing to the changed row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>user data set when the signal handler was connected.</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModel-row-removed"></a><h3>The <code class="literal">"row-removed"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model, <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> *iter, <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre> <p> The ::row-removed signal is emitted when a row has been removed. The data on the row pointed by the passed iterator is still valid when the ::row-removed signal has been emitted. </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> on which the signal is emitted</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td> <td>a <a class="link" href="ClutterModelIter.html" title="ClutterModelIter"><span class="type">ClutterModelIter</span></a> pointing to the removed row</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>user data set when the signal handler was connected.</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> <hr> <div class="refsect2"> <a name="ClutterModel-sort-changed"></a><h3>The <code class="literal">"sort-changed"</code> signal</h3> <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> *model, <span class="type">gpointer</span> user_data) : <code class="literal">Run Last</code></pre> <p> The ::sort-changed signal is emitted after the model has been sorted </p> <div class="variablelist"><table border="0" class="variablelist"> <colgroup> <col align="left" valign="top"> <col> </colgroup> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>model</code></em> :</span></p></td> <td>the <a class="link" href="ClutterModel.html" title="ClutterModel"><span class="type">ClutterModel</span></a> on which the signal is emitted</td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> <td>user data set when the signal handler was connected.</td> </tr> </tbody> </table></div> <p class="since">Since 0.6</p> </div> </div> </div> <div class="footer"> <hr> Generated by GTK-Doc V1.18.1</div> </body> </html>