X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Ftable.h;h=e138361343ba3846fe6de8ad1b63de59d3f85bc0;hb=44c2b035a7526fdf366271de915fc774df302f96;hp=6245d12bdb7687f671a04bcfb626be031956a1f7;hpb=1ba9ab71de8a6528beaf22de3ee6d2eb697eb61d;p=pspp-builds.git diff --git a/src/output/table.h b/src/output/table.h index 6245d12b..e1383613 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 @@ -65,31 +62,33 @@ struct tab_joined_cell int x1, y1; int x2, y2; int hit; - struct fixed_string contents; + struct substring contents; }; 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. */ - struct fixed_string title; /* Table title. */ + char *title; /* Table title. */ unsigned flags; /* SOMF_*. */ int nc, nr; /* Number of columns, rows. */ int cf; /* Column factor for indexing purposes. */ int l, r, t, b; /* Number of header rows on each side. */ - struct fixed_string *cc; /* Cell contents; fixed_string *[nr][nc]. */ + struct substring *cc; /* Cell contents; substring *[nr][nc]. */ unsigned char *ct; /* Cell types; unsigned char[nr][nc]. */ 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); @@ -155,11 +154,18 @@ enum /* Cells. */ struct fmt_spec; +struct dictionary; 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, + const union value *, const struct dictionary *dict, + const struct fmt_spec *); + +void tab_fixed (struct tab_table *, int c, int r, unsigned char opt, double v, int w, int d); + +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 *, ...) PRINTF_FORMAT (5, 6); @@ -170,7 +176,7 @@ void tab_joint_text (struct tab_table *, int x1, int y1, int x2, int y2, /* Cell low-level access. */ #define tab_alloc(TABLE, AMT) pool_alloc ((TABLE)->container, (AMT)) void tab_raw (struct tab_table *, int c, int r, unsigned opt, - struct fixed_string *); + struct substring *); /* Editing. */ void tab_offset (struct tab_table *, int col, int row);