X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcairo-chart.h;h=bbcc606d31ddb6216c58d3dfef61fc6662bb14e5;hb=db9a44802bb9fde4d4acd1b11572493b82193ab0;hp=5e8123ed1a6617408522043c9f0789aefc2818b8;hpb=084a3ed2450295a9f1ebfd30b9a93f1e3dac7bf1;p=pspp diff --git a/src/output/cairo-chart.h b/src/output/cairo-chart.h index 5e8123ed1a..bbcc606d31 100644 --- a/src/output/cairo-chart.h +++ b/src/output/cairo-chart.h @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009, 2011 Free Software Foundation, Inc. + Copyright (C) 2009, 2011, 2015 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 @@ -23,6 +23,7 @@ #include "libpspp/compiler.h" struct chart_item; +struct cell_color; struct xrchart_colour { @@ -44,8 +45,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; @@ -71,7 +75,7 @@ void xrchart_geometry_init (cairo_t *, struct xrchart_geometry *, double width, double length); void xrchart_geometry_free (cairo_t *, struct xrchart_geometry *); -#define XRCHART_N_COLOURS 9 +#define XRCHART_N_COLOURS 27 extern const struct xrchart_colour data_colour[]; enum tick_orientation @@ -93,13 +97,19 @@ void xrchart_draw_marker (cairo_t *, double x, double y, enum xrmarker_type, void xrchart_label (cairo_t *, int horz_justify, int vert_justify, double font_size, const char *); +void xrchart_label_rotate (cairo_t *cr, int horz_justify, int vert_justify, + double font_size, const char *string, double angle); + + /* Draw a tick mark at position If label is non zero, then print it at the tick mark */ void draw_tick (cairo_t *, const struct xrchart_geometry *, - enum tick_orientation orientation, double position, + enum tick_orientation orientation, + bool rotated, + double position, const char *label, ...) - PRINTF_FORMAT (5, 6); + PRINTF_FORMAT (6, 7); /* Write the title on a chart*/ @@ -108,13 +118,12 @@ void xrchart_write_title (cairo_t *, const struct xrchart_geometry *, PRINTF_FORMAT (3, 4); /* Set the scale for the abscissa */ -void xrchart_write_xscale (cairo_t *, struct xrchart_geometry *, - double min, double max, int ticks); - +bool xrchart_write_xscale (cairo_t *, struct xrchart_geometry *, + double min, double max) WARN_UNUSED_RESULT; /* Set the scale for the ordinate */ -void xrchart_write_yscale (cairo_t *, struct xrchart_geometry *, - double smin, double smax, int ticks); +bool xrchart_write_yscale (cairo_t *, struct xrchart_geometry *, + double smin, double smax) WARN_UNUSED_RESULT; void xrchart_write_xlabel (cairo_t *, const struct xrchart_geometry *, const char *label) ; @@ -156,11 +165,30 @@ void xrchart_draw_roc (const struct chart_item *, cairo_t *, struct xrchart_geometry *); void xrchart_draw_piechart (const struct chart_item *, cairo_t *, struct xrchart_geometry *); +void xrchart_draw_barchart (const struct chart_item *, cairo_t *, + struct xrchart_geometry *); void xrchart_draw_histogram (const struct chart_item *, cairo_t *, struct xrchart_geometry *); void xrchart_draw_np_plot (const struct chart_item *, cairo_t *, struct xrchart_geometry *); void xrchart_draw_scree (const struct chart_item *, cairo_t *, struct xrchart_geometry *); +void xrchart_draw_spreadlevel (const struct chart_item *, cairo_t *, + struct xrchart_geometry *); +void xrchart_draw_scatterplot (const struct chart_item *, cairo_t *, + struct xrchart_geometry *); + +void xr_draw_chart (const struct chart_item *, cairo_t *, + double width, double height); + +char *xr_draw_png_chart (const struct chart_item *, + const char *file_name_template, int number, + const struct cell_color *fg, + const struct cell_color *bg); + +char *xr_draw_eps_chart (const struct chart_item *item, + const char *file_name_template, int number, + const struct cell_color *fg, + const struct cell_color *bg); #endif /* output/cairo-chart.h */