<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
]>
<!--ENTITY index-Objects-Grouped SYSTEM "objects_grouped.sgml"-->
<refentry id="GtkCellLayout">
<refmeta>
<refentrytitle role="top_of_page" id="GtkCellLayout.top_of_page">GtkCellLayout</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>GtkCellLayout</refname>
<refpurpose>An interface for packing cells</refpurpose>
</refnamediv>

<refsynopsisdiv id="GtkCellLayout.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>

#include &lt;gtk/gtk.h&gt;

                    <link linkend="GtkCellLayout-struct">GtkCellLayout</link>;
                    <link linkend="GtkCellLayoutIface">GtkCellLayoutIface</link>;
<link linkend="void">void</link>                (<link linkend="GtkCellLayoutDataFunc">*GtkCellLayoutDataFunc</link>)            (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="GtkTreeModel">GtkTreeModel</link> *tree_model,
                                                         <link linkend="GtkTreeIter">GtkTreeIter</link> *iter,
                                                         <link linkend="gpointer">gpointer</link> data);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-pack-start">gtk_cell_layout_pack_start</link>          (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="gboolean">gboolean</link> expand);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-pack-end">gtk_cell_layout_pack_end</link>            (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="gboolean">gboolean</link> expand);
<link linkend="GList">GList</link> *             <link linkend="gtk-cell-layout-get-cells">gtk_cell_layout_get_cells</link>           (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-reorder">gtk_cell_layout_reorder</link>             (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="gint">gint</link> position);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-clear">gtk_cell_layout_clear</link>               (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-set-attributes">gtk_cell_layout_set_attributes</link>      (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         ...);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-add-attribute">gtk_cell_layout_add_attribute</link>       (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         const <link linkend="gchar">gchar</link> *attribute,
                                                         <link linkend="gint">gint</link> column);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-set-cell-data-func">gtk_cell_layout_set_cell_data_func</link>  (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="GtkCellLayoutDataFunc">GtkCellLayoutDataFunc</link> func,
                                                         <link linkend="gpointer">gpointer</link> func_data,
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);
<link linkend="void">void</link>                <link linkend="gtk-cell-layout-clear-attributes">gtk_cell_layout_clear_attributes</link>    (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell);
</synopsis>
</refsynopsisdiv>

<refsect1 id="GtkCellLayout.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>
  <link linkend="GInterface">GInterface</link>
   +----GtkCellLayout
</synopsis>
</refsect1>

<refsect1 id="GtkCellLayout.prerequisites" role="prerequisites">
<title role="prerequisites.title">Prerequisites</title>
<para>
GtkCellLayout requires
 <link linkend="GObject">GObject</link>.</para>
</refsect1>



<refsect1 id="GtkCellLayout.implementations" role="implementations">
<title role="implementations.title">Known Implementations</title>
<para>
GtkCellLayout is implemented by
 <link linkend="GtkTreeViewColumn">GtkTreeViewColumn</link>,  <link linkend="GtkIconView">GtkIconView</link>,  <link linkend="GtkCellView">GtkCellView</link>,  <link linkend="GtkEntryCompletion">GtkEntryCompletion</link>,  <link linkend="GtkComboBox">GtkComboBox</link> and  <link linkend="GtkComboBoxEntry">GtkComboBoxEntry</link>.</para>
</refsect1>




<refsect1 id="GtkCellLayout.description" role="desc">
<title role="desc.title">Description</title>
<para>
<link linkend="GtkCellLayout"><type>GtkCellLayout</type></link> is an interface to be implemented by all objects which
want to provide a <link linkend="GtkTreeViewColumn-like"><type>GtkTreeViewColumn-like</type></link> API for packing cells, setting
attributes and data funcs.
</para>
<para>
One of the notable features provided by implementations of GtkCellLayout
are <emphasis>attributes</emphasis>. Attributes let you set the properties
in flexible ways. They can just be set to constant values like regular
properties. But they can also be mapped to a column of the underlying
tree model with <link linkend="gtk-cell-layout-set-attributes"><function>gtk_cell_layout_set_attributes()</function></link>, which means that the value
of the attribute can change from cell to cell as they are rendered by the
cell renderer. Finally, it is possible to specify a function with
<link linkend="gtk-cell-layout-set-cell-data-func"><function>gtk_cell_layout_set_cell_data_func()</function></link> that is called to determine the value
of the attribute for each cell that is rendered.
</para>
<refsect2 id="GtkCellLayout-BUILDER-UI">
<title>GtkCellLayouts as GtkBuildable</title>
<para>
Implementations of GtkCellLayout which also implement the GtkBuildable
interface (<link linkend="GtkCellView"><type>GtkCellView</type></link>, <link linkend="GtkIconView"><type>GtkIconView</type></link>, <link linkend="GtkComboBox"><type>GtkComboBox</type></link>, <link linkend="GtkComboBoxEntry"><type>GtkComboBoxEntry</type></link>,
<link linkend="GtkEntryCompletion"><type>GtkEntryCompletion</type></link>, <link linkend="GtkTreeViewColumn"><type>GtkTreeViewColumn</type></link>) accept GtkCellRenderer objects
as &lt;child&gt; elements in UI definitions. They support a custom
&lt;attributes&gt; element for their children, which can contain
multiple &lt;attribute&gt; elements. Each &lt;attribute&gt; element has
a name attribute which specifies a property of the cell renderer; the
content of the element is the attribute value.
</para>
<example>
<title>A UI definition fragment specifying attributes</title>
<programlisting><![CDATA[
<object class="GtkCellView">
  <child>
    <object class="GtkCellRendererText"/>
    <attributes>
      <attribute name="text">0</attribute>
    </attributes>
  </child>"
</object>
]]></programlisting>
</example>
</refsect2>
</refsect1>

<refsect1 id="GtkCellLayout.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="GtkCellLayout-struct" role="struct">
<title>GtkCellLayout</title>
<indexterm zone="GtkCellLayout-struct"><primary sortas="CellLayout">GtkCellLayout</primary></indexterm><programlisting>typedef struct _GtkCellLayout GtkCellLayout;</programlisting>
<para>
</para></refsect2>
<refsect2 id="GtkCellLayoutIface" role="struct">
<title>GtkCellLayoutIface</title>
<indexterm zone="GtkCellLayoutIface"><primary sortas="CellLayoutIface">GtkCellLayoutIface</primary></indexterm><programlisting>typedef struct {
  GTypeInterface g_iface;

  /* Virtual Table */
  void (* pack_start)         (GtkCellLayout         *cell_layout,
                               GtkCellRenderer       *cell,
                               gboolean               expand);
  void (* pack_end)           (GtkCellLayout         *cell_layout,
                               GtkCellRenderer       *cell,
                               gboolean               expand);
  void (* clear)              (GtkCellLayout         *cell_layout);
  void (* add_attribute)      (GtkCellLayout         *cell_layout,
                               GtkCellRenderer       *cell,
                               const gchar           *attribute,
                               gint                   column);
  void (* set_cell_data_func) (GtkCellLayout         *cell_layout,
                               GtkCellRenderer       *cell,
                               GtkCellLayoutDataFunc  func,
                               gpointer               func_data,
                               GDestroyNotify         destroy);
  void (* clear_attributes)   (GtkCellLayout         *cell_layout,
                               GtkCellRenderer       *cell);
  void (* reorder)            (GtkCellLayout         *cell_layout,
                               GtkCellRenderer       *cell,
                               gint                   position);
  GList* (* get_cells)        (GtkCellLayout         *cell_layout);
} GtkCellLayoutIface;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="GtkCellLayoutDataFunc" role="function">
<title>GtkCellLayoutDataFunc ()</title>
<indexterm zone="GtkCellLayoutDataFunc"><primary sortas="CellLayoutDataFunc">GtkCellLayoutDataFunc</primary></indexterm><programlisting><link linkend="void">void</link>                (*GtkCellLayoutDataFunc)            (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="GtkTreeModel">GtkTreeModel</link> *tree_model,
                                                         <link linkend="GtkTreeIter">GtkTreeIter</link> *iter,
                                                         <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
A function which should set the value of <parameter>cell_layout</parameter>'s cell renderer(s)
as appropriate.
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara>a <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara>the cell renderer whose value is to be set
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>tree_model</parameter>&#160;:</term>
<listitem><simpara>the model
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>iter</parameter>&#160;:</term>
<listitem><simpara>a <link linkend="GtkTreeIter"><type>GtkTreeIter</type></link> indicating the row to set the value for
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&#160;:</term>
<listitem><simpara>user data passed to <link linkend="gtk-cell-layout-set-cell-data-func"><function>gtk_cell_layout_set_cell_data_func()</function></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="gtk-cell-layout-pack-start" role="function" condition="since:2.4">
<title>gtk_cell_layout_pack_start ()</title>
<indexterm zone="gtk-cell-layout-pack-start" role="2.4"><primary sortas="cell_layout_pack_start">gtk_cell_layout_pack_start</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_pack_start          (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="gboolean">gboolean</link> expand);</programlisting>
<para>
Packs the <parameter>cell</parameter> into the beginning of <parameter>cell_layout</parameter>. If <parameter>expand</parameter> is <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>,
then the <parameter>cell</parameter> is allocated no more space than it needs. Any unused space
is divided evenly between cells for which <parameter>expand</parameter> is <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>.
</para>
<para>
Note that reusing the same cell renderer is not supported.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>expand</parameter>&#160;:</term>
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>cell</parameter> is to be given extra space allocated to <parameter>cell_layout</parameter>.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-cell-layout-pack-end" role="function" condition="since:2.4">
<title>gtk_cell_layout_pack_end ()</title>
<indexterm zone="gtk-cell-layout-pack-end" role="2.4"><primary sortas="cell_layout_pack_end">gtk_cell_layout_pack_end</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_pack_end            (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="gboolean">gboolean</link> expand);</programlisting>
<para>
Adds the <parameter>cell</parameter> to the end of <parameter>cell_layout</parameter>. If <parameter>expand</parameter> is <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>, then the
<parameter>cell</parameter> is allocated no more space than it needs. Any unused space is
divided evenly between cells for which <parameter>expand</parameter> is <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>.
</para>
<para>
Note that reusing the same cell renderer is not supported.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>expand</parameter>&#160;:</term>
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>cell</parameter> is to be given extra space allocated to <parameter>cell_layout</parameter>.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-cell-layout-get-cells" role="function" condition="since:2.12">
<title>gtk_cell_layout_get_cells ()</title>
<indexterm zone="gtk-cell-layout-get-cells" role="2.12"><primary sortas="cell_layout_get_cells">gtk_cell_layout_get_cells</primary></indexterm><programlisting><link linkend="GList">GList</link> *             gtk_cell_layout_get_cells           (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout);</programlisting>
<para>
Returns the cell renderers which have been added to <parameter>cell_layout</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a list of cell renderers. The list, but not the
  renderers has been newly allocated and should be freed with
  <link linkend="g-list-free"><function>g_list_free()</function></link> when no longer needed.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.12</para></refsect2>
<refsect2 id="gtk-cell-layout-reorder" role="function" condition="since:2.4">
<title>gtk_cell_layout_reorder ()</title>
<indexterm zone="gtk-cell-layout-reorder" role="2.4"><primary sortas="cell_layout_reorder">gtk_cell_layout_reorder</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_reorder             (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="gint">gint</link> position);</programlisting>
<para>
Re-inserts <parameter>cell</parameter> at <parameter>position</parameter>. Note that <parameter>cell</parameter> has already to be packed
into <parameter>cell_layout</parameter> for this to function properly.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link> to reorder.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>position</parameter>&#160;:</term>
<listitem><simpara> New position to insert <parameter>cell</parameter> at.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-cell-layout-clear" role="function" condition="since:2.4">
<title>gtk_cell_layout_clear ()</title>
<indexterm zone="gtk-cell-layout-clear" role="2.4"><primary sortas="cell_layout_clear">gtk_cell_layout_clear</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_clear               (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout);</programlisting>
<para>
Unsets all the mappings on all renderers on <parameter>cell_layout</parameter> and
removes all renderers from <parameter>cell_layout</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-cell-layout-set-attributes" role="function" condition="since:2.4">
<title>gtk_cell_layout_set_attributes ()</title>
<indexterm zone="gtk-cell-layout-set-attributes" role="2.4"><primary sortas="cell_layout_set_attributes">gtk_cell_layout_set_attributes</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_set_attributes      (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         ...);</programlisting>
<para>
Sets the attributes in list as the attributes of <parameter>cell_layout</parameter>. The
attributes should be in attribute/column order, as in
<link linkend="gtk-cell-layout-add-attribute"><function>gtk_cell_layout_add_attribute()</function></link>. All existing attributes are removed, and
replaced with the new attributes.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated list of attributes.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-cell-layout-add-attribute" role="function" condition="since:2.4">
<title>gtk_cell_layout_add_attribute ()</title>
<indexterm zone="gtk-cell-layout-add-attribute" role="2.4"><primary sortas="cell_layout_add_attribute">gtk_cell_layout_add_attribute</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_add_attribute       (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         const <link linkend="gchar">gchar</link> *attribute,
                                                         <link linkend="gint">gint</link> column);</programlisting>
<para>
Adds an attribute mapping to the list in <parameter>cell_layout</parameter>. The <parameter>column</parameter> is the
column of the model to get a value from, and the <parameter>attribute</parameter> is the
parameter on <parameter>cell</parameter> to be set from the value. So for example if column 2
of the model contains strings, you could have the "text" attribute of a
<link linkend="GtkCellRendererText"><type>GtkCellRendererText</type></link> get its values from column 2.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>attribute</parameter>&#160;:</term>
<listitem><simpara> An attribute on the renderer.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>column</parameter>&#160;:</term>
<listitem><simpara> The column position on the model to get the attribute from.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-cell-layout-set-cell-data-func" role="function" condition="since:2.4">
<title>gtk_cell_layout_set_cell_data_func ()</title>
<indexterm zone="gtk-cell-layout-set-cell-data-func" role="2.4"><primary sortas="cell_layout_set_cell_data_func">gtk_cell_layout_set_cell_data_func</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_set_cell_data_func  (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell,
                                                         <link linkend="GtkCellLayoutDataFunc">GtkCellLayoutDataFunc</link> func,
                                                         <link linkend="gpointer">gpointer</link> func_data,
                                                         <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);</programlisting>
<para>
Sets the <link linkend="GtkCellLayoutDataFunc"><type>GtkCellLayoutDataFunc</type></link> to use for <parameter>cell_layout</parameter>. This function
is used instead of the standard attributes mapping for setting the
column value, and should set the value of <parameter>cell_layout</parameter>'s cell renderer(s)
as appropriate. <parameter>func</parameter> may be <link linkend="NULL--CAPS"><literal>NULL</literal></link> to remove and older one.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func</parameter>&#160;:</term>
<listitem><simpara> The <link linkend="GtkCellLayoutDataFunc"><type>GtkCellLayoutDataFunc</type></link> to use.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func_data</parameter>&#160;:</term>
<listitem><simpara> The user data for <parameter>func</parameter>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>destroy</parameter>&#160;:</term>
<listitem><simpara> The destroy notification for <parameter>func_data</parameter>.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>
<refsect2 id="gtk-cell-layout-clear-attributes" role="function" condition="since:2.4">
<title>gtk_cell_layout_clear_attributes ()</title>
<indexterm zone="gtk-cell-layout-clear-attributes" role="2.4"><primary sortas="cell_layout_clear_attributes">gtk_cell_layout_clear_attributes</primary></indexterm><programlisting><link linkend="void">void</link>                gtk_cell_layout_clear_attributes    (<link linkend="GtkCellLayout">GtkCellLayout</link> *cell_layout,
                                                         <link linkend="GtkCellRenderer">GtkCellRenderer</link> *cell);</programlisting>
<para>
Clears all existing attributes previously set with
<link linkend="gtk-cell-layout-set-attributes"><function>gtk_cell_layout_set_attributes()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cell_layout</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellLayout"><type>GtkCellLayout</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cell</parameter>&#160;:</term>
<listitem><simpara> A <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link> to clear the attribute mapping on.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.4</para></refsect2>

</refsect1>




</refentry>
