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,
}
}
-static gboolean
-ps_document_can_get_text (EvDocument *document)
-{
- return FALSE;
-}
-
static EvDocumentInfo *
ps_document_get_info (EvDocument *document)
{
{
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;
}
/* 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);
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);
}
}
+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;
}