};
const char *pivot_area_to_string (enum pivot_area);
+const struct area_style *pivot_area_get_default_style (enum pivot_area);
/* Table borders for styling purposes. */
enum pivot_border
};
const char *pivot_border_to_string (enum pivot_border);
+void pivot_border_get_default_style (enum pivot_border,
+ struct table_border_style *);
/* Sizing for rows or columns of a rendered table. The comments below talk
about columns and their widths but they apply equally to rows and their
breaks out of the loop prematurely, it needs to free it with free(). */
#define PIVOT_AXIS_FOR_EACH(INDEXES, AXIS) \
for ((INDEXES) = NULL; \
- ((INDEXES) = pivot_axis_iterator_next (INDEXES, AXIS)) != NULL; )
+ ((INDEXES) = pivot_axis_iterator_next (INDEXES, AXIS)) != NULL;)
size_t *pivot_axis_iterator_next (size_t *indexes, const struct pivot_axis *);
\f
/* Dimensions.
bool rotate_outer_row_labels;
bool row_labels_in_corner;
bool show_grid_lines;
+ bool show_caption;
bool omit_empty; /* Omit empty rows and columns? */
size_t *current_layer; /* axis[PIVOT_AXIS_LAYER].n_dimensions elements. */
char *table_look;
/* Titles. */
struct pivot_value *title;
- struct pivot_value *subtype; /* Same as pivot_item's subtype. */
+ struct pivot_value *subtype; /* Same as spv_item's subtype. */
struct pivot_value *corner_text;
struct pivot_value *caption;
char *notes;
/* Creating and destroy pivot tables. */
struct pivot_table *pivot_table_create (const char *title);
-struct pivot_table *pivot_table_create__ (struct pivot_value *title);
+struct pivot_table *pivot_table_create__ (struct pivot_value *title,
+ const char *subtype);
struct pivot_table *pivot_table_create_for_text (struct pivot_value *title,
struct pivot_value *content);
size_t idx;
struct pivot_value *content;
struct pivot_value *marker;
+ bool show;
};
struct pivot_footnote *pivot_table_create_footnote (
{
struct font_style *font_style;
struct cell_style *cell_style;
- char *subscript;
+
+ char **subscripts;
+ size_t n_subscripts;
+
char *superscript;
const struct pivot_footnote **footnotes;
/* PIVOT_VALUE_TEMPLATE. */
struct
{
- char *s;
+ char *local; /* Localized. */
+ char *id; /* Identifier. */
struct pivot_argument *args;
size_t n_args;
}
/* Styling. */
void pivot_value_get_style (struct pivot_value *,
- const struct area_style *default_style,
+ const struct font_style *base_font_style,
+ const struct cell_style *base_cell_style,
struct area_style *);
void pivot_value_set_style (struct pivot_value *, const struct area_style *);
};
void pivot_argument_uninit (struct pivot_argument *);
+\f
+/* One piece of data within a pivot table. */
+struct pivot_cell
+ {
+ struct hmap_node hmap_node; /* In struct pivot_table's 'cells' hmap. */
+ struct pivot_value *value;
+ unsigned int idx[]; /* One index per table dimension. */
+ };
#endif /* output/pivot-table.h */