1 /* pdfdocument.h: Implementation of EvDocument for PDF
2 * Copyright (C) 2004, Red Hat, Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 #include "pdf-document.h"
21 typedef struct _PdfDocumentClass PdfDocumentClass;
23 #define PDF_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PDF_TYPE_DOCUMENT, PdfDocumentClass))
24 #define PDF_IS_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PDF_TYPE_DOCUMENT))
25 #define PDF_DOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PDF_TYPE_DOCUMENT, PdfDocumentClass))
27 struct _PdfDocumentClass
29 GObjectClass parent_class;
34 GObject parent_instance;
36 GdkRectangle page_rect;
41 static void pdf_document_document_iface_init (EvDocumentIface *iface);
43 G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT,
44 { G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT,
45 pdf_document_document_iface_init) });
49 pdf_document_load (EvDocument *document,
57 pdf_document_get_n_pages (EvDocument *document)
63 pdf_document_set_page (EvDocument *document,
69 pdf_document_set_target (EvDocument *document,
72 PdfDocument *pdf_document = PDF_DOCUMENT (document);
74 if (pdf_document->target != target) {
75 if (pdf_document->target)
76 g_object_unref (pdf_document->target);
78 pdf_document->target = target;
80 if (pdf_document->target)
81 g_object_ref (pdf_document->target);
86 pdf_document_set_page_rect (EvDocument *document,
92 PdfDocument *pdf_document = PDF_DOCUMENT (document);
94 pdf_document->page_rect.x = x;
95 pdf_document->page_rect.y = y;
96 pdf_document->page_rect.width = width;
97 pdf_document->page_rect.height = height;
101 pdf_document_render (EvDocument *document,
110 pdf_document_finalize (GObject *object)
112 PdfDocument *pdf_document = PDF_DOCUMENT (object);
114 if (pdf_document->target)
115 g_object_unref (pdf_document->target);
120 pdf_document_class_init (PdfDocumentClass *class)
122 GObjectClass *gobject_class = G_OBJECT_CLASS (class);
124 gobject_class->finalize = pdf_document_finalize;
128 pdf_document_document_iface_init (EvDocumentIface *iface)
130 iface->load = pdf_document_load;
131 iface->get_n_pages = pdf_document_get_n_pages;
132 iface->set_page = pdf_document_set_page;
133 iface->set_target = pdf_document_set_target;
134 iface->set_page_rect = pdf_document_set_page_rect;
135 iface->render = pdf_document_render;
139 pdf_document_init (PdfDocument *document)