3e817571ddb4d678c143ea800e010d78f4f1073e
[pspp] / src / output / spv / spv-table-look.h
1 /* PSPP - a program for statistical analysis.
2    Copyright (C) 2018, 2020 Free Software Foundation, Inc.
3
4    This program is free software: you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation, either version 3 of the License, or
7    (at your option) any later version.
8
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
16
17 #ifndef OUTPUT_SPV_TABLE_LOOK_H
18 #define OUTPUT_SPV_TABLE_LOOK_H 1
19
20 /* TableLook decoder.
21
22    A TableLook specifies styles for tables and other aspects of output.  They
23    exist standalone as .stt files as well as embedded in structure XML, in
24    either case as a tableProperties element.
25 */
26
27 #include <stdbool.h>
28 #include "libpspp/compiler.h"
29 #include "output/pivot-table.h"
30 #include "output/table.h"
31
32 struct spvsx_table_properties;
33
34 struct spv_table_look
35   {
36     /* General properties. */
37     bool omit_empty;
38     int width_ranges[TABLE_N_AXES][2];      /* In 1/96" units. */
39     bool row_labels_in_corner;
40
41     /* Footnote display settings. */
42     bool show_numeric_markers;
43     bool footnote_marker_superscripts;
44
45     /* Styles. */
46     struct area_style areas[PIVOT_N_AREAS];
47     struct table_border_style borders[PIVOT_N_BORDERS];
48
49     /* Print settings. */
50     bool print_all_layers;
51     bool paginate_layers;
52     bool shrink_to_width;
53     bool shrink_to_length;
54     bool top_continuation, bottom_continuation;
55     char *continuation;
56     size_t n_orphan_lines;
57   };
58
59 void spv_table_look_destroy (struct spv_table_look *);
60
61 char *spv_table_look_decode (const struct spvsx_table_properties *,
62                              struct spv_table_look **)
63   WARN_UNUSED_RESULT;
64 char *spv_table_look_read (const char *, struct spv_table_look **)
65   WARN_UNUSED_RESULT;
66
67 void spv_table_look_install (const struct spv_table_look *,
68                              struct pivot_table *);
69
70 #endif /* output/spv/spv-table-look.h */