output-item: Collapse the inheritance hierarchy into a single struct.
[pspp] / src / output / charts / barchart-cairo.c
index e6f33ad118b3087ebfdd91b7ae23304e1d24e76c..4663471e566e9c81b22ac0fb9d3bc3435d4e5a39 100644 (file)
@@ -56,21 +56,20 @@ abscissa_label (const struct barchart *bc, cairo_t *cr,
 
 
 void
-xrchart_draw_barchart (const struct chart_item *chart_item, cairo_t *cr,
+xrchart_draw_barchart (const struct chart *chart, cairo_t *cr,
                        struct xrchart_geometry *geom)
 {
-  struct barchart *bc = to_barchart (chart_item);
+  struct barchart *bc = to_barchart (chart);
   int i;
 
   xrchart_write_title (cr, geom, _("Bar Chart"));
 
   xrchart_write_ylabel (cr, geom, bc->ylabel);
-  xrchart_write_xlabel (cr, geom, chart_item_get_title (chart_item));
+  xrchart_write_xlabel (cr, geom, chart_get_title (chart));
 
-  if (bc->percent)
-    xrchart_write_yscale (cr, geom, 0, bc->largest * 100.0 / bc->total_count);
-  else
-    xrchart_write_yscale (cr, geom, 0, bc->largest);
+  if (! xrchart_write_yscale (cr, geom, 0,
+                              bc->percent ? bc->largest * 100.0 / bc->total_count : bc->largest))
+    return;
 
   const double abscale = geom->axis[SCALE_ABSCISSA].data_max - geom->axis[SCALE_ABSCISSA].data_min;
   const double width = abscale / (double) (bc->n_nzcats + bc->n_pcats);