X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fpivot-table.h;h=56ca865a2d3e4eac589b36b56e5ab1bdb2117d57;hb=726e15b3d4f61ac4f5a7308c4c096d96d41473c8;hp=99fbdb295df000b4cfb50b05dcd084eb2478efd8;hpb=9b9bfe9d73a06218343f4c08aa7e9dd65d5a7da3;p=pspp diff --git a/src/output/pivot-table.h b/src/output/pivot-table.h index 99fbdb295d..56ca865a2d 100644 --- a/src/output/pivot-table.h +++ b/src/output/pivot-table.h @@ -60,15 +60,11 @@ union value; Creating a pivot table usually consists of the following steps: 1. Create the table with pivot_table_create(), passing in the title. - It's commonly useful to set up a few options at this point: - - If empty rows or columns should not be displayed, set ->omit_empty to - true. + 2. Optionally, set the format to use for "count" values with + pivot_table_set_weight_var() or pivot_table_set_weight_format(). - - Set the format to use for "count" values with - pivot_table_set_weight_var() or pivot_table_set_weight_format(). - - 2. Create each dimension with pivot_dimension_create() and populate it with + 3. Create each dimension with pivot_dimension_create() and populate it with categories and, possibly, with groups that contain the categories. This call also assigns the dimension to an axis. @@ -81,14 +77,14 @@ union value; first cell for that variable. In that case, creating categories and inserting data can be interleaved. - 3. Insert data. For each cell, supply the category indexes, which are + 4. Insert data. For each cell, supply the category indexes, which are assigned starting from 0 in the order in which the categories were created in step 2, and the value to go in the cell. If the table has a small, fixed number of dimensions, functions like, e.g. pivot_table_put3() for 3 dimensions, can be used. The general function pivot_table_put() works for other cases. - 4. Output the table for user consumption. Use pivot_table_submit(). */ + 5. Output the table for user consumption. Use pivot_table_submit(). */ /* Pivot table display styling. */ @@ -107,7 +103,6 @@ enum pivot_area }; const char *pivot_area_to_string (enum pivot_area); -const struct table_area_style *pivot_area_get_default_style (enum pivot_area); /* Table borders for styling purposes. */ enum pivot_border @@ -146,8 +141,6 @@ 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 @@ -376,6 +369,11 @@ bool pivot_result_class_change (const char *, const struct fmt_spec *); because that's how SPSS documentation and file formats do it. */ struct pivot_table_look { + /* Reference count. A pivot_table_look 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; + char *name; /* May be null. */ /* General properties. */ @@ -400,10 +398,18 @@ struct pivot_table_look size_t n_orphan_lines; }; -void pivot_table_look_init (struct pivot_table_look *); -void pivot_table_look_uninit (struct pivot_table_look *); -void pivot_table_look_copy (struct pivot_table_look *, - const struct pivot_table_look *); +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 *); /* A pivot table. See the top of this file for more information. */ struct pivot_table @@ -414,14 +420,15 @@ struct pivot_table int ref_cnt; /* Styling. */ - struct pivot_table_look look; + 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; /* axis[PIVOT_AXIS_LAYER].n_dimensions elements. */ + 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; @@ -457,7 +464,7 @@ struct pivot_table struct pivot_value *subtype; /* Same as spv_item's subtype. */ struct pivot_value *corner_text; struct pivot_value *caption; - char *notes; + char *notes; /* Shown as tooltip. */ /* Dimensions. */ struct pivot_dimension **dimensions; @@ -628,8 +635,6 @@ struct pivot_value char **subscripts; size_t n_subscripts; - char *superscript; - const struct pivot_footnote **footnotes; size_t n_footnotes;