X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Foutput.h;h=fc66874068da031cafef1743406131c486ee504d;hb=a34c42168e0cd3373860a6cc3f518cb0e329db47;hp=cf3101e28a3060dfa9bca2ca70c095920994cbde;hpb=8444d8d47de5e5f8d076b6f43f73c2c29494031e;p=pspp-builds.git diff --git a/src/output/output.h b/src/output/output.h index cf3101e2..fc668740 100644 --- a/src/output/output.h +++ b/src/output/output.h @@ -1,26 +1,21 @@ -/* 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, 2007 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 !output_h -#define output_h 1 - -#include +#ifndef OUTPUT_OUTPUT_H +#define OUTPUT_OUTPUT_H 1 #include @@ -42,7 +37,7 @@ enum outp_justification OUTP_CENTER, /* Center justification. */ }; -enum outp_font +enum outp_font { OUTP_FIXED, /* Fixed-width font. */ OUTP_PROPORTIONAL, /* Proportional font. */ @@ -55,7 +50,7 @@ struct outp_text { enum outp_font font; enum outp_justification justification; - struct fixed_string string; + struct substring string; int h, v; /* Horizontal, vertical size. */ int x, y; /* Position. */ }; @@ -70,15 +65,17 @@ struct outp_class const char *name; /* Name of this driver class. */ int special; /* Boolean value. */ - bool (*open_driver) (struct outp_driver *, const char *options); + bool (*open_driver) (struct outp_driver *, struct substring options); bool (*close_driver) (struct outp_driver *); void (*open_page) (struct outp_driver *); void (*close_page) (struct outp_driver *); + void (*flush) (struct outp_driver *); + /* special != 0 only. */ void (*submit) (struct outp_driver *, struct som_entity *); - + /* special == 0 only. */ void (*line) (struct outp_driver *, int x0, int y0, int x1, int y1, enum outp_line_style top, enum outp_line_style left, @@ -103,7 +100,7 @@ enum struct outp_driver { struct outp_driver *next, *prev; /* List of drivers. */ - struct outp_class *class; /* Driver class. */ + const struct outp_class *class; /* Driver class. */ char *name; /* Name of this driver. */ bool page_open; /* 1=page is open, 0=page is closed. */ int device; /* Zero or more of OUTP_DEV_*. */ @@ -128,8 +125,6 @@ struct outp_option int subcat; /* Subcategory. */ }; -/* List of configured output drivers. */ -extern struct outp_driver *outp_driver_list; /* Title, subtitle. */ extern char *outp_title; @@ -137,6 +132,7 @@ extern char *outp_subtitle; void outp_init (void); void outp_read_devices (void); +void outp_configure_driver_line (struct substring); void outp_done (void); void outp_configure_clear (void); @@ -145,25 +141,26 @@ void outp_configure_macro (char *); void outp_list_classes (void); -void outp_enable_device (int enable, int device); +void outp_enable_device (bool enable, int device); struct outp_driver *outp_drivers (struct outp_driver *); -bool outp_parse_options (const char *options, +bool outp_parse_options (struct substring options, bool (*) (struct outp_driver *, const char *key, const struct string *value), struct outp_driver *); -int outp_match_keyword (const char *, struct outp_option *, int *); +int outp_match_keyword (const char *, const struct outp_option *, int *); -int outp_evaluate_dimension (char *, char **); -int outp_get_paper_size (char *, int *h, int *v); +int outp_evaluate_dimension (const char *); +bool outp_get_paper_size (const char *, int *h, int *v); void outp_open_page (struct outp_driver *); void outp_close_page (struct outp_driver *); void outp_eject_page (struct outp_driver *); +void outp_flush (struct outp_driver *); int outp_string_width (struct outp_driver *, const char *, enum outp_font); /* Imported from som-frnt.c. */ void som_destroy_driver (struct outp_driver *); -#endif /* output.h */ +#endif /* output/output.h */