output-item: Collapse the inheritance hierarchy into a single struct.
[pspp] / src / output / charts / scree-cairo.c
index d48a3642a805c3190feffad8fbcaf84c8c31b71c..726e250856e219ebd56d50f9d4083ceaa6ed8be6 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2011 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include <config.h>
 
-#include <output/charts/scree.h>
+#include "output/charts/scree.h"
 
 #include <math.h>
 
-#include <output/cairo-chart.h>
+#include "output/cairo-chart.h"
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
 void
-xrchart_draw_scree (const struct chart_item *chart_item, cairo_t *cr,
+xrchart_draw_scree (const struct chart *chart, cairo_t *cr,
                     struct xrchart_geometry *geom)
 {
-  const struct scree *rc = to_scree (chart_item);
+  const struct scree *rc = to_scree (chart);
   size_t i;
   double min, max;
 
@@ -39,13 +39,15 @@ xrchart_draw_scree (const struct chart_item *chart_item, cairo_t *cr,
 
   gsl_vector_minmax (rc->eval, &min, &max);
 
-  if ( fabs (max) > fabs (min))
+  if (fabs (max) > fabs (min))
     max = fabs (max);
   else
     max = fabs (min);
 
-  xrchart_write_yscale (cr, geom, 0, max, max);
-  xrchart_write_xscale (cr, geom, 0, rc->eval->size + 1, rc->eval->size + 1);
+  if (! xrchart_write_yscale (cr, geom, 0, max))
+    return;
+  if (! xrchart_write_xscale (cr, geom, 0, rc->eval->size + 1))
+    return;
 
   xrchart_vector_start (cr, geom, "");
   for (i = 0 ; i < rc->eval->size; ++i)