diff options
Diffstat (limited to 'gtk/gtkcellrenderer.c')
-rw-r--r-- | gtk/gtkcellrenderer.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gtk/gtkcellrenderer.c b/gtk/gtkcellrenderer.c index 3656599483..d3a6c028c2 100644 --- a/gtk/gtkcellrenderer.c +++ b/gtk/gtkcellrenderer.c @@ -24,6 +24,45 @@ #include "gtkprivate.h" #include "gtktreeprivate.h" + +/** + * SECTION:gtkcellrenderer + * @Short_description: An object for rendering a single cell on a GdkDrawable + * @Title: GtkCellRenderer + * @See_also: #GtkCellRendererText, #GtkCellRendererPixbuf, #GtkCellRendererToggle + * + * The #GtkCellRenderer is a base class of a set of objects used for + * rendering a cell to a #GdkDrawable. These objects are used primarily by + * the #GtkTreeView widget, though they aren't tied to them in any + * specific way. It is worth noting that #GtkCellRenderer is not a + * #GtkWidget and cannot be treated as such. + * + * The primary use of a #GtkCellRenderer is for drawing a certain graphical + * elements on a #GdkDrawable. Typically, one cell renderer is used to + * draw many cells on the screen. To this extent, it isn't expected that a + * CellRenderer keep any permanent state around. Instead, any state is set + * just prior to use using #GObject<!-- -->s property system. Then, the + * cell is measured using gtk_cell_renderer_get_size(). Finally, the cell + * is rendered in the correct location using gtk_cell_renderer_render(). + * + * There are a number of rules that must be followed when writing a new + * #GtkCellRenderer. First and formost, it's important that a certain set + * of properties will always yield a cell renderer of the same size, + * barring a #GtkStyle change. The #GtkCellRenderer also has a number of + * generic properties that are expected to be honored by all children. + * + * Beyond merely rendering a cell, cell renderers can optionally + * provide active user interface elements. A cell renderer can be + * <firstterm>activatable</firstterm> like #GtkCellRendererToggle, + * which toggles when it gets activated by a mouse click, or it can be + * <firstterm>editable</firstterm> like #GtkCellRendererText, which + * allows the user to edit the text using a #GtkEntry. + * To make a cell renderer activatable or editable, you have to + * implement the #GtkCellRendererClass.activate or + * #GtkCellRendererClass.start_editing virtual functions, respectively. + */ + + #define DEBUG_CELL_SIZE_REQUEST 0 static void gtk_cell_renderer_init (GtkCellRenderer *cell); |