Class

GtkCellRenderer

Description [src]

abstract class Gtk.CellRenderer : GObject.InitiallyUnowned {
  parent_instance: GInitiallyUnowned
}

The GtkCellRenderer is a base class of a set of objects used for rendering a cell to a #cairo_t. 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 #cairo_t. 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 foremost, 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 widget implementing the GtkCellEditable interface, e.g. GtkEntry. To make a cell renderer activatable or editable, you have to implement the GtkCellRendererClass.activate or GtkCellRendererClass.start_editing virtual functions, respectively.

Many properties of GtkCellRenderer 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.

Hierarchy

hierarchy this GtkCellRenderer ancestor_0 GInitiallyUnowned ancestor_0--this ancestor_1 GObject ancestor_1--ancestor_0

Instance methods

gtk_cell_renderer_activate

Passes an activate event to the cell renderer for possible processing. Some cell renderers may use events; for example, GtkCellRendererToggle toggles when it gets a mouse click.

gtk_cell_renderer_get_aligned_area

Gets the aligned area used by cell inside cell_area. Used for finding the appropriate edit and focus rectangle.

Available since: 3.0

gtk_cell_renderer_get_alignment

Fills in xalign and yalign with the appropriate values of cell.

Available since: 2.18

gtk_cell_renderer_get_fixed_size

Fills in width and height with the appropriate size of cell.

gtk_cell_renderer_get_padding

Fills in xpad and ypad with the appropriate values of cell.

Available since: 2.18

gtk_cell_renderer_get_preferred_height

Retreives a renderer’s natural size when rendered to widget.

Available since: 3.0

gtk_cell_renderer_get_preferred_height_for_width

Retreives a cell renderers’s minimum and natural height if it were rendered to widget with the specified width.

Available since: 3.0

gtk_cell_renderer_get_preferred_size

Retrieves the minimum and natural size of a cell taking into account the widget’s preference for height-for-width management.

Available since: 3.0

gtk_cell_renderer_get_preferred_width

Retreives a renderer’s natural size when rendered to widget.

Available since: 3.0

gtk_cell_renderer_get_preferred_width_for_height

Retreives a cell renderers’s minimum and natural width if it were rendered to widget with the specified height.

Available since: 3.0

gtk_cell_renderer_get_request_mode

Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.

Available since: 3.0

gtk_cell_renderer_get_sensitive

Returns the cell renderer’s sensitivity.

Available since: 2.18

gtk_cell_renderer_get_size

Obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to gtk_cell_renderer_render(). If cell_area is not NULL, fills in the x and y offsets (if set) of the cell relative to this location.

Deprecated since: 3.0

gtk_cell_renderer_get_state

Translates the cell renderer state to GtkStateFlags, based on the cell renderer and widget sensitivity, and the given GtkCellRendererState.

Available since: 3.0

gtk_cell_renderer_get_visible

Returns the cell renderer’s visibility.

Available since: 2.18

gtk_cell_renderer_is_activatable

Checks whether the cell renderer can do something when activated.

Available since: 3.0

gtk_cell_renderer_render

Invokes the virtual render function of the GtkCellRenderer. The three passed-in rectangles are areas in cr. Most renderers will draw within cell_area; the xalign, yalign, xpad, and ypad fields of the GtkCellRenderer should be honored with respect to cell_area. background_area includes the blank space around the cell, and also the area containing the tree expander; so the background_area rectangles for all cells tile to cover the entire window.

gtk_cell_renderer_set_alignment

Sets the renderer’s alignment within its available space.

Available since: 2.18

gtk_cell_renderer_set_fixed_size

Sets the renderer size to be explicit, independent of the properties set.

gtk_cell_renderer_set_padding

Sets the renderer’s padding.

Available since: 2.18

gtk_cell_renderer_set_sensitive

Sets the cell renderer’s sensitivity.

Available since: 2.18

gtk_cell_renderer_set_visible

Sets the cell renderer’s visibility.

Available since: 2.18

gtk_cell_renderer_start_editing

Starts editing the contents of this cell, through a new GtkCellEditable widget created by the GtkCellRendererClass.start_editing virtual function.

gtk_cell_renderer_stop_editing

Informs the cell renderer that the editing is stopped. If canceled is TRUE, the cell renderer will emit the GtkCellRenderer::editing-canceled signal.

Available since: 2.6

Methods inherited from GObject (42)

Properties

Gtk.CellRenderer:cell-background
No description available.
Gtk.CellRenderer:cell-background-gdk

Cell background as a GdkColor.

Deprecated since: 3.4

Gtk.CellRenderer:cell-background-rgba

Cell background as a GdkRGBA.

Available since: 3.0

Gtk.CellRenderer:cell-background-set
No description available.
Gtk.CellRenderer:editing
No description available.
Gtk.CellRenderer:height
No description available.
Gtk.CellRenderer:is-expanded
No description available.
Gtk.CellRenderer:is-expander
No description available.
Gtk.CellRenderer:mode
No description available.
Gtk.CellRenderer:sensitive
No description available.
Gtk.CellRenderer:visible
No description available.
Gtk.CellRenderer:width
No description available.
Gtk.CellRenderer:xalign
No description available.
Gtk.CellRenderer:xpad
No description available.
Gtk.CellRenderer:yalign
No description available.
Gtk.CellRenderer:ypad
No description available.

Signals

Gtk.CellRenderer::editing-canceled

This signal gets emitted when the user cancels the process of editing a cell. For example, an editable cell renderer could be written to cancel editing when the user presses Escape.

Available since: 2.4

Gtk.CellRenderer::editing-started

This signal gets emitted when a cell starts to be edited. The intended use of this signal is to do special setup on editable, e.g. adding a GtkEntryCompletion or setting up additional columns in a GtkComboBox.

Available since: 2.6

Signals inherited from GObject (1)

Class structure

struct GtkCellRendererClass {
  GtkSizeRequestMode (* get_request_mode) (
    GtkCellRenderer* cell
  );
  void (* get_preferred_width) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint* minimum_size,
    gint* natural_size
  );
  void (* get_preferred_height_for_width) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint width,
    gint* minimum_height,
    gint* natural_height
  );
  void (* get_preferred_height) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint* minimum_size,
    gint* natural_size
  );
  void (* get_preferred_width_for_height) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint height,
    gint* minimum_width,
    gint* natural_width
  );
  void (* get_aligned_area) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    GtkCellRendererState flags,
    const GdkRectangle* cell_area,
    GdkRectangle* aligned_area
  );
  void (* get_size) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    const GdkRectangle* cell_area,
    gint* x_offset,
    gint* y_offset,
    gint* width,
    gint* height
  );
  void (* render) (
    GtkCellRenderer* cell,
    cairo_t* cr,
    GtkWidget* widget,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  );
  gboolean (* activate) (
    GtkCellRenderer* cell,
    GdkEvent* event,
    GtkWidget* widget,
    const gchar* path,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  );
  GtkCellEditable* (* start_editing) (
    GtkCellRenderer* cell,
    GdkEvent* event,
    GtkWidget* widget,
    const gchar* path,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  );
  void (* editing_canceled) (
    GtkCellRenderer* cell
  );
  void (* editing_started) (
    GtkCellRenderer* cell,
    GtkCellEditable* editable,
    const gchar* path
  );
  void (* _gtk_reserved2) (
void
  );
  void (* _gtk_reserved3) (
void
  );
  void (* _gtk_reserved4) (
void
  );
  
}
Class members
get_request_mode
GtkSizeRequestMode (* get_request_mode) (
    GtkCellRenderer* cell
  )
  No description available.
get_preferred_width
void (* get_preferred_width) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint* minimum_size,
    gint* natural_size
  )
  No description available.
get_preferred_height_for_width
void (* get_preferred_height_for_width) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint width,
    gint* minimum_height,
    gint* natural_height
  )
  No description available.
get_preferred_height
void (* get_preferred_height) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint* minimum_size,
    gint* natural_size
  )
  No description available.
get_preferred_width_for_height
void (* get_preferred_width_for_height) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    gint height,
    gint* minimum_width,
    gint* natural_width
  )
  No description available.
get_aligned_area
void (* get_aligned_area) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    GtkCellRendererState flags,
    const GdkRectangle* cell_area,
    GdkRectangle* aligned_area
  )
  No description available.
get_size
void (* get_size) (
    GtkCellRenderer* cell,
    GtkWidget* widget,
    const GdkRectangle* cell_area,
    gint* x_offset,
    gint* y_offset,
    gint* width,
    gint* height
  )
  No description available.
render
void (* render) (
    GtkCellRenderer* cell,
    cairo_t* cr,
    GtkWidget* widget,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  )
  No description available.
activate
gboolean (* activate) (
    GtkCellRenderer* cell,
    GdkEvent* event,
    GtkWidget* widget,
    const gchar* path,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  )
  No description available.
start_editing
GtkCellEditable* (* start_editing) (
    GtkCellRenderer* cell,
    GdkEvent* event,
    GtkWidget* widget,
    const gchar* path,
    const GdkRectangle* background_area,
    const GdkRectangle* cell_area,
    GtkCellRendererState flags
  )
  No description available.
editing_canceled
void (* editing_canceled) (
    GtkCellRenderer* cell
  )
  No description available.
editing_started
void (* editing_started) (
    GtkCellRenderer* cell,
    GtkCellEditable* editable,
    const gchar* path
  )
  No description available.
_gtk_reserved2
void (* _gtk_reserved2) (
void
  )
  No description available.
_gtk_reserved3
void (* _gtk_reserved3) (
void
  )
  No description available.
_gtk_reserved4
void (* _gtk_reserved4) (
void
  )
  No description available.

Virtual methods

Gtk.CellRendererClass.activate

Passes an activate event to the cell renderer for possible processing. Some cell renderers may use events; for example, GtkCellRendererToggle toggles when it gets a mouse click.

Gtk.CellRendererClass.editing_canceled
No description available.
Gtk.CellRendererClass.editing_started
No description available.
Gtk.CellRendererClass.get_aligned_area

Gets the aligned area used by cell inside cell_area. Used for finding the appropriate edit and focus rectangle.

Available since: 3.0

Gtk.CellRendererClass.get_preferred_height

Retreives a renderer’s natural size when rendered to widget.

Available since: 3.0

Gtk.CellRendererClass.get_preferred_height_for_width

Retreives a cell renderers’s minimum and natural height if it were rendered to widget with the specified width.

Available since: 3.0

Gtk.CellRendererClass.get_preferred_width

Retreives a renderer’s natural size when rendered to widget.

Available since: 3.0

Gtk.CellRendererClass.get_preferred_width_for_height

Retreives a cell renderers’s minimum and natural width if it were rendered to widget with the specified height.

Available since: 3.0

Gtk.CellRendererClass.get_request_mode

Gets whether the cell renderer prefers a height-for-width layout or a width-for-height layout.

Available since: 3.0

Gtk.CellRendererClass.get_size

Obtains the width and height needed to render the cell. Used by view widgets to determine the appropriate size for the cell_area passed to gtk_cell_renderer_render(). If cell_area is not NULL, fills in the x and y offsets (if set) of the cell relative to this location.

Deprecated since: 3.0

Gtk.CellRendererClass.render

Invokes the virtual render function of the GtkCellRenderer. The three passed-in rectangles are areas in cr. Most renderers will draw within cell_area; the xalign, yalign, xpad, and ypad fields of the GtkCellRenderer should be honored with respect to cell_area. background_area includes the blank space around the cell, and also the area containing the tree expander; so the background_area rectangles for all cells tile to cover the entire window.

Gtk.CellRendererClass.start_editing

Starts editing the contents of this cell, through a new GtkCellEditable widget created by the GtkCellRendererClass.start_editing virtual function.

Class methods

gtk_cell_renderer_class_set_accessible_type

Sets the type to be used for creating accessibles for cells rendered by cell renderers of renderer_class. Note that multiple accessibles will be created.