Yet more constness
[pspp-builds.git] / src / output / charts / plot-chart.c
index 6b91045273122af627eeba060f163d3a90cc1283..4fd67aaf0bb915a1555f00452417ad1882f98484 100644 (file)
@@ -28,7 +28,6 @@
 #include <assert.h>
 #include <math.h>
 
-#include <output/charts/plot-chart.h>
 #include <output/charts/plot-chart.h>
 
 #include <math/chart-geometry.h>
 
 #include <libpspp/str.h>
 #include <libpspp/alloc.h>
+#include <libpspp/assertion.h>
 #include <output/manager.h>
 #include <output/output.h>
 
 
-const char *data_colour[] = {
+const char *const data_colour[] = {
   "brown",
   "red",
   "orange",
@@ -77,7 +77,7 @@ draw_tick(struct chart *chart,
   else if (orientation == TICK_ORDINATE ) 
       pl_flinerel_r(chart->lp, 0, position, -tickSize, position);
   else
-    assert(0);
+    NOT_REACHED ();
 
   if ( label ) {
     char buf[10];
@@ -177,3 +177,38 @@ chart_write_yscale(struct chart *ch, double smin, double smax, int ticks)
               (y - ch->y_min) * ch->ordinate_scale, "%g", y);
     }
 }
+
+
+/* Write the abscissa label */
+void 
+chart_write_xlabel(struct chart *ch, const char *label)
+{
+  if ( ! ch ) 
+    return ;
+
+  pl_savestate_r(ch->lp);
+
+  pl_move_r(ch->lp,ch->data_left, ch->abscissa_top);
+  pl_alabel_r(ch->lp,0,'t',label);
+
+  pl_restorestate_r(ch->lp);
+
+}
+
+
+
+/* Write the ordinate label */
+void 
+chart_write_ylabel(struct chart *ch, const char *label)
+{
+  if ( ! ch ) 
+    return ;
+
+  pl_savestate_r(ch->lp);
+
+  pl_move_r(ch->lp, ch->data_bottom, ch->ordinate_right);
+  pl_textangle_r(ch->lp, 90);
+  pl_alabel_r(ch->lp, 0, 0, label);
+
+  pl_restorestate_r(ch->lp);
+}