]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-file-exporter.c
Allow to add SaveAs to toolbar.
[evince.git] / libdocument / ev-file-exporter.c
index 7a4e902132d7353aae98b92c9ed64d204093bd3c..c74869fc76d98156b95c45db495dd4f18ec6251c 100644 (file)
@@ -20,6 +20,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#include <config.h>
 #include "ev-file-exporter.h"
 
 GType
@@ -43,45 +44,42 @@ ev_file_exporter_get_type (void)
         return type;
 }
 
-gboolean
-ev_file_exporter_format_supported (EvFileExporter      *exporter,
-                                  EvFileExporterFormat format)
+void
+ev_file_exporter_begin (EvFileExporter        *exporter,
+                        EvFileExporterContext *fc)
 {
-       EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
-
-       if (format < EV_FILE_FORMAT_PS ||
-           format > EV_FILE_FORMAT_PDF)
-               return FALSE;
+        EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
 
-       return iface->format_supported (exporter, format);
+        iface->begin (exporter, fc);
 }
 
 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_begin_page (EvFileExporter *exporter)
 {
-        EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
-
-       g_return_if_fail (ev_file_exporter_format_supported (exporter, format));
+       EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
 
-        iface->begin (exporter, format, filename, first_page, last_page,
-                      paper_width, paper_height, duplex);
+       if (iface->begin_page)
+               iface->begin_page (exporter);
 }
 
 void
-ev_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *rc)
+ev_file_exporter_do_page (EvFileExporter  *exporter,
+                         EvRenderContext *rc)
 {
         EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
 
         iface->do_page (exporter, rc);
 }
 
+void
+ev_file_exporter_end_page (EvFileExporter *exporter)
+{
+       EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
+       
+       if (iface->end_page)
+               iface->end_page (exporter);
+}
+
 void
 ev_file_exporter_end (EvFileExporter *exporter)
 {
@@ -89,3 +87,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);
+}