X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Ftable.h;h=51cb1f42429ec72c02d1527be31e7816ace0e7aa;hb=db9a44802bb9fde4d4acd1b11572493b82193ab0;hp=ed8e70123bb74b0894c32c1b6569b98c2d5d884f;hpb=f6fd6e894861f4f86d1076dc9d9ea59c58b4a14f;p=pspp diff --git a/src/output/table.h b/src/output/table.h index ed8e70123b..51cb1f4242 100644 --- a/src/output/table.h +++ b/src/output/table.h @@ -19,7 +19,7 @@ /* Tables. -. A table is a rectangular grid of cells. Cells can be joined to form larger + A table is a rectangular grid of cells. Cells can be joined to form larger cells. Rows and columns can be separated by rules of various types. Rows at the top and bottom of a table and columns at the left and right edges of a table can be designated as headers, which means that if the table must be @@ -37,6 +37,8 @@ struct casereader; struct fmt_spec; +struct pivot_footnote; +struct pivot_value; struct pool; struct table_item; struct variable; @@ -144,7 +146,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__ } @@ -156,6 +158,7 @@ void font_style_copy (struct pool *, struct font_style *, const struct font_style *); void font_style_uninit (struct font_style *); void font_style_dump (const struct font_style *); +bool font_style_equal (const struct font_style *, const struct font_style *); struct table_area_style { @@ -179,9 +182,6 @@ void table_area_style_free (struct table_area_style *); enum { TAB_NONE = 0, - TAB_FIX = 1 << 1, /* Use fixed font. */ - TAB_MARKUP = 1 << 2, /* Text contains Pango markup. */ - TAB_NUMERIC = 1 << 3, /* Cell contents are numeric. */ TAB_ROTATE = 1 << 4, /* Rotate cell contents 90 degrees. */ TAB_STYLE_SHIFT = 5, @@ -222,7 +222,7 @@ struct table /* Table contents. - Each array element in cc[] is ordinarily a "char *" pointer to a string. + Each array element in cc[] is ordinarily a "struct pivot_value *". If TAB_JOIN (defined in table.c) is set in ct[] for the element, however, it is a joined cell and the corresponding element of cc[] points to a struct table_cell. */ @@ -241,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 @@ -280,32 +257,10 @@ void table_box (struct table *, int f_h, int f_v, int i_h, int i_v, int x1, int y1, int x2, int y2); /* Cells. */ -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); -void table_add_superscript (struct table *, int x, int y, - const char *superscript); - -/* 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 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 table_area_style *); +void table_put (struct table *, int x1, int y1, int x2, int y2, + unsigned opt, const struct pivot_value *); +void table_put_owned (struct table *, int x1, int y1, int x2, int y2, + unsigned opt, struct pivot_value *); bool table_cell_is_empty (const struct table *, int c, int r);