output: Add support for colors in cells.
[pspp] / src / output / tab.h
index 00d8fab93cacc2cee3fe97db959cb092796c6d05..43f0278964fb90e3d6767850e700c31e2f2565ec 100644 (file)
@@ -51,6 +51,9 @@ enum result_class
     n_RC
   };
 
+#define TAB_STYLE_MASK (7u << (TAB_FIRST_AVAILABLE + 3))
+#define TAB_STYLE_SHIFT (TAB_FIRST_AVAILABLE + 3)
+
 /* A table. */
 struct tab_table
   {
@@ -68,12 +71,15 @@ struct tab_table
        however, it is a joined cell and the corresponding element of cc[]
        points to a struct tab_joined_cell. */
     void **cc;                  /* Cell contents; void *[nr][nc]. */
-    unsigned char *ct;         /* Cell types; unsigned char[nr][nc]. */
+    unsigned short *ct;                /* Cell types; unsigned short[nr][nc]. */
 
     /* Rules. */
     unsigned char *rh;         /* Horiz rules; unsigned char[nr+1][nc]. */
     unsigned char *rv;         /* Vert rules; unsigned char[nr][nc+1]. */
 
+    /* Cell styles. */
+    struct cell_style *styles[8];
+
     /* X and Y offsets. */
     int col_ofs, row_ofs;
 
@@ -125,11 +131,11 @@ void tab_set_format (struct tab_table *, enum result_class, const struct fmt_spe
 struct fmt_spec;
 struct dictionary;
 union value;
-void tab_value (struct tab_table *, int c, int r, unsigned char opt,
+void tab_value (struct tab_table *, int c, int r, unsigned short opt,
                const union value *, const struct variable *,
                const struct fmt_spec *);
 
-void tab_double (struct tab_table *, int c, int r, unsigned char opt,
+void tab_double (struct tab_table *, int c, int r, unsigned short opt,
                 double v, const struct fmt_spec *, enum result_class );
 
 void tab_text (struct tab_table *, int c, int r, unsigned opt, const char *);