X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcairo.c;h=b02e8974f8ac23f4c3aca63a3224b2350e4b5832;hb=3b54533821614d17afc61f1cd3b87d3a06fbf4da;hp=078464c26f3813e4bb9fc3cf51896bcf7b9cf325;hpb=ccd1837ed5df23149584f88f6cc907cda0faaea9;p=pspp diff --git a/src/output/cairo.c b/src/output/cairo.c index 078464c26f..b02e8974f8 100644 --- a/src/output/cairo.c +++ b/src/output/cairo.c @@ -109,7 +109,6 @@ enum xr_output_type enum xr_font_type { XR_FONT_PROPORTIONAL, - XR_FONT_EMPHASIS, XR_FONT_FIXED, XR_N_FONTS }; @@ -288,8 +287,6 @@ apply_options (struct xr_driver *xr, struct string_map *o) (d, o, "fixed-font", "monospace", font_size, false, false); xr->fonts[XR_FONT_PROPORTIONAL].desc = parse_font_option ( d, o, "prop-font", "sans serif", font_size, false, false); - xr->fonts[XR_FONT_EMPHASIS].desc = parse_font_option ( - d, o, "emph-font", "sans serif", font_size, false, true); xr->fg = parse_color (opt (d, o, "foreground-color", "#000000000000")); xr->bg = parse_color (opt (d, o, "background-color", "#FFFFFFFFFFFF")); @@ -506,29 +503,33 @@ xr_set_cairo (struct xr_driver *xr, cairo_t *cairo) if (xr->params == NULL) { + static const struct render_ops xr_render_ops = { + .draw_line = xr_draw_line, + .measure_cell_width = xr_measure_cell_width, + .measure_cell_height = xr_measure_cell_height, + .adjust_break = xr_adjust_break, + .draw_cell = xr_draw_cell, + }; + xr->params = xmalloc (sizeof *xr->params); - xr->params->draw_line = xr_draw_line; - xr->params->measure_cell_width = xr_measure_cell_width; - xr->params->measure_cell_height = xr_measure_cell_height; - xr->params->adjust_break = xr_adjust_break; - xr->params->draw_cell = xr_draw_cell; + xr->params->ops = &xr_render_ops; xr->params->aux = xr; xr->params->size[H] = xr->width; xr->params->size[V] = xr->length; xr->params->font_size[H] = xr->char_width; xr->params->font_size[V] = xr->char_height; - int lw = XR_LINE_WIDTH; - int ls = XR_LINE_SPACE; - for (int i = 0; i < TABLE_N_AXES; i++) + enum { LW = XR_LINE_WIDTH, LS = XR_LINE_SPACE }; + static const int xr_line_widths[RENDER_N_LINES] = { - xr->params->line_widths[i][RENDER_LINE_NONE] = 0; - xr->params->line_widths[i][RENDER_LINE_SINGLE] = lw; - xr->params->line_widths[i][RENDER_LINE_DASHED] = lw; - xr->params->line_widths[i][RENDER_LINE_THICK] = lw * 2; - xr->params->line_widths[i][RENDER_LINE_THIN] = lw / 2; - xr->params->line_widths[i][RENDER_LINE_DOUBLE] = 2 * lw + ls; - } + [RENDER_LINE_NONE] = 0, + [RENDER_LINE_SINGLE] = LW, + [RENDER_LINE_DASHED] = LW, + [RENDER_LINE_THICK] = LW * 2, + [RENDER_LINE_THIN] = LW / 2, + [RENDER_LINE_DOUBLE] = 2 * LW + LS, + }; + xr->params->line_widths = xr_line_widths; for (int i = 0; i < TABLE_N_AXES; i++) xr->params->min_break[i] = xr->min_break[i];