Description
The
Gtk_Cell_Renderer is a base class of a set of objects used for
rendering a cell to a Gdk_Drawable. These objects are used primarily by the
Gtk_Tree_View widget, though they aren't tied to them in any specific way.
It is worth noting that
Gtk_Cell_Renderer is not a Gtk_Widget and cannot be
treated as such.
The primary use of a Gtk_Cell_Renderer is for drawing a certain graphical
elements on a Gdk_Drawable. Typically, one cell renderer is used to draw
many cells on the screen. To this extent, it isn't expected that
Cell_Renderer keep any permanent state around. Instead, any state is set
just prior to use using GObjects 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
Gtk_Cell_Renderer. First and formost, it's important that a certain set of
properties will always yield a cell renderer of the same size, barring
GtkStyle change. The Gtk_Cell_Renderer 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
Gtk_Cell_Renderer_Toggle, which toggles when it gets activated by a mouse
click, or it can be editable like Gtk_Cell_Renderer_Text, which allows the
user to edit the text using a Gtk_Entry. To make a cell renderer
activatable or editable, you have to implement the activate or
start_editing virtual functions, respectively.
Types
-
type Gtk_Cell_Renderer is access all Gtk_Cell_Renderer_Record'Class;
-
type Gtk_Cell_Renderer_Mode is
(Cell_Renderer_Mode_Inert,
Cell_Renderer_Mode_Activatable,
Cell_Renderer_Mode_Editable);
-
-
type Gtk_Cell_Renderer_State is mod 2 ** 32;
-
type Property_Cell_Renderer_Mode is
new Cell_Renderer_Mode_Properties.Property;
Subprograms
-
function Convert (R : Gtk_Cell_Renderer) return System.Address;
function Convert (R : System.Address) return Gtk_Cell_Renderer;
-
function Get_Type return GType;
-
procedure Get_Size
(Cell :
access Gtk_Cell_Renderer_Record;
Widget :
access Gtk.Widget.Gtk_Widget_Record'Class;
Cell_Area :
out Gdk.Rectangle.Gdk_Rectangle;
X_Offset :
out Gint;
Y_Offset :
out Gint;
Width :
out Gint;
Height :
out Gint);
-
procedure Render
(Cell :
access Gtk_Cell_Renderer_Record;
Window : Gdk.Window.Gdk_Window;
Widget :
access Gtk.Widget.Gtk_Widget_Record'Class;
Background_Area : Gdk.Rectangle.Gdk_Rectangle;
Cell_Area : Gdk.Rectangle.Gdk_Rectangle;
Expose_Area : Gdk.Rectangle.Gdk_Rectangle;
Flags : Gtk_Cell_Renderer_State);
-
function Activate
(Cell :
access Gtk_Cell_Renderer_Record;
Event :
Gdk.Event.Gdk_Event;
Widget :
access Gtk.Widget.Gtk_Widget_Record'Class;
Path : UTF8_String;
Background_Area : Gdk.Rectangle.Gdk_Rectangle;
Cell_Area : Gdk.Rectangle.Gdk_Rectangle;
Flags : Gtk_Cell_Renderer_State)
return Boolean;
-
-
procedure Set_Fixed_Size
(Cell : access Gtk_Cell_Renderer_Record;
Width : Gint;
Height : Gint);
procedure Get_Fixed_Size
(Cell : access Gtk_Cell_Renderer_Record;
Width : out Gint;
Height : out Gint);