X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcairo.c;h=abef72289cd6219f6d4b300ee2eef969da3ad72a;hb=577a41e54a202186cf541b2de62e4abc169cab3b;hp=89013c2a0c65f5c5b58f1ea53001f4ff0305e431;hpb=a50c92abb67c3086a56c754cfb14a8873eaee6eb;p=pspp diff --git a/src/output/cairo.c b/src/output/cairo.c index 89013c2a0c..abef72289c 100644 --- a/src/output/cairo.c +++ b/src/output/cairo.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + Copyright (C) 2009, 2010, 2011, 2012, 2013 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 @@ -66,8 +66,7 @@ #define V TABLE_VERT /* Measurements as we present to the rest of PSPP. */ -#define XR_POINT PANGO_SCALE -#define XR_INCH (XR_POINT * 72) +#define XR_POINT 1000 /* Conversions to and from points. */ static double @@ -268,7 +267,7 @@ apply_options (struct xr_driver *xr, struct string_map *o) xr->fonts[XR_FONT_EMPHASIS].desc = parse_font (d, o, "emph-font", "serif italic", font_points); - xr->line_gutter = XR_POINT; + xr->line_gutter = parse_dimension (opt (d, o, "gutter", "3pt")); xr->line_space = XR_POINT; xr->line_width = XR_POINT / 2; xr->page_number = 0; @@ -524,6 +523,8 @@ xr_submit (struct output_driver *driver, const struct output_item *output_item) { struct xr_driver *xr = xr_driver_cast (driver); + output_driver_track_current_command (output_item, &xr->command_name); + xr_driver_output_item (xr, output_item); while (xr_driver_need_new_page (xr)) { @@ -1014,8 +1015,8 @@ xr_rendering_measure (struct xr_rendering *r, int *w, int *h) { int w0 = render_page_get_size (r->page, H); int w1 = r->title_width; - *w = MAX (w0, w1) / 1024; - *h = (render_page_get_size (r->page, V) + r->title_height) / 1024; + *w = MAX (w0, w1) / XR_POINT; + *h = (render_page_get_size (r->page, V) + r->title_height) / XR_POINT; } else { @@ -1027,11 +1028,9 @@ xr_rendering_measure (struct xr_rendering *r, int *w, int *h) static void xr_draw_chart (const struct chart_item *, cairo_t *, double x, double y, double width, double height); -/* Draws onto CR at least the region of R that is enclosed in (X,Y)-(X+W,Y+H), - and possibly some additional parts. */ +/* Draws onto CR */ void -xr_rendering_draw (struct xr_rendering *r, cairo_t *cr, - int x, int y, int w, int h) +xr_rendering_draw_all (struct xr_rendering *r, cairo_t *cr) { if (is_table_item (r->item)) { @@ -1047,8 +1046,7 @@ xr_rendering_draw (struct xr_rendering *r, cairo_t *cr, } xr->y = r->title_height; - render_page_draw_region (r->page, x * 1024, (y * 1024) - r->title_height, - w * 1024, h * 1024); + render_page_draw (r->page); } else xr_draw_chart (to_chart_item (r->item), cr,