+ };
+
+const struct pivot_table_look *pivot_table_look_get_default (void);
+void pivot_table_look_set_default (const struct pivot_table_look *);
+
+char *pivot_table_look_read (const char *, struct pivot_table_look **)
+ WARN_UNUSED_RESULT;
+
+const struct pivot_table_look *pivot_table_look_builtin_default (void);
+struct pivot_table_look *pivot_table_look_new_builtin_default (void);
+struct pivot_table_look *pivot_table_look_ref (
+ const struct pivot_table_look *);
+void pivot_table_look_unref (struct pivot_table_look *);
+struct pivot_table_look *pivot_table_look_unshare (struct pivot_table_look *);
+\f
+/* A pivot table. See the top of this file for more information. */
+struct pivot_table
+ {
+ /* Reference count. A pivot_table may be shared between multiple owners,
+ indicated by a reference count greater than 1. When this is the case,
+ the pivot_table must not be modified. */
+ int ref_cnt;
+
+ /* Styling. */
+ struct pivot_table_look *look;
+
+ /* Display settings. */
+ bool rotate_inner_column_labels;
+ bool rotate_outer_row_labels;
+ bool show_grid_lines;
+ bool show_title;
+ bool show_caption;
+ size_t *current_layer; /* axes[PIVOT_AXIS_LAYER].n_dimensions elements. */
+ enum settings_value_show show_values;
+ enum settings_value_show show_variables;
+ struct fmt_spec weight_format;
+
+ /* Column and row sizing and page breaks.
+ sizing[TABLE_HORZ] is for columns, sizing[TABLE_VERT] is for rows. */
+ struct pivot_table_sizing sizing[TABLE_N_AXES];