GtkCellLayout

GtkCellLayout —

Synopsis


#include <gtk/gtk.h>


struct      GtkCellLayout;
struct      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_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);


Object Hierarchy


  GInterface
   +----GtkCellLayout

Prerequisites

GtkCellLayout requires GObject.

Known Implementations

GtkCellLayout is implemented by GtkComboBoxEntry, GtkEntryCompletion, GtkTreeViewColumn and GtkComboBox.

Description

Details

struct GtkCellLayout

struct GtkCellLayout;


struct GtkCellLayoutIface

struct GtkCellLayoutIface {

  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);
};


GtkCellLayoutDataFunc ()

void        (*GtkCellLayoutDataFunc)        (GtkCellLayout *cell_layout,
                                             GtkCellRenderer *cell,
                                             GtkTreeModel *tree_model,
                                             GtkTreeIter *iter,
                                             gpointer data);

cell_layout :
cell :
tree_model :
iter :
data :

gtk_cell_layout_pack_start ()

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 : TRUE if cell is to be given extra space allocated to cell_layout.

Since 2.4


gtk_cell_layout_pack_end ()

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 : TRUE if cell is to be given extra space allocated to cell_layout.

Since 2.4


gtk_cell_layout_clear ()

void        gtk_cell_layout_clear           (GtkCellLayout *cell_layout);

Unsets all the mappings on all renderers on cell_layout.

cell_layout : A GtkCellLayout.

Since 2.4


gtk_cell_layout_set_attributes ()

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


gtk_cell_layout_add_attribute ()

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


gtk_cell_layout_set_cell_data_func ()

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


gtk_cell_layout_clear_attributes ()

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