Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/backend/dvi
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2007-07-26 14:53:17 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2007-07-26 14:53:17 (GMT)
commite70119b293ab8a26bdea4a56407bb0f41f1e43aa (patch)
tree627b9853902c99806786543eb0155151925cfed6 /backend/dvi
parent0b6b9a984c7cfbf0e313a10f9bd09f77cb3be164 (diff)
Use capabilities to know which options should be offered by the print
2007-07-26 Carlos Garcia Campos <carlosgc@gnome.org> * backend/dvi/dvi-document.c: (dvi_document_file_exporter_begin), (dvi_document_file_exporter_do_page), (dvi_document_file_exporter_get_capabilities), (dvi_document_file_exporter_iface_init): * backend/ps/ps-document.c: (ps_document_file_exporter_begin), (ps_document_file_exporter_do_page), (ps_document_file_exporter_get_capabilities), (ps_document_file_exporter_iface_init): * backend/djvu/djvu-document.c: (djvu_document_file_exporter_begin), (djvu_document_file_exporter_end), (djvu_document_file_exporter_get_capabilities), (djvu_document_file_exporter_iface_init): * backend/tiff/tiff-document.c: (tiff_document_file_exporter_begin), (tiff_document_file_exporter_get_capabilities), (tiff_document_document_file_exporter_iface_init): * backend/pdf/ev-poppler.cc: (pdf_document_file_exporter_begin), (pdf_document_file_exporter_do_page), (pdf_document_file_exporter_get_capabilities), (pdf_document_file_exporter_iface_init): * libdocument/ev-file-exporter.[ch]: (ev_file_exporter_begin), (ev_file_exporter_get_capabilities): * shell/ev-print-job.c: (ev_print_job_use_print_dialog_settings), (idle_print_handler), (ev_print_job_print): * shell/ev-jobs.c: (ev_job_print_run): * shell/ev-window.c: (ev_window_print_send), (ev_window_print_range): Use capabilities to know which options should be offered by the print dialog depending on the document backend. svn path=/trunk/; revision=2580
Diffstat (limited to 'backend/dvi')
-rw-r--r--backend/dvi/dvi-document.c38
1 files changed, 18 insertions, 20 deletions
diff --git a/backend/dvi/dvi-document.c b/backend/dvi/dvi-document.c
index c85e4f5..b6f8325 100644
--- a/backend/dvi/dvi-document.c
+++ b/backend/dvi/dvi-document.c
@@ -362,28 +362,15 @@ dvi_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface)
}
/* EvFileExporterIface */
-static gboolean
-dvi_document_file_exporter_format_supported (EvFileExporter *exporter,
- EvFileExporterFormat format)
-{
- return (format == EV_FILE_FORMAT_PDF); /* only exporting to PDF is implemented. */
-}
-
static void
-dvi_document_file_exporter_begin (EvFileExporter *exporter,
- EvFileExporterFormat format,
- const char *filename, /* for storing the temp pdf file */
- int first_page,
- int last_page,
- double width,
- double height,
- gboolean duplex)
+dvi_document_file_exporter_begin (EvFileExporter *exporter,
+ EvFileExporterContext *fc)
{
DviDocument *dvi_document = DVI_DOCUMENT(exporter);
if (dvi_document->exporter_filename)
g_free (dvi_document->exporter_filename);
- dvi_document->exporter_filename = g_strdup(filename);
+ dvi_document->exporter_filename = g_strdup(fc->filename);
if (dvi_document->exporter_opts) {
g_string_free (dvi_document->exporter_opts, TRUE);
@@ -392,7 +379,8 @@ dvi_document_file_exporter_begin (EvFileExporter *exporter,
}
static void
-dvi_document_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *rc)
+dvi_document_file_exporter_do_page (EvFileExporter *exporter,
+ EvRenderContext *rc)
{
DviDocument *dvi_document = DVI_DOCUMENT(exporter);
@@ -423,22 +411,32 @@ dvi_document_file_exporter_end (EvFileExporter *exporter)
g_free(command_line);
if (success == FALSE) {
- g_warning (_("Error: %s"), err->message);
+ g_warning ("Error: %s", err->message);
} else if (exit_stat != 0) {
- g_warning (_("Error: dvipdfm exited with non-zero status."));
+ g_warning ("Error: dvipdfm exited with non-zero status.");
}
if (err)
g_error_free(err);
}
+static EvFileExporterCapabilities
+dvi_document_file_exporter_get_capabilities (EvFileExporter *exporter)
+{
+ return EV_FILE_EXPORTER_CAN_PAGE_SET |
+ EV_FILE_EXPORTER_CAN_COPIES |
+ EV_FILE_EXPORTER_CAN_COLLATE |
+ EV_FILE_EXPORTER_CAN_REVERSE |
+ EV_FILE_EXPORTER_CAN_GENERATE_PDF;
+}
+
static void
dvi_document_file_exporter_iface_init (EvFileExporterIface *iface)
{
- iface->format_supported = dvi_document_file_exporter_format_supported;
iface->begin = dvi_document_file_exporter_begin;
iface->do_page = dvi_document_file_exporter_do_page;
iface->end = dvi_document_file_exporter_end;
+ iface->get_capabilities = dvi_document_file_exporter_get_capabilities;
}
#define RGB2ULONG(r,g,b) ((0xFF<<24)|(r<<16)|(g<<8)|(b))