X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcairo.h;h=7afd1fe660d59c674708533917e9ce5aa13b538e;hb=3b54533821614d17afc61f1cd3b87d3a06fbf4da;hp=77889d11aa9158b055d79db98bf285f8e847b91f;hpb=e4ef4d0f708651807d91bd92d7ab92c1b5c6d675;p=pspp diff --git a/src/output/cairo.h b/src/output/cairo.h index 77889d11aa..7afd1fe660 100644 --- a/src/output/cairo.h +++ b/src/output/cairo.h @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2009, 2010, 2014 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,7 +23,9 @@ #include +struct cell_color; struct chart_item; +struct output_driver; struct output_item; struct string_map; @@ -31,14 +33,18 @@ struct string_map; struct xr_driver *xr_driver_create (cairo_t *, struct string_map *options); void xr_driver_destroy (struct xr_driver *); + /* Functions for rendering a single output item to a Cairo context. Output items are never broken across multiple pages. Used by PSPPIRE to render in the GUI. */ struct xr_rendering *xr_rendering_create (struct xr_driver *, const struct output_item *, cairo_t *); -void xr_rendering_measure (struct xr_rendering *, int *w, int *h); -void xr_rendering_draw (struct xr_rendering *, cairo_t *); +void xr_rendering_destroy (struct xr_rendering *); + +void xr_rendering_measure (const struct xr_rendering *, int *w, int *h); +void xr_rendering_draw (struct xr_rendering *r, cairo_t *cr, + int x0, int y0, int x1, int y1); /* Functions for rendering a series of output items to a series of Cairo contexts, with pagination, possibly including headers. @@ -79,10 +85,20 @@ bool xr_driver_need_new_page (const struct xr_driver *); bool xr_driver_is_page_blank (const struct xr_driver *); /* Render charts with Cairo. */ -void xr_draw_chart (const struct chart_item *, cairo_t *, - double x, double y, double width, double height); char *xr_draw_png_chart (const struct chart_item *, - const char *file_name_template, int number); + 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); + + +/* Render to a svg file */ +bool xr_draw_svg_file (struct xr_rendering *r, + const char *filename); #endif /* HAVE_CAIRO */