[gnumeric] GdkGC: eliminate from cell rendering.



commit 3c447dc04ef3e151a92c26821143d5be64f23b6b
Author: Morten Welinder <terra gnome org>
Date:   Wed Jul 28 21:56:14 2010 -0400

    GdkGC: eliminate from cell rendering.

 src/widgets/ChangeLog                           |   21 +++++---
 src/widgets/gnumeric-cell-renderer-expr-entry.c |    1 -
 src/widgets/gnumeric-cell-renderer-text.c       |   58 +++++++++++------------
 3 files changed, 40 insertions(+), 40 deletions(-)
---
diff --git a/src/widgets/ChangeLog b/src/widgets/ChangeLog
index 9c0e277..3a2d770 100644
--- a/src/widgets/ChangeLog
+++ b/src/widgets/ChangeLog
@@ -1,16 +1,21 @@
+2010-07-28  Morten Welinder  <terra gnome org>
+
+	* gnumeric-cell-renderer-text.c (gnumeric_cell_renderer_text_render):
+	Draw with cairo.
+
 2010-07-28  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* gnumeric-expr-entry.c (gee_dump_lexer): fix format warning
 	(gee_check_tooltip): ditto
-	
+
 2010-07-27  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* gnumeric-expr-entry.c (gee_scan_for_range): show all ranges or none.
-	
+
 2010-07-22  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* gnumeric-expr-entry.c (gee_set_tooltip): don't remove the completion
-	(gee_set_tooltip_completion): return whether the tool tip was shown, 
+	(gee_set_tooltip_completion): return whether the tool tip was shown,
 	  check the preference setting.
 	(gee_check_tooltip): check the preference setting and watch the return
 	  value of gee_set_tooltip_completion
@@ -36,24 +41,24 @@
 2010-07-21  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* gnumeric-expr-entry.c (gee_create_tooltip): add argument
-	(gee_set_tooltip_completion): create the tooltip in 2 parts, function 
+	(gee_set_tooltip_completion): create the tooltip in 2 parts, function
 	  names with description and instructions
 	(gee_check_tooltip): the list now contains function descriptors
 
 2010-07-20  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* gnumeric-expr-entry.c (_GnmExprEntry) add field
-	(gee_delete_tooltip): set the completion invalid even if the text is 
+	(gee_delete_tooltip): set the completion invalid even if the text is
 	  NULL
 	(gee_set_tooltip_completion): set the completion range even if we don't
 	  know the text
 	(gee_check_tooltip): ditto
-	(cb_gee_key_press_event): pass range information to 
+	(cb_gee_key_press_event): pass range information to
 	  dialog_function_select_paste and return a value.
 
 2010-07-20  Andreas J. Guelzow <aguelzow pyrshep ca>
 
-	* gnumeric-expr-entry.c (cb_gee_key_press_event) call 
+	* gnumeric-expr-entry.c (cb_gee_key_press_event) call
 	  dialog_function_select_paste on Sift-F4
 
 2010-07-19  Andreas J. Guelzow <aguelzow pyrshep ca>
@@ -77,7 +82,7 @@
 
 	* gnumeric-expr-entry.c (gee_check_tooltip): fix the check for unclosed
 	  strings.
-	
+
 2010-07-18  Morten Welinder  <terra gnome org>
 
 	* gnumeric-expr-entry.c (cb_icon_clicked): Fix signedness problem.
diff --git a/src/widgets/gnumeric-cell-renderer-expr-entry.c b/src/widgets/gnumeric-cell-renderer-expr-entry.c
index 5923077..5cc90d5 100644
--- a/src/widgets/gnumeric-cell-renderer-expr-entry.c
+++ b/src/widgets/gnumeric-cell-renderer-expr-entry.c
@@ -75,7 +75,6 @@ gnumeric_cell_renderer_expr_entry_class_init (GnumericCellRendererExprEntryClass
 	parent_class = g_type_class_peek_parent (object_class);
 
 	cell_class->start_editing = gnumeric_cell_renderer_expr_entry_start_editing;
-
 }
 
 
diff --git a/src/widgets/gnumeric-cell-renderer-text.c b/src/widgets/gnumeric-cell-renderer-text.c
index b0075e6..19a40cb 100644
--- a/src/widgets/gnumeric-cell-renderer-text.c
+++ b/src/widgets/gnumeric-cell-renderer-text.c
@@ -62,59 +62,55 @@ gnumeric_cell_renderer_text_render (GtkCellRenderer     *cell,
 
 {
 	GtkCellRendererText *celltext = (GtkCellRendererText *) cell;
-	GtkStateType state;
-	GdkGC *gc = gdk_gc_new (window);
+	GtkStateType state, frame_state;
+	cairo_t *cr = gdk_cairo_create (window);
 
 	if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)	{
+		frame_state = GTK_STATE_ACTIVE;
 		if (GTK_WIDGET_HAS_FOCUS (widget))
 			state = GTK_STATE_SELECTED;
 		else
 			state = GTK_STATE_ACTIVE;
 	} else {
+		frame_state = GTK_STATE_INSENSITIVE;
 		if (gtk_widget_get_state (widget) == GTK_STATE_INSENSITIVE)
 			state = GTK_STATE_INSENSITIVE;
 		else
 			state = GTK_STATE_NORMAL;
 	}
 
-	if (celltext->background_set)
-	{
-		GdkColor color;
+	if (celltext->background_set) {
+		cairo_set_source_rgb (cr,
+				      celltext->background.red / 65535.,
+				      celltext->background.green / 65535.,
+				      celltext->background.blue / 65535.);
 
-		color.red = celltext->background.red;
-		color.green = celltext->background.green;
-		color.blue = celltext->background.blue;
+		if (expose_area) {
+			gdk_cairo_rectangle (cr, background_area);
+			cairo_clip (cr);
+		}
 
-		gdk_gc_set_rgb_fg_color (gc, &color);
+		cairo_rectangle (cr,
+				 background_area->x,
+				 background_area->y + cell->ypad,
+				 background_area->width,
+				 background_area->height - 2 * cell->ypad);
+		cairo_fill (cr);
 
 		if (expose_area)
-			gdk_gc_set_clip_rectangle (gc, expose_area);
-		gdk_draw_rectangle (window,
-				    gc,
-				    TRUE,
-				    background_area->x,
-				    background_area->y + cell->ypad,
-				    background_area->width,
-				    background_area->height - 2 * cell->ypad);
-		if (expose_area)
-			gdk_gc_set_clip_rectangle (gc, NULL);
+			cairo_reset_clip (cr);
 	}
 
-	gdk_gc_set_rgb_fg_color (gc, &widget->style->bg[
-		     ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED) ?
-					 GTK_STATE_ACTIVE : GTK_STATE_INSENSITIVE]);
-
 	if (celltext->editable) {
-		gdk_draw_rectangle (window, gc, FALSE,
-				    background_area->x,
-				    background_area->y,
-				    background_area->width - 1,
-				    background_area->height - 1);
-
+		GtkStyle *style = gtk_widget_get_style (widget);
+		gdk_cairo_set_source_color (cr, &style->bg[frame_state]);
+		gdk_cairo_rectangle (cr, background_area);
+		cairo_clip (cr);
+		gdk_cairo_rectangle (cr, background_area);
+		cairo_stroke (cr);
 	}
 
-	g_object_unref (G_OBJECT (gc));
-
+	cairo_destroy (cr);
 
 	if (celltext->foreground_set) {
 		GTK_CELL_RENDERER_CLASS (parent_class)->render



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]