Top | ![]() |
![]() |
![]() |
![]() |
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 GObjects 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
activatable like GtkCellRendererToggle,
which toggles when it gets activated by a mouse click, or it can be
editable 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 activate
or start_editing
virtual functions,
respectively.