summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrenderer.c
diff options
context:
space:
mode:
authorJavier Jardón <jjardon@gnome.org>2010-11-06 17:57:23 +0100
committerJavier Jardón <jjardon@gnome.org>2010-11-06 18:21:35 +0100
commit6cfd907290e699a9cea371259aa82519982d002f (patch)
treed795c629ad8ab914618133a37113ea46f6e03a3b /gtk/gtkcellrenderer.c
parentc418ea89e5bd6df58b61bbaa94668820e2ec48a0 (diff)
downloadgtk+-6cfd907290e699a9cea371259aa82519982d002f.tar.gz
docs: Move documentation to inline comments: GtkCellRenderer
Diffstat (limited to 'gtk/gtkcellrenderer.c')
-rw-r--r--gtk/gtkcellrenderer.c39
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);