psppire-output-view: Consistently apply "transparent" and "systemcolors".
[pspp] / src / output / cairo.h
index 77889d11aa9158b055d79db98bf285f8e847b91f..7afd1fe660d59c674708533917e9ce5aa13b538e 100644 (file)
@@ -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 <cairo/cairo.h>
 
+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 */