diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/Makefile.am | 2 | ||||
-rw-r--r-- | backend/ev-ps-exporter.c | 71 | ||||
-rw-r--r-- | backend/ev-ps-exporter.h | 58 |
3 files changed, 131 insertions, 0 deletions
diff --git a/backend/Makefile.am b/backend/Makefile.am index 2f54157..5ccd5a1 100644 --- a/backend/Makefile.am +++ b/backend/Makefile.am @@ -17,6 +17,8 @@ libevbackend_la_SOURCES= \ ev-document-thumbnails.h \ ev-document-bookmarks.c \ ev-document-bookmarks.h \ + ev-ps-exporter.c \ + ev-ps-exporter.h \ $(NULL) ev-backend-marshalers.h: ev-backend-marshalers.list diff --git a/backend/ev-ps-exporter.c b/backend/ev-ps-exporter.c new file mode 100644 index 0000000..f5b5568 --- /dev/null +++ b/backend/ev-ps-exporter.c @@ -0,0 +1,71 @@ +/* this file is part of evince, a gnome document viewer + * + * Copyright (C) 2004 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Evince is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * 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. + */ + +#include "config.h" + +#include "ev-ps-exporter.h" + +GType +ev_ps_exporter_get_type (void) +{ + static GType type = 0; + + if (G_UNLIKELY (type == 0)) + { + static const GTypeInfo our_info = + { + sizeof (EvPSExporterIface), + NULL, + NULL, + }; + + type = g_type_register_static (G_TYPE_INTERFACE, + "EvPSExporter", + &our_info, (GTypeFlags)0); + } + + return type; +} + +void +ev_ps_exporter_begin (EvPSExporter *exporter, const char *filename) +{ + EvPSExporterIface *iface = EV_PS_EXPORTER_GET_IFACE (exporter); + + iface->begin (exporter, filename); +} + +void +ev_ps_exporter_do_page (EvPSExporter *exporter, int page) +{ + EvPSExporterIface *iface = EV_PS_EXPORTER_GET_IFACE (exporter); + + iface->do_page (exporter, page); +} + +void +ev_ps_exporter_end (EvPSExporter *exporter) +{ + EvPSExporterIface *iface = EV_PS_EXPORTER_GET_IFACE (exporter); + + iface->end (exporter); +} diff --git a/backend/ev-ps-exporter.h b/backend/ev-ps-exporter.h new file mode 100644 index 0000000..58917e8 --- /dev/null +++ b/backend/ev-ps-exporter.h @@ -0,0 +1,58 @@ +/* this file is part of evince, a gnome document viewer + * + * Copyright (C) 2004 Martin Kretzschmar + * + * Author: + * Martin Kretzschmar <martink@gnome.org> + * + * Evince is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Evince is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * 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. + */ + +#ifndef EV_PS_EXPORTER_H +#define EV_PS_EXPORTER_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EV_TYPE_PS_EXPORTER (ev_ps_exporter_get_type ()) +#define EV_PS_EXPORTER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_PS_EXPORTER, EvPSExporter)) +#define EV_PS_EXPORTER_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_PS_EXPORTER, EvPSExporterIface)) +#define EV_IS_PS_EXPORTER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_PS_EXPORTER)) +#define EV_IS_PS_EXPORTER_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_PS_EXPORTER)) +#define EV_PS_EXPORTER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_PS_EXPORTER, EvPSExporterIface)) + +typedef struct _EvPSExporter EvPSExporter; +typedef struct _EvPSExporterIface EvPSExporterIface; + +struct _EvPSExporterIface { + GTypeInterface base_iface; + + /* Methods */ + void (* begin) (EvPSExporter *exporter, + const char *filename); + void (* do_page) (EvPSExporter *exporter, + int page); + void (* end) (EvPSExporter *exporter); +}; + +GType ev_ps_exporter_get_type (void); +void ev_ps_exporter_begin (EvPSExporter *exporter, const char *filename); +void ev_ps_exporter_do_page (EvPSExporter *exporter, int page); +void ev_ps_exporter_end (EvPSExporter *exporter); + +G_END_DECLS + +#endif |