The CellRenderer is a base class of a set of objects used for rendering a cell to a
Context.
These objects are used primarily by the TreeView widget, though they aren’t tied to them
in any specific way. It is worth noting that CellRenderer is not a
Widget and cannot be treated as such.
The primary use of a CellRenderer is for drawing a certain graphical elements on a
Context. 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 Object
s property system. Then, the cell is measured using get_size.
Finally, the cell is rendered in the correct location using render.
There are a number of rules that must be followed when writing a new CellRenderer. First and
foremost, it’s important that a certain set of properties will always yield a cell renderer of the same size, barring a
Style change. The CellRenderer 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 CellRendererToggle, which toggles when it gets activated by
a mouse click, or it can be “editable” like CellRendererText, which allows the
user to edit the text using a widget implementing the CellEditable interface, e.g.
Entry. To make a cell renderer activatable or editable, you have to implement the
activate or
start_editing virtual functions, respectively.
Many properties of CellRenderer and its subclasses have a corresponding “set” property, e.g.
“cell-background-set” corresponds to “cell-background”. These “set” properties reflect whether a property has been set or not.
You should not set them independently.