summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrenderertext.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-08-21 13:18:14 +0200
committerBenjamin Otte <otte@redhat.com>2010-09-26 15:03:01 +0200
commite31e77eeb848974a375ca01a56551d01c757fcea (patch)
tree67e364ddb6c6e0db18992c3a3363e31386983e48 /gtk/gtkcellrenderertext.c
parent4138e86ad458fe157d47e1244addbd6939f3f7be (diff)
downloadgtk+-e31e77eeb848974a375ca01a56551d01c757fcea.tar.gz
API: Change cellrenderer->render vfunc to take a cairo_t
Also constify the rectangle arguments. They were const anyway.
Diffstat (limited to 'gtk/gtkcellrenderertext.c')
-rw-r--r--gtk/gtkcellrenderertext.c49
1 files changed, 18 insertions, 31 deletions
diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c
index 4207e13bf4..f56ffde3e2 100644
--- a/gtk/gtkcellrenderertext.c
+++ b/gtk/gtkcellrenderertext.c
@@ -44,11 +44,10 @@ static void gtk_cell_renderer_text_set_property (GObject *obje
const GValue *value,
GParamSpec *pspec);
static void gtk_cell_renderer_text_render (GtkCellRenderer *cell,
- GdkWindow *window,
+ cairo_t *cr,
GtkWidget *widget,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags);
static GtkCellEditable *gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell,
@@ -1434,7 +1433,7 @@ add_attr (PangoAttrList *attr_list,
static PangoLayout*
get_layout (GtkCellRendererText *celltext,
GtkWidget *widget,
- GdkRectangle *cell_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags)
{
GtkCellRendererTextPrivate *priv = celltext->priv;
@@ -1694,11 +1693,10 @@ get_size (GtkCellRenderer *cell,
static void
gtk_cell_renderer_text_render (GtkCellRenderer *cell,
- GdkDrawable *window,
+ cairo_t *cr,
GtkWidget *widget,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
+ const GdkRectangle *background_area,
+ const GdkRectangle *cell_area,
GtkCellRendererState flags)
{
@@ -1711,7 +1709,7 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
gint xpad, ypad;
layout = get_layout (celltext, widget, cell_area, flags);
- get_size (cell, widget, cell_area, layout, &x_offset, &y_offset, NULL, NULL);
+ get_size (cell, widget, (GdkRectangle *) cell_area, layout, &x_offset, &y_offset, NULL, NULL);
if (!gtk_cell_renderer_get_sensitive (cell))
{
@@ -1740,22 +1738,12 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
if (priv->background_set &&
(flags & GTK_CELL_RENDERER_SELECTED) == 0)
{
- cairo_t *cr = gdk_cairo_create (window);
-
- if (expose_area)
- {
- gdk_cairo_rectangle (cr, expose_area);
- cairo_clip (cr);
- }
-
gdk_cairo_rectangle (cr, background_area);
cairo_set_source_rgb (cr,
priv->background.red / 65535.,
priv->background.green / 65535.,
priv->background.blue / 65535.);
cairo_fill (cr);
-
- cairo_destroy (cr);
}
gtk_cell_renderer_get_padding (cell, &xpad, &ypad);
@@ -1766,16 +1754,15 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
else if (priv->wrap_width == -1)
pango_layout_set_width (layout, -1);
- gtk_paint_layout (gtk_widget_get_style (widget),
- window,
- state,
- TRUE,
- expose_area,
- widget,
- "cellrenderertext",
- cell_area->x + x_offset + xpad,
- cell_area->y + y_offset + ypad,
- layout);
+ gtk_cairo_paint_layout (gtk_widget_get_style (widget),
+ cr,
+ state,
+ TRUE,
+ widget,
+ "cellrenderertext",
+ cell_area->x + x_offset + xpad,
+ cell_area->y + y_offset + ypad,
+ layout);
g_object_unref (layout);
}
@@ -2145,7 +2132,7 @@ gtk_cell_renderer_text_get_height_for_width (GtkCellSizeRequest *cell,
gtk_cell_renderer_get_padding (GTK_CELL_RENDERER (cell), &xpad, &ypad);
- layout = get_layout (celltext, widget, FALSE, 0);
+ layout = get_layout (celltext, widget, NULL, 0);
pango_layout_set_width (layout, (width - xpad * 2) * PANGO_SCALE);
pango_layout_get_pixel_size (layout, NULL, &text_height);