X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Ftable.h;h=07c88874c86a47eb925089c6b9606f3859f161f4;hb=22203a0e0daa6b6ab247b572b191d25bb48f61a3;hp=f63667bd0fe674ccc913c2e88b06bdefdab1bcb6;hpb=22b78dc19f553f67e1d891bfd0dd3c8b163ab7fc;p=pspp diff --git a/src/output/table.h b/src/output/table.h index f63667bd0f..07c88874c8 100644 --- a/src/output/table.h +++ b/src/output/table.h @@ -144,7 +144,7 @@ struct font_style bool bold, italic, underline, markup; struct cell_color fg[2], bg[2]; char *typeface; - int size; + int size; /* In 1/72" units. */ }; #define FONT_STYLE_INITIALIZER { FONT_STYLE_INITIALIZER__ } @@ -157,22 +157,23 @@ void font_style_copy (struct pool *, void font_style_uninit (struct font_style *); void font_style_dump (const struct font_style *); -struct area_style +struct table_area_style { struct cell_style cell_style; struct font_style font_style; }; -#define AREA_STYLE_INITIALIZER { AREA_STYLE_INITIALIZER__ } -#define AREA_STYLE_INITIALIZER__ \ +#define TABLE_AREA_STYLE_INITIALIZER { TABLE_AREA_STYLE_INITIALIZER__ } +#define TABLE_AREA_STYLE_INITIALIZER__ \ .cell_style = CELL_STYLE_INITIALIZER, \ .font_style = FONT_STYLE_INITIALIZER -struct area_style *area_style_clone (struct pool *, const struct area_style *); -void area_style_copy (struct pool *, - struct area_style *, const struct area_style *); -void area_style_uninit (struct area_style *); -void area_style_free (struct area_style *); +struct table_area_style *table_area_style_clone ( + struct pool *, const struct table_area_style *); +void table_area_style_copy (struct pool *, struct table_area_style *, + const struct table_area_style *); +void table_area_style_uninit (struct table_area_style *); +void table_area_style_free (struct table_area_style *); /* Properties of a table cell. */ enum @@ -227,7 +228,7 @@ struct table points to a struct table_cell. */ void **cc; /* Cell contents; void *[nr][nc]. */ unsigned short *ct; /* Cell types; unsigned short[nr][nc]. */ - struct area_style *styles[8]; + struct table_area_style *styles[8]; /* Rules. */ unsigned char *rh; /* Horiz rules; unsigned char[nr+1][nc]. */ @@ -240,29 +241,6 @@ struct table *table_ref (const struct table *); void table_unref (struct table *); bool table_is_shared (const struct table *); -/* Returns the number of columns or rows, respectively, in T. */ -static inline int table_nc (const struct table *t) - { return t->n[TABLE_HORZ]; } -static inline int table_nr (const struct table *t) - { return t->n[TABLE_VERT]; } - -/* Returns the number of left, right, top, or bottom headers, respectively, in - T. */ -static inline int table_hl (const struct table *t) - { return t->h[TABLE_HORZ][0]; } -static inline int table_hr (const struct table *t) - { return t->h[TABLE_HORZ][1]; } -static inline int table_ht (const struct table *t) - { return t->h[TABLE_VERT][0]; } -static inline int table_hb (const struct table *t) - { return t->h[TABLE_VERT][1]; } - -/* Simple kinds of output. */ -struct table *table_from_string (const char *); -void table_output_text (int options, const char *string); -void table_output_text_format (int options, const char *, ...) - PRINTF_FORMAT (2, 3); - /* Rule masks. */ #define TAB_RULE_TYPE_MASK 7 #define TAB_RULE_TYPE_SHIFT 0 @@ -283,19 +261,26 @@ void table_text (struct table *, int c, int r, unsigned opt, const char *); void table_text_format (struct table *, int c, int r, unsigned opt, const char *, ...) PRINTF_FORMAT (5, 6); - void table_joint_text (struct table *, int x1, int y1, int x2, int y2, unsigned opt, const char *); +void table_add_subscripts (struct table *, int x, int y, + char **subscripts, size_t n_subscripts); + +/* Footnotes. + + Use table_create_footnote() to create the footnotes themselves, then use + table_add_footnote() to create a reference from a table cell to a footnote. + There are two steps because a footnote may have multiple references. */ struct footnote *table_create_footnote (struct table *, size_t idx, const char *content, const char *marker, - struct area_style *); + struct table_area_style *); void table_add_footnote (struct table *, int x, int y, const struct footnote *); void table_add_style (struct table *, int x, int y, - const struct area_style *); + const struct table_area_style *); bool table_cell_is_empty (const struct table *, int c, int r);