Corrected bug in chart rendering which caused the ordinate label to never get displayed
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 1 Apr 2012 07:15:26 +0000 (09:15 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sun, 1 Apr 2012 07:15:26 +0000 (09:15 +0200)
src/output/cairo-chart.c
src/output/cairo-chart.h

index 2f654390abb230da37420ea63266189a9162fce4..6625452122a9590c35b9f6cc06f7ac43d365a0c5 100644 (file)
@@ -46,13 +46,14 @@ void
 xrchart_geometry_init (cairo_t *cr, struct xrchart_geometry *geom,
                        double width, double length)
 {
-  /* Set default chartetry. */
+  /* Set default chart geometry. */
   geom->axis[SCALE_ORDINATE].data_max = 0.900 * length;
-  geom->axis[SCALE_ABSCISSA].data_max = 0.800 * width;
   geom->axis[SCALE_ORDINATE].data_min = 0.120 * length;
+
   geom->axis[SCALE_ABSCISSA].data_min = 0.150 * width;
-  geom->abscissa_top = 0.070 * length;
-  geom->ordinate_right = 0.120 * width;
+  geom->axis[SCALE_ABSCISSA].data_max = 0.800 * width;
+  geom->abscissa_bottom = 0.070 * length;
+  geom->ordinate_left = 0.050 * width;
   geom->title_bottom = 0.920 * length;
   geom->legend_left = 0.810 * width;
   geom->legend_right = width;
@@ -355,7 +356,7 @@ void
 xrchart_write_xlabel (cairo_t *cr, const struct xrchart_geometry *geom,
                     const char *label)
 {
-  cairo_move_to (cr, geom->axis[SCALE_ABSCISSA].data_min, geom->abscissa_top);
+  cairo_move_to (cr, geom->axis[SCALE_ABSCISSA].data_min, geom->abscissa_bottom);
   xrchart_label (cr, 'l', 't', geom->font_size, label);
 }
 
@@ -365,9 +366,9 @@ xrchart_write_ylabel (cairo_t *cr, const struct xrchart_geometry *geom,
                     const char *label)
 {
   cairo_save (cr);
-  cairo_translate (cr, -geom->axis[SCALE_ORDINATE].data_min, -geom->ordinate_right);
-  cairo_move_to (cr, 0, 0);
+  cairo_translate (cr, geom->ordinate_left,   geom->axis[SCALE_ORDINATE].data_min);
   cairo_rotate (cr, M_PI / 2.0);
+
   xrchart_label (cr, 'l', 'x', geom->font_size, label);
   cairo_restore (cr);
 }
index 090bc9cede577666f7e39caa0298d22a1602ee0e..f415d1b9152d24a0ec8ca9ead02824e138c05aa8 100644 (file)
@@ -44,8 +44,11 @@ struct xrchart_axis
 /* The geometry of a chart. */
 struct xrchart_geometry
   {
-    int abscissa_top;
-    int ordinate_right;
+    /* Bottom of the abscissa segment */
+    int abscissa_bottom;
+
+    /* Left of the ordinate segment */
+    int ordinate_left;
 
     int title_bottom;