X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=backend%2Fps%2Fps-document.c;h=abe819250c42dc13fa8a0b8b26140e9202aa10c4;hb=f0929384891f45f8fc826062529d3e5569358bb1;hp=0931fb91d37f63414879eddeb732500419c46f68;hpb=d0ff017ab3775bd296baaacc1eef0760dc18e9a8;p=evince.git diff --git a/backend/ps/ps-document.c b/backend/ps/ps-document.c index 0931fb91..abe81925 100644 --- a/backend/ps/ps-document.c +++ b/backend/ps/ps-document.c @@ -74,10 +74,8 @@ static void ps_interpreter_page_rendered (PSInterpreter GdkPixbuf *pixbuf, PSDocument *ps_document); -G_DEFINE_TYPE_WITH_CODE (PSDocument, ps_document, G_TYPE_OBJECT, +EV_BACKEND_REGISTER_WITH_CODE (PSDocument, ps_document, { - G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT, - ps_document_document_iface_init); G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, ps_document_document_thumbnails_iface_init); G_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, @@ -415,12 +413,6 @@ ps_document_get_page_size (EvDocument *document, } } -static gboolean -ps_document_can_get_text (EvDocument *document) -{ - return FALSE; -} - static EvDocumentInfo * ps_document_get_info (EvDocument *document) { @@ -454,7 +446,6 @@ ps_document_document_iface_init (EvDocumentIface *iface) { iface->load = ps_document_load; iface->save = ps_document_save; - iface->can_get_text = ps_document_can_get_text; iface->get_n_pages = ps_document_get_n_pages; iface->get_page_size = ps_document_get_page_size; iface->get_info = ps_document_get_info; @@ -598,22 +589,9 @@ ps_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface) } /* EvFileExporterIface */ -static gboolean -ps_document_file_exporter_format_supported (EvFileExporter *exporter, - EvFileExporterFormat format) -{ - return (format == EV_FILE_FORMAT_PS); -} - static void -ps_document_file_exporter_begin (EvFileExporter *exporter, - EvFileExporterFormat format, - const char *filename, - int first_page, - int last_page, - double width, - double height, - gboolean duplex) +ps_document_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) { PSDocument *document = PS_DOCUMENT (exporter); @@ -623,11 +601,12 @@ ps_document_file_exporter_begin (EvFileExporter *exporter, document->ps_export_pagelist = g_new0 (int, document->doc->numpages); } - document->ps_export_filename = g_strdup (filename); + document->ps_export_filename = g_strdup (fc->filename); } static void -ps_document_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *rc) +ps_document_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc) { PSDocument *document = PS_DOCUMENT (exporter); @@ -653,11 +632,18 @@ ps_document_file_exporter_end (EvFileExporter *exporter) } } +static EvFileExporterCapabilities +ps_document_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + return EV_FILE_EXPORTER_CAN_PAGE_SET | + EV_FILE_EXPORTER_CAN_GENERATE_PS; +} + static void ps_document_file_exporter_iface_init (EvFileExporterIface *iface) { - iface->format_supported = ps_document_file_exporter_format_supported; iface->begin = ps_document_file_exporter_begin; iface->do_page = ps_document_file_exporter_do_page; iface->end = ps_document_file_exporter_end; + iface->get_capabilities = ps_document_file_exporter_get_capabilities; }