output: Make table_item a pivot_table, table_cell a pivot_value.
[pspp] / src / output / cairo-pager.c
index e87ec325248f2cff94d2fbdd2c57d7d1febc6a07..311a3b546afb7a82b188e24d99d96a55b8a31929 100644 (file)
@@ -95,8 +95,7 @@ xr_page_style_equals (const struct xr_page_style *a,
     if (!page_heading_equals (&a->headings[i], &b->headings[i]))
       return false;
 
-  return (a->initial_page_number == b->initial_page_number
-          && a->object_spacing == b->object_spacing);
+  return a->initial_page_number == b->initial_page_number;
 }
 \f
 struct xr_pager
@@ -215,11 +214,11 @@ xr_measure_headings (const struct xr_page_style *ps,
   for (int i = 0; i < 2; i++)
     {
       int *h = &heading_heights[i];
-      *h = xr_render_page_heading (cairo, fs->fonts[XR_FONT_PROPORTIONAL],
+      *h = xr_render_page_heading (cairo, fs->font,
                                    &ps->headings[i], -1, fs->size[H], 0,
                                    fs->font_resolution);
       if (*h)
-        *h += ps->object_spacing;
+        *h += fs->object_spacing;
     }
   cairo_destroy (cairo);
   cairo_surface_destroy (surface);
@@ -310,16 +309,15 @@ xr_pager_add_page (struct xr_pager *p, cairo_t *cr)
                    xr_to_pt (ps->margins[H][0]),
                    xr_to_pt (ps->margins[V][0]));
 
-  const PangoFontDescription *font = fs->fonts[XR_FONT_PROPORTIONAL];
   int page_number = p->page_index++ + ps->initial_page_number;
   if (p->heading_heights[0])
-    xr_render_page_heading (cr, font, &ps->headings[0], page_number,
+    xr_render_page_heading (cr, fs->font, &ps->headings[0], page_number,
                             fs->size[H], -p->heading_heights[0],
                             fs->font_resolution);
 
   if (p->heading_heights[1])
-    xr_render_page_heading (cr, font, &ps->headings[1], page_number,
-                            fs->size[H], fs->size[V] + ps->object_spacing,
+    xr_render_page_heading (cr, fs->font, &ps->headings[1], page_number,
+                            fs->size[H], fs->size[V] + fs->object_spacing,
                             fs->font_resolution);
 
   cairo_surface_t *surface = cairo_get_target (cr);
@@ -396,7 +394,7 @@ xr_pager_run (struct xr_pager *p)
                 }
             }
 
-          p->fsm = xr_fsm_create (p->item, p->fsm_style, p->cr);
+          p->fsm = xr_fsm_create_for_printing (p->item, p->fsm_style, p->cr);
           if (!p->fsm)
             {
               output_item_unref (p->item);
@@ -418,7 +416,7 @@ xr_pager_run (struct xr_pager *p)
               free (attrs);
             }
 
-          int spacing = p->page_style->object_spacing;
+          int spacing = p->fsm_style->object_spacing;
           int chunk = xr_fsm_draw_slice (p->fsm, p->cr,
                                          p->fsm_style->size[V] - p->y);
           p->y += chunk + spacing;