output: Add support for Pango markup of fonts and styles.
[pspp] / src / output / driver-provider.h
index df31637379b070cf3c5ddf5b90c4f9948f1f4b91..bfeaca83687c534911c0eeffa5ecdec2acd5cf44 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 2007, 2009, 2010, 2012, 2014 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
@@ -25,6 +25,7 @@
 
 struct output_item;
 struct string_map;
+struct file_handle;
 
 /* A configured output driver. */
 struct output_driver
@@ -36,7 +37,8 @@ struct output_driver
 
 void output_driver_init (struct output_driver *,
                          const struct output_driver_class *,
-                         const char *name, enum settings_output_devices);
+                         const char *, enum settings_output_devices);
+
 void output_driver_destroy (struct output_driver *);
 
 const char *output_driver_get_name (const struct output_driver *);
@@ -71,15 +73,19 @@ struct output_driver_class
     void (*flush) (struct output_driver *driver);
   };
 
-/* Useful for output driver implementation. */
-void output_driver_track_current_command (const struct output_item *, char **);
-\f
+
 /* An abstract way for the output subsystem to create an output driver. */
 struct output_driver_factory
   {
     /* The file extension, without the leading dot, e.g. "pdf". */
     const char *extension;
 
+    /* The default file name, including extension.
+
+       If this is "-", that implies that by default output will be directed to
+       stdout. */
+    const char *default_file_name;
+
     /* Creates a new output driver of this class.  NAME and TYPE should be
        passed directly to output_driver_init.  Returns the new output driver if
        successful, otherwise a null pointer.
@@ -92,10 +98,11 @@ struct output_driver_factory
        The returned driver should not have been registered (with
        output_driver_register).  The caller will register the driver (if this
        is desirable). */
-    struct output_driver *(*create) (const char *name,
+    struct output_driver *(*create) (struct file_handle *,
                                      enum settings_output_devices type,
                                      struct string_map *options);
   };
 
+char *output_get_text_from_markup (const char *markup);
 
 #endif /* output/driver-provider.h */