[evince] [libdocument] Use cairo instead of gdk_draw_rectangle()



commit cd9ceb034f67f4590d18ed61e41e74cb45de8cdf
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Thu Jul 15 21:11:50 2010 +0200

    [libdocument] Use cairo instead of gdk_draw_rectangle()

 libdocument/ev-document-misc.c |   60 ++++++++++++++++++++--------------------
 libdocument/ev-document-misc.h |    2 +-
 libview/ev-view.c              |    2 +-
 3 files changed, 32 insertions(+), 32 deletions(-)
---
diff --git a/libdocument/ev-document-misc.c b/libdocument/ev-document-misc.c
index de40405..c0f75ea 100644
--- a/libdocument/ev-document-misc.c
+++ b/libdocument/ev-document-misc.c
@@ -133,7 +133,7 @@ ev_document_misc_get_page_border_size (gint       page_width,
 
 
 void
-ev_document_misc_paint_one_page (GdkDrawable  *drawable,
+ev_document_misc_paint_one_page (cairo_t      *cr,
 				 GtkWidget    *widget,
 				 GdkRectangle *area,
 				 GtkBorder    *border,
@@ -143,35 +143,35 @@ ev_document_misc_paint_one_page (GdkDrawable  *drawable,
 	GtkStyle    *style = gtk_widget_get_style (widget);
 	GtkStateType state = gtk_widget_get_state (widget);
 
-	gdk_draw_rectangle (drawable,
-			    highlight ? style->text_gc[state] : style->dark_gc[state],
-			    TRUE,
-			    area->x,
-			    area->y,
-			    area->width,
-			    area->height);
-	gdk_draw_rectangle (drawable,
-			    inverted_colors ? style->black_gc : style->white_gc,
-			    TRUE,
-			    area->x + border->left,
-			    area->y + border->top,
-			    area->width - (border->left + border->right),
-			    area->height - (border->top + border->bottom));
-	gdk_draw_rectangle (drawable,
-			    style->mid_gc[state],
-			    TRUE,
-			    area->x,
-			    area->y + area->height - (border->bottom - border->top),
-			    border->bottom - border->top,
-			    border->bottom - border->top);
-	gdk_draw_rectangle (drawable,
-			    style->mid_gc[state],
-			    TRUE,
-			    area->x + area->width - (border->right - border->left),
-			    area->y,
-			    border->right - border->left,
-			    border->right - border->left);
+	gdk_cairo_set_source_color (cr, highlight ? &style->text[state] : &style->dark[state]);
+	gdk_cairo_rectangle (cr, area);
+	cairo_fill (cr);
 
+	if (inverted_colors)
+		cairo_set_source_rgb (cr, 0, 0, 0);
+	else
+		cairo_set_source_rgb (cr, 1, 1, 1);
+	cairo_rectangle (cr,
+			 area->x + border->left,
+			 area->y + border->top,
+			 area->width - (border->left + border->right),
+			 area->height - (border->top + border->bottom));
+	cairo_fill (cr);
+
+	gdk_cairo_set_source_color (cr, &style->mid[state]);
+	cairo_rectangle (cr,
+			 area->x,
+			 area->y + area->height - (border->bottom - border->top),
+			 border->bottom - border->top,
+			 border->bottom - border->top);
+	cairo_fill (cr);
+
+	cairo_rectangle (cr,
+			 area->x + area->width - (border->right - border->left),
+			 area->y,
+			 border->right - border->left,
+			 border->right - border->left);
+	cairo_fill (cr);
 }
 
 cairo_surface_t *
diff --git a/libdocument/ev-document-misc.h b/libdocument/ev-document-misc.h
index 7fbf716..dfce2e2 100644
--- a/libdocument/ev-document-misc.h
+++ b/libdocument/ev-document-misc.h
@@ -42,7 +42,7 @@ GdkPixbuf *ev_document_misc_get_loading_thumbnail (int      width,
 void       ev_document_misc_get_page_border_size (gint          page_width,
 						  gint          page_height,
 						  GtkBorder    *border);
-void       ev_document_misc_paint_one_page       (GdkDrawable  *drawable,
+void       ev_document_misc_paint_one_page       (cairo_t      *cr,
 						  GtkWidget    *widget,
 						  GdkRectangle *area,
 						  GtkBorder    *border,
diff --git a/libview/ev-view.c b/libview/ev-view.c
index d5f2a71..eee1b56 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -4214,7 +4214,7 @@ draw_one_page (EvView       *view,
 	bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view));
 	current_page = ev_document_model_get_page (view->model);
 	inverted_colors = ev_document_model_get_inverted_colors (view->model);
-	ev_document_misc_paint_one_page (bin_window,
+	ev_document_misc_paint_one_page (cr,
 					 GTK_WIDGET (view),
 					 page_area, border,
 					 page == current_page,



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