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_apply_options (struct xr_rendering *, struct string_map *o);
void xr_rendering_measure (struct xr_rendering *, int *w, int *h);
-void xr_rendering_draw (struct xr_rendering *, cairo_t *);
+void xr_rendering_draw (struct xr_rendering *, cairo_t *,
+ int x, int y, int w, int h);
/* Functions for rendering a series of output items to a series of Cairo
contexts, with pagination, possibly including headers.
bool xr_driver_need_new_page (const struct xr_driver *);
bool xr_driver_is_page_blank (const struct xr_driver *);
+struct xr_color
+{
+ double red;
+ double green;
+ double blue;
+};
+
+struct output_driver;
+struct string_map;
+
+void parse_color (struct output_driver *d, struct string_map *options,
+ const char *key, const char *default_value,
+ struct xr_color *color);
+
+
/* 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 xr_color *fg,
+ const struct xr_color *bg);
+
#endif /* HAVE_CAIRO */