X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Ftable.h;h=21d3b7bfd28f16cd9c295a7ff8fa7f5134cef864;hb=2cf38ce51a9f34961d68a75e0b312a591b5c9abf;hp=93f4d1e9a1c742b20d7a334bacfefeea2cdbcd92;hpb=b74d09af5e07f954c18e7cdb8aca3af47fa10208;p=pspp-builds.git diff --git a/src/output/table.h b/src/output/table.h index 93f4d1e9..21d3b7bf 100644 --- a/src/output/table.h +++ b/src/output/table.h @@ -1,21 +1,18 @@ -/* PSPP - computes sample statistics. - Copyright (C) 1997-9, 2000 Free Software Foundation, Inc. - Written by Ben Pfaff . +/* PSPP - a program for statistical analysis. + Copyright (C) 1997-9, 2000, 2009 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with this program. If not, see . */ #if !tab_h #define tab_h 1 @@ -70,13 +67,14 @@ struct tab_joined_cell struct outp_driver; struct tab_table; -typedef void tab_dim_func (struct tab_table *, struct outp_driver *); +typedef void tab_dim_func (struct tab_table *, struct outp_driver *, + void *aux); /* A table. */ struct tab_table { struct pool *container; - + /* Contents. */ int col_style; /* Columns: One of TAB_COL_*. */ int col_group; /* Number of rows per column group. */ @@ -90,6 +88,7 @@ struct tab_table unsigned char *rh; /* Horiz rules; unsigned char[nr+1][nc]. */ unsigned char *rv; /* Vert rules; unsigned char[nr][nc+1]. */ tab_dim_func *dim; /* Calculates cell widths and heights. */ + void *dim_aux; /* Auxiliary data for dim function. */ /* Calculated during output. */ int *w; /* Column widths; [nc]. */ @@ -136,7 +135,7 @@ void tab_submit (struct tab_table *); tab_dim_func tab_natural_dimensions; int tab_natural_width (struct tab_table *t, struct outp_driver *d, int c); int tab_natural_height (struct tab_table *t, struct outp_driver *d, int r); -void tab_dim (struct tab_table *, tab_dim_func *); +void tab_dim (struct tab_table *, tab_dim_func *, void *aux); /* Rules. */ void tab_hline (struct tab_table *, int style, int x1, int x2, int y); @@ -148,7 +147,6 @@ void tab_box (struct tab_table *, int f_h, int f_v, int i_h, int i_v, enum { TAT_NONE = 0, /* No options. */ - TAT_PRINTF = 0x0100, /* Format the text string with sprintf. */ TAT_TITLE = 0x0200 | TAB_EMPH, /* Title attributes. */ TAT_NOWRAP = 0x0800 /* No text wrap (tab_output_text() only). */ }; @@ -158,13 +156,22 @@ struct fmt_spec; union value; void tab_value (struct tab_table *, int c, int r, unsigned char opt, const union value *, const struct fmt_spec *); -void tab_float (struct tab_table *, int c, int r, unsigned char opt, + +void tab_fixed (struct tab_table *, int c, int r, unsigned char opt, double v, int w, int d); -void tab_text (struct tab_table *, int c, int r, unsigned opt, - const char *, ...) + +void tab_double (struct tab_table *, int c, int r, unsigned char opt, + double v, const struct fmt_spec *); + +void tab_text (struct tab_table *, int c, int r, unsigned opt, const char *); +void tab_text_format (struct tab_table *, int c, int r, unsigned opt, + const char *, ...) PRINTF_FORMAT (5, 6); + void tab_joint_text (struct tab_table *, int x1, int y1, int x2, int y2, - unsigned opt, const char *, ...) + unsigned opt, const char *); +void tab_joint_text_format (struct tab_table *, int x1, int y1, int x2, int y2, + unsigned opt, const char *, ...) PRINTF_FORMAT (7, 8); /* Cell low-level access. */ @@ -181,7 +188,8 @@ void tab_next_row (struct tab_table *); #define tab_col(TABLE) ((TABLE)->col_ofs) /* Simple output. */ -void tab_output_text (int options, const char *string, ...) +void tab_output_text (int options, const char *string); +void tab_output_text_format (int options, const char *, ...) PRINTF_FORMAT (2, 3); /* Embedding the command name in the output. */