[gnumeric] Print pattern backgrounds. [#615365]



commit b0d263534b56e19eac218ea6f97b4b2e7d0c1091
Author: Jean Brefort <jean brefort normalesup org>
Date:   Wed Apr 14 18:45:29 2010 +0200

    Print pattern backgrounds. [#615365]

 ChangeLog     |    5 +++++
 NEWS          |    3 +++
 src/pattern.c |   27 +++++++++------------------
 3 files changed, 17 insertions(+), 18 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index e2e7e62..0b4c0b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-14  Jean Brefort  <jean brefort normalesup org>
+
+	* src/pattern.c (gnumeric_background_set_gtk): print pattern backgrounds.
+	[#615365]
+
 2010-04-09  Jean Brefort  <jean brefort normalesup org>
 
 	* component/Gnumeric-embed.xml.in: fixed templates menu action id.
diff --git a/NEWS b/NEWS
index b5f44f5..cdd8413 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,9 @@ Andreas:
 	* Adjust regression tool to reflect the changes to TDIST.
 	* Basic import and export of text boxes from ODF files.
 
+Jean:
+	* Print pattern backgrounds. [#615365]
+
 Morten:
 	* Improve object sizing tooltip positioning a bit.
 	* Fix filter critical.  [#611073]
diff --git a/src/pattern.c b/src/pattern.c
index 75ebbad..12ceb4e 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -127,31 +127,22 @@ gnumeric_background_set_gtk (GnmStyle const *mstyle, cairo_t *context)
 		 * 'foreground solid', so we need to paint it the pattern
 		 * color.
 		 */
-		if (pattern == 24) {
+		 else if (pattern == 24) {
 			GnmColor const *pat_col = gnm_style_get_pattern_color (mstyle);
 			g_return_val_if_fail (pat_col != NULL, FALSE);
 
 			cairo_set_source_rgba (context,
 					       GO_COLOR_TO_CAIRO (pat_col->go_color));
-		}
-#if 0
-		/* FIXME: How to do the other patterns? */
-		if (pattern > 1) {
-			GnmColor const *pat_col = gnm_style_get_pattern_color (mstyle);
-			g_return_val_if_fail (pat_col != NULL, FALSE);
-
-			gdk_gc_set_fill (gc, GDK_OPAQUE_STIPPLED);
-			gdk_gc_set_rgb_fg_color (gc, &pat_col->color);
-			gdk_gc_set_rgb_bg_color (gc, back);
-			gdk_gc_set_stipple (gc,
-					    gnumeric_pattern_get_stipple (XXX,
-									  pattern));
-			foo_canvas_set_stipple_origin (canvas, gc);
 		} else {
-			gdk_gc_set_fill (gc, GDK_SOLID);
-			gdk_gc_set_rgb_fg_color (gc, back);
+			GOPattern gopat;
+			cairo_pattern_t *crpat;
+			gopat.pattern = patterns[pattern - 1];
+			gopat.fore = gnm_style_get_pattern_color (mstyle)->go_color;
+			gopat.back = gnm_style_get_back_color (mstyle)->go_color;
+			crpat = go_pattern_create_cairo_pattern (&gopat, context);
+			cairo_set_source (context, crpat);
+			cairo_pattern_destroy (crpat);
 		}
-#endif
 		return TRUE;
 	}
 



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