1 <!-- ##### SECTION Title ##### -->
4 <!-- ##### SECTION Short_Description ##### -->
5 An object for rendering a single cell on a GdkDrawable
7 <!-- ##### SECTION Long_Description ##### -->
9 The #GtkCellRenderer is a base class of a set of objects used for
10 rendering a cell to a #GdkDrawable. These objects are used primarily by
11 the #GtkTreeView widget, though they aren't tied to them in any
12 specific way. It is worth noting that #GtkCellRenderer is not a
13 #GtkWidget and cannot be treated as such.
17 The primary use of a #GtkCellRenderer is for drawing a certain graphical
18 elements on a #GdkDrawable. Typically, one cell renderer is used to
19 draw many cells on the screen. To this extent, it isn't expected that a
20 CellRenderer keep any permanent state around. Instead, any state is set
21 just prior to use using #GObject<!-- -->s property system. Then, the
22 cell is measured using gtk_cell_renderer_get_size(). Finally, the cell
23 is rendered in the correct location using gtk_cell_renderer_render().
27 There are a number of rules that must be followed when writing a new
28 #GtkCellRenderer. First and formost, it's important that a certain set
29 of properties will always yield a cell renderer of the same size,
30 barring a #GtkStyle change. The #GtkCellRenderer also has a number of
31 generic properties that are expected to be honored by all children.
35 Beyond merely rendering a cell, cell renderers can optionally
36 provide active user interface elements. A cell renderer can be
37 <firstterm>activatable</firstterm> like #GtkCellRendererToggle,
38 which toggles when it gets activated by a mouse click, or it can be
39 <firstterm>editable</firstterm> like #GtkCellRendererText, which
40 allows the user to edit the text using a #GtkEntry.
41 To make a cell renderer activatable or editable, you have to
42 implement the @activate or @start_editing virtual functions,
46 <!-- ##### SECTION See_Also ##### -->
48 #GtkCellRendererText,#GtkCellRendererPixbuf,#GtkCellRendererToggle
51 <!-- ##### SECTION Stability_Level ##### -->
54 <!-- ##### SECTION Image ##### -->
57 <!-- ##### ENUM GtkCellRendererState ##### -->
59 Tells how a cell is to be rendererd.
62 @GTK_CELL_RENDERER_SELECTED: The cell is currently selected, and
63 probably has a selection colored background to render to.
64 @GTK_CELL_RENDERER_PRELIT: The mouse is hovering over the cell.
65 @GTK_CELL_RENDERER_INSENSITIVE: The cell is drawn in an insensitive manner
66 @GTK_CELL_RENDERER_SORTED: The cell is in a sorted row
67 @GTK_CELL_RENDERER_FOCUSED: The cell is in the focus row.
69 <!-- ##### ENUM GtkCellRendererMode ##### -->
71 Identifies how the user can interact with a particular cell.
74 @GTK_CELL_RENDERER_MODE_INERT: The cell is just for display
75 and cannot be interacted with. Note that this doesn't mean that eg. the
76 row being drawn can't be selected -- just that a particular element of
77 it cannot be individually modified.
78 @GTK_CELL_RENDERER_MODE_ACTIVATABLE: The cell can be clicked.
79 @GTK_CELL_RENDERER_MODE_EDITABLE: The cell can be edited or otherwise modified.
81 <!-- ##### STRUCT GtkCellRenderer ##### -->
87 <!-- ##### SIGNAL GtkCellRenderer::editing-canceled ##### -->
92 @cellrenderer: the object which received the signal.
94 <!-- ##### SIGNAL GtkCellRenderer::editing-started ##### -->
99 @cellrenderer: the object which received the signal.
103 <!-- ##### ARG GtkCellRenderer:cell-background ##### -->
108 <!-- ##### ARG GtkCellRenderer:cell-background-gdk ##### -->
113 <!-- ##### ARG GtkCellRenderer:cell-background-set ##### -->
118 <!-- ##### ARG GtkCellRenderer:editing ##### -->
123 <!-- ##### ARG GtkCellRenderer:height ##### -->
128 <!-- ##### ARG GtkCellRenderer:is-expanded ##### -->
133 <!-- ##### ARG GtkCellRenderer:is-expander ##### -->
138 <!-- ##### ARG GtkCellRenderer:mode ##### -->
143 <!-- ##### ARG GtkCellRenderer:sensitive ##### -->
148 <!-- ##### ARG GtkCellRenderer:visible ##### -->
153 <!-- ##### ARG GtkCellRenderer:width ##### -->
158 <!-- ##### ARG GtkCellRenderer:xalign ##### -->
163 <!-- ##### ARG GtkCellRenderer:xpad ##### -->
168 <!-- ##### ARG GtkCellRenderer:yalign ##### -->
173 <!-- ##### ARG GtkCellRenderer:ypad ##### -->
178 <!-- ##### STRUCT GtkCellRendererClass ##### -->
193 <!-- ##### FUNCTION gtk_cell_renderer_get_size ##### -->
207 <!-- ##### FUNCTION gtk_cell_renderer_render ##### -->
221 <!-- ##### FUNCTION gtk_cell_renderer_activate ##### -->
236 <!-- ##### FUNCTION gtk_cell_renderer_start_editing ##### -->
251 <!-- ##### FUNCTION gtk_cell_renderer_stop_editing ##### -->
260 <!-- ##### FUNCTION gtk_cell_renderer_get_fixed_size ##### -->
270 <!-- ##### FUNCTION gtk_cell_renderer_set_fixed_size ##### -->
280 <!-- ##### FUNCTION gtk_cell_renderer_get_visible ##### -->
289 <!-- ##### FUNCTION gtk_cell_renderer_set_visible ##### -->
298 <!-- ##### FUNCTION gtk_cell_renderer_get_sensitive ##### -->
307 <!-- ##### FUNCTION gtk_cell_renderer_set_sensitive ##### -->
316 <!-- ##### FUNCTION gtk_cell_renderer_get_alignment ##### -->
326 <!-- ##### FUNCTION gtk_cell_renderer_set_alignment ##### -->
336 <!-- ##### FUNCTION gtk_cell_renderer_get_padding ##### -->
346 <!-- ##### FUNCTION gtk_cell_renderer_set_padding ##### -->