src/output/table.h: Rename class -> klass
[pspp] / src / output / cairo.c
index 89013c2a0c65f5c5b58f1ea53001f4ff0305e431..4bb601be22f4c66495e9e67a88af6b4e8fdc8ff4 100644 (file)
@@ -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
     {
@@ -1047,8 +1048,9 @@ 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_region (r->page, 
+                              x * XR_POINT, (y * XR_POINT) - r->title_height,
+                               w * XR_POINT, h * XR_POINT);
     }
   else
     xr_draw_chart (to_chart_item (r->item), cr,