[gnumeric] fixed line printing for objects



commit 5b243f4b893a2d987889f82ae4dc9c3c7655d98a
Author: Jean Brefort <jean brefort normalesup org>
Date:   Fri Sep 25 19:20:13 2009 +0200

    fixed line printing for objects

 ChangeLog           |    5 +++++
 src/gnm-so-filled.c |    8 +++++---
 src/gnm-so-line.c   |   15 ++++++++-------
 3 files changed, 18 insertions(+), 10 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index cc3ce1a..9f0697d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-09-25  Jean Brefort  <jean brefort normalesup org>
+
+	* src/gnm-so-filled.c (gnm_so_filled_draw_cairo): fixed line setting.
+	* src/gnm-so-line.c (gnm_so_line_draw_cairo): ditto.
+
 2009-09-25  Morten Welinder  <terra gnome org>
 
 	* src/gnm-so-line.c (gnm_so_line_draw_cairo,
diff --git a/src/gnm-so-filled.c b/src/gnm-so-filled.c
index fe35104..8fc84b6 100644
--- a/src/gnm-so-filled.c
+++ b/src/gnm-so-filled.c
@@ -273,9 +273,10 @@ gnm_so_filled_draw_cairo (SheetObject const *so, cairo_t *cr,
 		cairo_pattern_destroy (pat);
 	}
 	/* Draw the line */
-	cairo_set_line_width (cr, (style->line.width)? style->line.width: 1.);
-	cairo_set_source_rgba (cr, GO_COLOR_TO_CAIRO (style->line.color));
-	cairo_stroke (cr);
+	if (go_style_set_cairo_line (style, cr))
+		cairo_stroke (cr);
+	else
+		cairo_new_path (cr);
 	/* Draw the text. */
 	if (sof->text != NULL && *(sof->text) != '\0') {
 		PangoLayout *pl = pango_cairo_create_layout (cr);
@@ -303,6 +304,7 @@ gnm_so_filled_draw_cairo (SheetObject const *so, cairo_t *cr,
 			cairo_move_to (cr, sof->margin_pts.left,
 				       sof->margin_pts.top);
 		cairo_scale (cr, scale_h, scale_v);
+		cairo_set_source_rgba (cr, GO_COLOR_TO_CAIRO (style->font.color));
 		pango_cairo_show_layout (cr, pl);
 		cairo_new_path (cr);
 		cairo_restore (cr);
diff --git a/src/gnm-so-line.c b/src/gnm-so-line.c
index a2b95b1..05ababd 100644
--- a/src/gnm-so-line.c
+++ b/src/gnm-so-line.c
@@ -185,10 +185,10 @@ gnm_so_line_draw_cairo (SheetObject const *so, cairo_t *cr,
 			double width, double height)
 {
 	GnmSOLine *sol = GNM_SO_LINE (so);
-	GOStyleLine const *style = &sol->style->line;
+	GOStyle const *style = sol->style;
 	double x1, y1, x2, y2;
 
-	if (style->color == 0 || style->width < 0 || style->dash_type == GO_LINE_NONE)
+	if (style->line.color == 0 || style->line.width < 0 || style->line.dash_type == GO_LINE_NONE)
 		return;
 
 	switch (so->anchor.base.direction) {
@@ -223,8 +223,8 @@ gnm_so_line_draw_cairo (SheetObject const *so, cairo_t *cr,
 		return;
 	}
 
-	cairo_set_source_rgba (cr, GO_COLOR_TO_CAIRO (style->color));
-
+	cairo_set_source_rgba (cr, GO_COLOR_TO_CAIRO (style->line.color));
+	
 	if (sol->end_arrow.c > 0.) {
 		double phi;
 
@@ -249,11 +249,12 @@ gnm_so_line_draw_cairo (SheetObject const *so, cairo_t *cr,
 		y2 -= sol->end_arrow.a * cos (phi);
 	}
 
-	cairo_set_line_width (cr, (style->width)? style->width: 1.);
-	cairo_new_path (cr);
 	cairo_move_to (cr, x1, y1);
 	cairo_line_to (cr, x2, y2);
-	cairo_stroke (cr);
+	if (go_style_set_cairo_line (style, cr))
+		cairo_stroke (cr);
+	else
+		cairo_new_path (cr);
 }
 
 static void



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