-/* PSPP - computes sample statistics.
- Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
- Written by Ben Pfaff <blp@gnu.org>.
+/* 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 <http://www.gnu.org/licenses/>. */
-#if !output_h
-#define output_h 1
-
-#include <config.h>
+#ifndef OUTPUT_OUTPUT_H
+#define OUTPUT_OUTPUT_H 1
#include <libpspp/str.h>
OUTP_CENTER, /* Center justification. */
};
-enum outp_font
+enum outp_font
{
OUTP_FIXED, /* Fixed-width font. */
OUTP_PROPORTIONAL, /* Proportional font. */
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,
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_*. */
int subcat; /* Subcategory. */
};
-/* List of configured output drivers. */
-extern struct outp_driver *outp_driver_list;
/* Title, subtitle. */
extern char *outp_title;
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);
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 (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 **);
-bool 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 */