*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+#include <config.h>
#include "ev-file-exporter.h"
+#include "ev-document.h"
-GType
-ev_file_exporter_get_type (void)
-{
- static GType type = 0;
-
- if (G_UNLIKELY (type == 0)) {
- const GTypeInfo our_info =
- {
- sizeof (EvFileExporterIface),
- NULL,
- NULL,
- };
+G_DEFINE_INTERFACE (EvFileExporter, ev_file_exporter, 0)
- type = g_type_register_static (G_TYPE_INTERFACE,
- "EvFileExporter",
- &our_info, (GTypeFlags)0);
- }
-
- return type;
+static void
+ev_file_exporter_default_init (EvFileExporterInterface *klass)
+{
}
-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;
+ EvFileExporterInterface *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);
+ EvFileExporterInterface *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);
+ 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);
+ EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
iface->do_page (exporter, rc);
}
+void
+ev_file_exporter_end_page (EvFileExporter *exporter)
+{
+ EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
+
+ if (iface->end_page)
+ iface->end_page (exporter);
+}
+
void
ev_file_exporter_end (EvFileExporter *exporter)
{
- EvFileExporterIface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
+ EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
iface->end (exporter);
}
+
+EvFileExporterCapabilities
+ev_file_exporter_get_capabilities (EvFileExporter *exporter)
+{
+ EvFileExporterInterface *iface = EV_FILE_EXPORTER_GET_IFACE (exporter);
+
+ return iface->get_capabilities (exporter);
+}