/* PSPP - a program for statistical analysis.
- Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2010, 2011, 2012 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
Currently, the input string must be of the form "#RRRRGGGGBBBB"
Future implementations might allow things like "yellow" and
"sky-blue-ultra-brown"
- */
+*/
static void
parse_color (struct output_driver *d, struct string_map *options,
const char *key, const char *default_value,
return desc;
}
-static struct xr_driver *
-xr_allocate (const char *name, int device_type, struct string_map *o)
+
+static void
+apply_options (struct xr_driver *xr, struct string_map *o)
{
- int paper_width, paper_length;
- struct output_driver *d;
- struct xr_driver *xr;
- int font_points;
+ struct output_driver *d = &xr->driver;
- xr = xzalloc (sizeof *xr);
- d = &xr->driver;
- output_driver_init (d, &cairo_driver_class, name, device_type);
+ int paper_width, paper_length;
- font_points = parse_int (opt (d, o, "font-size", "10000"),
- 1000, 1000000);
+ int font_points = parse_int (opt (d, o, "font-size", "10000"), 1000, 1000000);
xr->fonts[XR_FONT_FIXED].desc = parse_font (d, o, "fixed-font", "monospace",
font_points);
xr->fonts[XR_FONT_PROPORTIONAL].desc = parse_font (d, o, "prop-font",
xr->width = paper_width - xr->left_margin - xr->right_margin;
xr->length = paper_length - xr->top_margin - xr->bottom_margin;
+}
+
+static struct xr_driver *
+xr_allocate (const char *name, int device_type, struct string_map *o)
+{
+ struct xr_driver *xr = xzalloc (sizeof *xr);
+ struct output_driver *d = &xr->driver;
+
+ output_driver_init (d, &cairo_driver_class, name, device_type);
+
+ apply_options (xr, o);
return xr;
}
#define CHART_WIDTH 500
#define CHART_HEIGHT 375
+
+
struct xr_driver *
xr_driver_create (cairo_t *cairo, struct string_map *options)
{
return r;
}
+void
+xr_rendering_apply_options (struct xr_rendering *xr, struct string_map *o)
+{
+ if (is_table_item (xr->item))
+ apply_options (xr->xr, o);
+}
+
struct xr_rendering *
xr_rendering_create (struct xr_driver *xr, const struct output_item *item,
cairo_t *cr)