#include <stddef.h>
#include "output/table-provider.h"
-struct table_item;
+struct pivot_table;
enum render_line_style
{
- RENDER_LINE_NONE, /* No line. */
- RENDER_LINE_SINGLE, /* Single line. */
- RENDER_LINE_DOUBLE, /* Double line. */
+ RENDER_LINE_NONE,
+ RENDER_LINE_SINGLE,
+ RENDER_LINE_DASHED,
+ RENDER_LINE_THICK,
+ RENDER_LINE_THIN,
+ RENDER_LINE_DOUBLE,
RENDER_N_LINES
};
-/* Parameters for rendering a table_item to a device.
+/* Parameters for rendering a pivot table to a device.
Coordinate system
STYLES[TABLE_VERT][0]: style of line from left of BB to its center.
STYLES[TABLE_VERT][1]: style of line from right of BB to its center. */
void (*draw_line) (void *aux, int bb[TABLE_N_AXES][2],
- enum render_line_style styles[TABLE_N_AXES][2]);
+ enum render_line_style styles[TABLE_N_AXES][2],
+ struct cell_color colors[TABLE_N_AXES][2]);
/* Draws CELL within bounding box BB. CLIP is the same as BB (the common
case) or a subregion enclosed by BB. In the latter case only the part
of the cell that lies within CLIP should actually be drawn, although BB
should used to determine the layout of the cell. */
- void (*draw_cell) (void *aux, const struct table_cell *cell,
- int bb[TABLE_N_AXES][2], int clip[TABLE_N_AXES][2]);
+ void (*draw_cell) (void *aux, const struct table_cell *cell, int color_idx,
+ int bb[TABLE_N_AXES][2],
+ int spill[TABLE_N_AXES][2],
+ int clip[TABLE_N_AXES][2]);
/* Auxiliary data passed to each of the above functions. */
void *aux;
points.) */
int min_break[TABLE_N_AXES];
+ /* True if the driver supports cell margins. (If false, the rendering
+ engine will insert a small space betweeen adjacent cells that don't have
+ an intervening rule.) */
bool supports_margins;
+
+ /* True if the local language has a right-to-left direction, otherwise
+ false. (Use render_direction_rtl() to find out.) */
+ bool rtl;
};
/* An iterator for breaking render_pages into smaller chunks. */
struct render_pager *render_pager_create (const struct render_params *,
- const struct table_item *);
+ const struct pivot_table *);
void render_pager_destroy (struct render_pager *);
bool render_pager_has_next (const struct render_pager *);