|  |  |  | GTK+ Reference Manual |  | 
|---|
| GtkCellLayoutGtkCellLayout — An interface for packing cells | 
#include <gtk/gtk.h>
            GtkCellLayout;
            GtkCellLayoutIface;
void        (*GtkCellLayoutDataFunc)        (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             gpointer data);
void        gtk_cell_layout_pack_start      (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             gboolean expand);
void        gtk_cell_layout_pack_end        (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             gboolean expand);
void        gtk_cell_layout_reorder         (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             gint position);
void        gtk_cell_layout_clear           (GtkCellLayout *cell_layout);
void        gtk_cell_layout_set_attributes  (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             ...);
void        gtk_cell_layout_add_attribute   (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             const gchar *attribute,
                                             gint column);
void        gtk_cell_layout_set_cell_data_func
                                            (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             GtkCellLayoutDataFunc func,
                                             gpointer func_data,
                                             GDestroyNotify destroy);
void        gtk_cell_layout_clear_attributes
                                            (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell);
GtkCellLayout is implemented by GtkCellView, GtkEntryCompletion, GtkTreeViewColumn, GtkComboBox, GtkIconView and GtkComboBoxEntry.
GtkCellLayout is an interface to be implemented by all objects which want to provide a GtkTreeViewColumn-like API for packing cells, setting attributes and data funcs.
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);
} GtkCellLayoutIface;
void (*GtkCellLayoutDataFunc) (GtkCellLayout *cell_layout, GtkCellRenderer *cell, GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data);
A function which should set the value of cell_layout's cell renderer(s)
as appropriate. 
| cell_layout: | a GtkCellLayout | 
| cell: | the cell renderer whose value is to be set | 
| tree_model: | the model | 
| iter: | a GtkTreeIter indicating the row to set the value for | 
| data: | user data passed to gtk_cell_layout_set_cell_data_func() | 
void gtk_cell_layout_pack_start (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gboolean expand);
Packs the cell into the beginning of cell_layout. If expand is FALSE,
then the cell is allocated no more space than it needs. Any unused space
is divided evenly between cells for which expand is TRUE.
| cell_layout: | A GtkCellLayout. | 
| cell: | A GtkCellRenderer. | 
| expand: | TRUEifcellis to be given extra space allocated tocell_layout. | 
Since 2.4
void gtk_cell_layout_pack_end (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gboolean expand);
Adds the cell to the end of cell_layout. If expand is FALSE, then the
cell is allocated no more space than it needs. Any unused space is
divided evenly between cells for which expand is TRUE.
| cell_layout: | A GtkCellLayout. | 
| cell: | A GtkCellRenderer. | 
| expand: | TRUEifcellis to be given extra space allocated tocell_layout. | 
Since 2.4
void gtk_cell_layout_reorder (GtkCellLayout *cell_layout, GtkCellRenderer *cell, gint position);
Re-inserts cell at position. Note that cell has already to be packed
into cell_layout for this to function properly.
| cell_layout: | A GtkCellLayout. | 
| cell: | A GtkCellRenderer to reorder. | 
| position: | New position to insert cellat. | 
Since 2.4
void gtk_cell_layout_clear (GtkCellLayout *cell_layout);
Unsets all the mappings on all renderers on cell_layout and
removes all renderers from cell_layout.
| cell_layout: | A GtkCellLayout. | 
Since 2.4
void gtk_cell_layout_set_attributes (GtkCellLayout *cell_layout, GtkCellRenderer *cell, ...);
Sets the attributes in list as the attributes of cell_layout. The
attributes should be in attribute/column order, as in
gtk_cell_layout_add_attribute(). All existing attributes are removed, and
replaced with the new attributes.
| cell_layout: | A GtkCellLayout. | 
| cell: | A GtkCellRenderer. | 
| ...: | A NULL-terminated list of attributes. | 
Since 2.4
void gtk_cell_layout_add_attribute (GtkCellLayout *cell_layout, GtkCellRenderer *cell, const gchar *attribute, gint column);
Adds an attribute mapping to the list in cell_layout. The column is the
column of the model to get a value from, and the attribute is the
parameter on cell 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
GtkCellRendererText get its values from column 2.
| cell_layout: | A GtkCellLayout. | 
| cell: | A GtkCellRenderer. | 
| attribute: | An attribute on the renderer. | 
| column: | The column position on the model to get the attribute from. | 
Since 2.4
void        gtk_cell_layout_set_cell_data_func
                                            (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             GtkCellLayoutDataFunc func,
                                             gpointer func_data,
                                             GDestroyNotify destroy);
Sets the GtkCellLayoutDataFunc to use for cell_layout. This function
is used instead of the standard attributes mapping for setting the
column value, and should set the value of cell_layout's cell renderer(s)
as appropriate. func may be NULL to remove and older one.
| cell_layout: | A GtkCellLayout. | 
| cell: | A GtkCellRenderer. | 
| func: | The GtkCellLayoutDataFunc to use. | 
| func_data: | The user data for func. | 
| destroy: | The destroy notification for func_data. | 
Since 2.4
void        gtk_cell_layout_clear_attributes
                                            (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell);
Clears all existing attributes previously set with
gtk_cell_layout_set_attributes().
| cell_layout: | A GtkCellLayout. | 
| cell: | A GtkCellRenderer to clear the attribute mapping on. | 
Since 2.4
| << GtkTreeModelFilter | GtkCellRenderer >> |