* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*/
+#include <config.h>
#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
iface->end (exporter);
}
+
+EvFileExporterCapabilities
+ev_file_exporter_get_capabilities (EvFileExporter *exporter)
+{
+ EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
+
+ return iface->get_capabilities (exporter);
+}