X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libdocument%2Fev-file-exporter.c;h=43f563bf143cfa1333df25e60085bd06c0a062c8;hb=776a6fe02961d8901d21e172633d3c8d1c85dc93;hp=7a4e902132d7353aae98b92c9ed64d204093bd3c;hpb=13a06349251874bd35d2f03c3fc93217cee749a2;p=evince.git diff --git a/libdocument/ev-file-exporter.c b/libdocument/ev-file-exporter.c index 7a4e9021..43f563bf 100644 --- a/libdocument/ev-file-exporter.c +++ b/libdocument/ev-file-exporter.c @@ -20,66 +20,51 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ +#include #include "ev-file-exporter.h" +#include "ev-document.h" -GType -ev_file_exporter_get_type (void) -{ - static GType type = 0; +EV_DEFINE_INTERFACE (EvFileExporter, ev_file_exporter, 0) - if (G_UNLIKELY (type == 0)) { - const GTypeInfo our_info = - { - sizeof (EvFileExporterIface), - NULL, - NULL, - }; +static void +ev_file_exporter_class_init (EvFileExporterIface *klass) +{ +} - type = g_type_register_static (G_TYPE_INTERFACE, - "EvFileExporter", - &our_info, (GTypeFlags)0); - } +void +ev_file_exporter_begin (EvFileExporter *exporter, + EvFileExporterContext *fc) +{ + EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); - return type; + iface->begin (exporter, fc); } -gboolean -ev_file_exporter_format_supported (EvFileExporter *exporter, - EvFileExporterFormat format) +void +ev_file_exporter_begin_page (EvFileExporter *exporter) { EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); - if (format < EV_FILE_FORMAT_PS || - format > EV_FILE_FORMAT_PDF) - return FALSE; - - return iface->format_supported (exporter, format); + if (iface->begin_page) + iface->begin_page (exporter); } void -ev_file_exporter_begin (EvFileExporter *exporter, - EvFileExporterFormat format, - const gchar *filename, - gint first_page, - gint last_page, - gdouble paper_width, - gdouble paper_height, - gboolean duplex) +ev_file_exporter_do_page (EvFileExporter *exporter, + EvRenderContext *rc) { EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); - g_return_if_fail (ev_file_exporter_format_supported (exporter, format)); - - iface->begin (exporter, format, filename, first_page, last_page, - paper_width, paper_height, duplex); + iface->do_page (exporter, rc); } void -ev_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *rc) +ev_file_exporter_end_page (EvFileExporter *exporter) { - EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); - - iface->do_page (exporter, rc); + EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + if (iface->end_page) + iface->end_page (exporter); } void @@ -89,3 +74,11 @@ ev_file_exporter_end (EvFileExporter *exporter) iface->end (exporter); } + +EvFileExporterCapabilities +ev_file_exporter_get_capabilities (EvFileExporter *exporter) +{ + EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter); + + return iface->get_capabilities (exporter); +}