#include "output/driver.h"
struct output_item;
+struct output_iterator;
struct string_map;
struct file_handle;
+struct page_setup;
/* A configured output driver. */
struct output_driver
const char *output_driver_get_name (const struct output_driver *);
+char *output_driver_substitute_heading_vars (const char *, int page_number);
+
/* One kind of output driver.
Output driver implementations must not call msg() to report errors. This
void (*submit) (struct output_driver *driver,
const struct output_item *item);
+ /* Changes DRIVER's output page setup to PS, if possible. This may be NUL
+ if the driver doesn't support page setup. */
+ void (*setup) (struct output_driver *driver, const struct page_setup *ps);
+
/* Ensures that any output items passed to the 'submit' function for DRIVER
have actually been displayed.
it doesn't make sense for DRIVER to be used this way, then this function
need not do anything. */
void (*flush) (struct output_driver *driver);
- };
+ /* Ordinarily, the core driver code will skip passing hidden output items
+ to 'submit'. If this member is true, the core driver hands them to the
+ driver to let it handle them itself. */
+ bool handles_show;
+
+ /* Ordinarily, the core driver code will flatten groups of output items
+ before passing them to 'submit'. If this member is true, the core
+ driver code leaves them in place for the driver to handle. */
+ bool handles_groups;
+ };
/* An abstract way for the output subsystem to create an output driver. */
struct output_driver_factory
struct string_map *options);
};
-
#endif /* output/driver-provider.h */