File: | backend/pdf/ev-poppler.cc |
Warning: | line 1653, column 4 This statement is never executed |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
1 | /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */ |
2 | /* this file is part of lector, a cafe document viewer |
3 | * |
4 | * Copyright (C) 2009, Juanjo Marín <juanj.marin@juntadeandalucia.es> |
5 | * Copyright (C) 2004, Red Hat, Inc. |
6 | * |
7 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License as published by |
9 | * the Free Software Foundation; either version 2, or (at your option) |
10 | * any later version. |
11 | * |
12 | * This program is distributed in the hope that it will be useful, |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | * GNU General Public License for more details. |
16 | * |
17 | * You should have received a copy of the GNU General Public License |
18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
20 | */ |
21 | |
22 | #include "config.h" |
23 | |
24 | #include <math.h> |
25 | #include <string.h> |
26 | #include <ctk/ctk.h> |
27 | #include <poppler.h> |
28 | #include <poppler-document.h> |
29 | #include <poppler-page.h> |
30 | #ifdef HAVE_CAIRO_PDF1 |
31 | #include <cairo-pdf.h> |
32 | #endif |
33 | #ifdef HAVE_CAIRO_PS1 |
34 | #include <cairo-ps.h> |
35 | #endif |
36 | #include <glib/gi18n-lib.h> |
37 | |
38 | #include "ev-poppler.h" |
39 | #include "ev-file-exporter.h" |
40 | #include "ev-document-find.h" |
41 | #include "ev-document-misc.h" |
42 | #include "ev-document-links.h" |
43 | #include "ev-document-images.h" |
44 | #include "ev-document-fonts.h" |
45 | #include "ev-document-security.h" |
46 | #include "ev-document-thumbnails.h" |
47 | #include "ev-document-transition.h" |
48 | #include "ev-document-forms.h" |
49 | #include "ev-document-layers.h" |
50 | #include "ev-document-print.h" |
51 | #include "ev-document-annotations.h" |
52 | #include "ev-document-attachments.h" |
53 | #include "ev-document-text.h" |
54 | #include "ev-selection.h" |
55 | #include "ev-transition-effect.h" |
56 | #include "ev-attachment.h" |
57 | #include "ev-image.h" |
58 | |
59 | #include <libxml/tree.h> |
60 | #include <libxml/parser.h> |
61 | #include <libxml/xpath.h> |
62 | #include <libxml/xpathInternals.h> |
63 | |
64 | #if (defined (HAVE_CAIRO_PDF1) || defined (HAVE_CAIRO_PS1)) |
65 | #define HAVE_CAIRO_PRINT |
66 | #endif |
67 | |
68 | /* fields from the XMP Rights Management Schema, XMP Specification Sept 2005, pag. 45 */ |
69 | #define LICENSE_MARKED"/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:Marked" "/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:Marked" |
70 | #define LICENSE_TEXT"/x:xmpmeta/rdf:RDF/rdf:Description/dc:rights/rdf:Alt/rdf:li[lang('%s')]" "/x:xmpmeta/rdf:RDF/rdf:Description/dc:rights/rdf:Alt/rdf:li[lang('%s')]" |
71 | #define LICENSE_WEB_STATEMENT"/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:WebStatement" "/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:WebStatement" |
72 | /* license field from Creative Commons schema, http://creativecommons.org/ns */ |
73 | #define LICENSE_URI"/x:xmpmeta/rdf:RDF/rdf:Description/cc:license/@rdf:resource" "/x:xmpmeta/rdf:RDF/rdf:Description/cc:license/@rdf:resource" |
74 | |
75 | typedef struct { |
76 | EvFileExporterFormat format; |
77 | |
78 | /* Pages per sheet */ |
79 | gint pages_per_sheet; |
80 | gint pages_printed; |
81 | gint pages_x; |
82 | gint pages_y; |
83 | gdouble paper_width; |
84 | gdouble paper_height; |
85 | |
86 | #ifdef HAVE_CAIRO_PRINT |
87 | cairo_t *cr; |
88 | #else |
89 | PopplerPSFile *ps_file; |
90 | #endif |
91 | } PdfPrintContext; |
92 | |
93 | struct _PdfDocumentClass |
94 | { |
95 | EvDocumentClass parent_class; |
96 | }; |
97 | |
98 | struct _PdfDocument |
99 | { |
100 | EvDocument parent_instance; |
101 | |
102 | PopplerDocument *document; |
103 | gchar *password; |
104 | gboolean forms_modified; |
105 | gboolean annots_modified; |
106 | |
107 | PopplerFontInfo *font_info; |
108 | PopplerFontsIter *fonts_iter; |
109 | int fonts_scanned_pages; |
110 | |
111 | PdfPrintContext *print_ctx; |
112 | |
113 | GHashTable *annots; |
114 | }; |
115 | |
116 | static void pdf_document_security_iface_init (EvDocumentSecurityInterface *iface); |
117 | static void pdf_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface); |
118 | static void pdf_document_document_links_iface_init (EvDocumentLinksInterface *iface); |
119 | static void pdf_document_document_images_iface_init (EvDocumentImagesInterface *iface); |
120 | static void pdf_document_document_forms_iface_init (EvDocumentFormsInterface *iface); |
121 | static void pdf_document_document_fonts_iface_init (EvDocumentFontsInterface *iface); |
122 | static void pdf_document_document_layers_iface_init (EvDocumentLayersInterface *iface); |
123 | static void pdf_document_document_print_iface_init (EvDocumentPrintInterface *iface); |
124 | static void pdf_document_document_annotations_iface_init (EvDocumentAnnotationsInterface *iface); |
125 | static void pdf_document_document_attachments_iface_init (EvDocumentAttachmentsInterface *iface); |
126 | static void pdf_document_find_iface_init (EvDocumentFindInterface *iface); |
127 | static void pdf_document_file_exporter_iface_init (EvFileExporterInterface *iface); |
128 | static void pdf_selection_iface_init (EvSelectionInterface *iface); |
129 | static void pdf_document_page_transition_iface_init (EvDocumentTransitionInterface *iface); |
130 | static void pdf_document_text_iface_init (EvDocumentTextInterface *iface); |
131 | static void pdf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document_thumbnails, |
132 | EvRenderContext *rc, |
133 | gint *width, |
134 | gint *height); |
135 | static int pdf_document_get_n_pages (EvDocument *document); |
136 | |
137 | static EvLinkDest *ev_link_dest_from_dest (PdfDocument *pdf_document, |
138 | PopplerDest *dest); |
139 | static EvLink *ev_link_from_action (PdfDocument *pdf_document, |
140 | PopplerAction *action); |
141 | static void pdf_print_context_free (PdfPrintContext *ctx); |
142 | static gboolean attachment_save_to_buffer (PopplerAttachment *attachment, |
143 | gchar **buffer, |
144 | gsize *buffer_size, |
145 | GError **error); |
146 | |
147 | EV_BACKEND_REGISTER_WITH_CODE (PdfDocument, pdf_document,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
148 | {static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
149 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_SECURITY,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
150 | pdf_document_security_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
151 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
152 | pdf_document_document_thumbnails_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
153 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LINKS,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
154 | pdf_document_document_links_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
155 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_IMAGES,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
156 | pdf_document_document_images_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
157 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FORMS,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
158 | pdf_document_document_forms_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
159 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FONTS,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
160 | pdf_document_document_fonts_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
161 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LAYERS,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
162 | pdf_document_document_layers_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
163 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_PRINT,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
164 | pdf_document_document_print_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
165 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_ANNOTATIONS,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
166 | pdf_document_document_annotations_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
167 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_ATTACHMENTS,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
168 | pdf_document_document_attachments_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
169 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
170 | pdf_document_find_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
171 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
172 | pdf_document_file_exporter_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
173 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_SELECTION,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
174 | pdf_selection_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
175 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_TRANSITION,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
176 | pdf_document_page_transition_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
177 | EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_TEXT,static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
178 | pdf_document_text_iface_init);static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; } |
179 | })static GType g_define_type_id = 0; GType pdf_document_get_type (void) { return g_define_type_id; } static void pdf_document_init (PdfDocument *self); static void pdf_document_class_init (PdfDocumentClass *klass); static gpointer pdf_document_parent_class = __null; static void pdf_document_class_intern_init (gpointer klass) { pdf_document_parent_class = g_type_class_peek_parent (klass) ; pdf_document_class_init ((PdfDocumentClass *) klass); } __attribute__ ((visibility("default"))) GType register_lector_backend (GTypeModule *module) { const GTypeInfo our_info = { sizeof (PdfDocumentClass ), __null, __null, (GClassInitFunc) pdf_document_class_intern_init , __null, __null, sizeof (PdfDocument), 0, (GInstanceInitFunc ) pdf_document_init }; bindtextdomain ("lector", "/usr/share/locale" ); bind_textdomain_codeset ("lector", "UTF-8"); g_define_type_id = g_type_module_register_type (module, (ev_document_get_type ()), "PdfDocument", &our_info, (GTypeFlags)0); { { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc ) pdf_document_security_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_security_get_type () ), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_document_thumbnails_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_thumbnails_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_links_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_links_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_images_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_images_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_forms_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_forms_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_fonts_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_fonts_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_layers_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_layers_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_print_iface_init, __null , __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_print_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_annotations_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_annotations_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_document_attachments_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_attachments_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_find_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_find_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_file_exporter_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_file_exporter_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_selection_iface_init, __null, __null } ; g_type_module_add_interface (module, g_define_type_id, (ev_selection_get_type ()), &g_implement_interface_info); }; { const GInterfaceInfo g_implement_interface_info = { (GInterfaceInitFunc) pdf_document_page_transition_iface_init , __null, __null }; g_type_module_add_interface (module, g_define_type_id , (ev_document_transition_get_type ()), &g_implement_interface_info ); }; { const GInterfaceInfo g_implement_interface_info = { ( GInterfaceInitFunc) pdf_document_text_iface_init, __null, __null }; g_type_module_add_interface (module, g_define_type_id, (ev_document_text_get_type ()), &g_implement_interface_info); }; } return g_define_type_id ; }; |
180 | |
181 | static void |
182 | pdf_document_dispose (GObject *object) |
183 | { |
184 | PdfDocument *pdf_document = PDF_DOCUMENT(object)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((object)), ((pdf_document_get_type ())))))); |
185 | |
186 | if (pdf_document->print_ctx) { |
187 | pdf_print_context_free (pdf_document->print_ctx); |
188 | pdf_document->print_ctx = NULL__null; |
189 | } |
190 | |
191 | if (pdf_document->annots) { |
192 | g_hash_table_destroy (pdf_document->annots); |
193 | pdf_document->annots = NULL__null; |
194 | } |
195 | |
196 | if (pdf_document->document) { |
197 | g_object_unref (pdf_document->document); |
198 | } |
199 | |
200 | if (pdf_document->font_info) { |
201 | poppler_font_info_free (pdf_document->font_info); |
202 | } |
203 | |
204 | if (pdf_document->fonts_iter) { |
205 | poppler_fonts_iter_free (pdf_document->fonts_iter); |
206 | } |
207 | |
208 | G_OBJECT_CLASS (pdf_document_parent_class)((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((pdf_document_parent_class)), (((GType) ((20) << (2 ))))))))->dispose (object); |
209 | } |
210 | |
211 | static void |
212 | pdf_document_init (PdfDocument *pdf_document) |
213 | { |
214 | pdf_document->password = NULL__null; |
215 | } |
216 | |
217 | static void |
218 | convert_error (GError *poppler_error, |
219 | GError **error) |
220 | { |
221 | if (poppler_error == NULL__null) |
222 | return; |
223 | |
224 | if (poppler_error->domain == POPPLER_ERRORpoppler_error_quark()) { |
225 | /* convert poppler errors into EvDocument errors */ |
226 | gint code = EV_DOCUMENT_ERROR_INVALID; |
227 | if (poppler_error->code == POPPLER_ERROR_INVALID) |
228 | code = EV_DOCUMENT_ERROR_INVALID; |
229 | else if (poppler_error->code == POPPLER_ERROR_ENCRYPTED) |
230 | code = EV_DOCUMENT_ERROR_ENCRYPTED; |
231 | |
232 | g_set_error_literal (error, |
233 | EV_DOCUMENT_ERRORev_document_error_quark (), |
234 | code, |
235 | poppler_error->message); |
236 | |
237 | g_error_free (poppler_error); |
238 | } else { |
239 | g_propagate_error (error, poppler_error); |
240 | } |
241 | } |
242 | |
243 | |
244 | /* EvDocument */ |
245 | static gboolean |
246 | pdf_document_save (EvDocument *document, |
247 | const char *uri, |
248 | GError **error) |
249 | { |
250 | PdfDocument *pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
251 | gboolean retval; |
252 | GError *poppler_error = NULL__null; |
253 | |
254 | if (pdf_document->forms_modified || pdf_document->annots_modified) { |
255 | retval = poppler_document_save (pdf_document->document, |
256 | uri, &poppler_error); |
257 | if (retval) { |
258 | pdf_document->forms_modified = FALSE(0); |
259 | pdf_document->annots_modified = FALSE(0); |
260 | } |
261 | } else { |
262 | retval = poppler_document_save_a_copy (pdf_document->document, |
263 | uri, &poppler_error); |
264 | } |
265 | |
266 | if (! retval) |
267 | convert_error (poppler_error, error); |
268 | |
269 | return retval; |
270 | } |
271 | |
272 | static gboolean |
273 | pdf_document_load (EvDocument *document, |
274 | const char *uri, |
275 | GError **error) |
276 | { |
277 | GError *poppler_error = NULL__null; |
278 | PdfDocument *pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
279 | |
280 | pdf_document->document = |
281 | poppler_document_new_from_file (uri, pdf_document->password, &poppler_error); |
282 | |
283 | if (pdf_document->document == NULL__null) { |
284 | convert_error (poppler_error, error); |
285 | return FALSE(0); |
286 | } |
287 | |
288 | return TRUE(!(0)); |
289 | } |
290 | |
291 | static int |
292 | pdf_document_get_n_pages (EvDocument *document) |
293 | { |
294 | return poppler_document_get_n_pages (PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->document); |
295 | } |
296 | |
297 | static EvPage * |
298 | pdf_document_get_page (EvDocument *document, |
299 | gint index) |
300 | { |
301 | PdfDocument *pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
302 | PopplerPage *poppler_page; |
303 | EvPage *page; |
304 | |
305 | poppler_page = poppler_document_get_page (pdf_document->document, index); |
306 | page = ev_page_new (index); |
307 | page->backend_page = (EvBackendPage)g_object_ref (poppler_page)((typename std::remove_reference<decltype (poppler_page)> ::type) (g_object_ref) (poppler_page)); |
308 | page->backend_destroy_func = (EvBackendPageDestroyFunc)g_object_unref; |
309 | g_object_unref (poppler_page); |
310 | |
311 | return page; |
312 | } |
313 | |
314 | static void |
315 | pdf_document_get_page_size (EvDocument *document, |
316 | EvPage *page, |
317 | double *width, |
318 | double *height) |
319 | { |
320 | g_return_if_fail (POPPLER_IS_PAGE (page->backend_page))do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return; } } while (0); |
321 | |
322 | poppler_page_get_size (POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))), width, height); |
323 | } |
324 | |
325 | static char * |
326 | pdf_document_get_page_label (EvDocument *document, |
327 | EvPage *page) |
328 | { |
329 | char *label = NULL__null; |
330 | |
331 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return (__null); } } while (0); |
332 | |
333 | g_object_get (G_OBJECT (page->backend_page)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), (((GType) ((20) << (2)))) )))), |
334 | "label", &label, |
335 | NULL__null); |
336 | return label; |
337 | } |
338 | |
339 | static cairo_surface_t * |
340 | pdf_page_render (PopplerPage *page, |
341 | gint width, |
342 | gint height, |
343 | EvRenderContext *rc) |
344 | { |
345 | cairo_surface_t *surface; |
346 | cairo_t *cr; |
347 | |
348 | surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, |
349 | width, height); |
350 | cr = cairo_create (surface); |
351 | |
352 | switch (rc->rotation) { |
353 | case 90: |
354 | cairo_translate (cr, width, 0); |
355 | break; |
356 | case 180: |
357 | cairo_translate (cr, width, height); |
358 | break; |
359 | case 270: |
360 | cairo_translate (cr, 0, height); |
361 | break; |
362 | default: |
363 | cairo_translate (cr, 0, 0); |
364 | } |
365 | cairo_scale (cr, rc->scale, rc->scale); |
366 | cairo_rotate (cr, rc->rotation * G_PI3.1415926535897932384626433832795028841971693993751 / 180.0); |
367 | poppler_page_render (page, cr); |
368 | |
369 | cairo_set_operator (cr, CAIRO_OPERATOR_DEST_OVER); |
370 | cairo_set_source_rgb (cr, 1., 1., 1.); |
371 | cairo_paint (cr); |
372 | |
373 | cairo_destroy (cr); |
374 | |
375 | return surface; |
376 | } |
377 | |
378 | static cairo_surface_t * |
379 | pdf_document_render (EvDocument *document, |
380 | EvRenderContext *rc) |
381 | { |
382 | PopplerPage *poppler_page; |
383 | double width_points, height_points; |
384 | gint width, height; |
385 | |
386 | poppler_page = POPPLER_PAGE (rc->page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((rc->page->backend_page)), ((poppler_page_get_type( ))))))); |
387 | |
388 | poppler_page_get_size (poppler_page, |
389 | &width_points, &height_points); |
390 | |
391 | if (rc->rotation == 90 || rc->rotation == 270) { |
392 | width = (int) ((height_points * rc->scale) + 0.5); |
393 | height = (int) ((width_points * rc->scale) + 0.5); |
394 | } else { |
395 | width = (int) ((width_points * rc->scale) + 0.5); |
396 | height = (int) ((height_points * rc->scale) + 0.5); |
397 | } |
398 | |
399 | return pdf_page_render (poppler_page, |
400 | width, height, rc); |
401 | } |
402 | |
403 | /* reference: |
404 | http://www.pdfa.org/lib/exe/fetch.php?id=pdfa%3Aen%3Atechdoc&cache=cache&media=pdfa:techdoc:tn0001_pdfa-1_and_namespaces_2008-03-18.pdf */ |
405 | static char * |
406 | pdf_document_get_format_from_metadata (xmlDocPtr doc, |
407 | xmlXPathContextPtr xpathCtx) |
408 | { |
409 | xmlXPathObjectPtr xpathObj; |
410 | xmlChar *part = NULL__null; |
411 | xmlChar *conf = NULL__null; |
412 | char *result = NULL__null; |
413 | int i; |
414 | |
415 | /* add pdf/a namespaces */ |
416 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "x", BAD_CAST(xmlChar *) "adobe:ns:meta/"); |
417 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "rdf", BAD_CAST(xmlChar *) "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); |
418 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "pdfaid", BAD_CAST(xmlChar *) "http://www.aiim.org/pdfa/ns/id/"); |
419 | |
420 | /* reads pdf/a part */ |
421 | /* first syntax: child node */ |
422 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) "/x:xmpmeta/rdf:RDF/rdf:Description/pdfaid:part", xpathCtx); |
423 | if (xpathObj != NULL__null) { |
424 | if (xpathObj->nodesetval != NULL__null && xpathObj->nodesetval->nodeNr != 0) |
425 | part = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
426 | |
427 | xmlXPathFreeObject (xpathObj); |
428 | } |
429 | if (part == NULL__null) { |
430 | /* second syntax: attribute */ |
431 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) "/x:xmpmeta/rdf:RDF/rdf:Description/@pdfaid:part", xpathCtx); |
432 | if (xpathObj != NULL__null) { |
433 | if (xpathObj->nodesetval != NULL__null && xpathObj->nodesetval->nodeNr != 0) |
434 | part = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
435 | |
436 | xmlXPathFreeObject (xpathObj); |
437 | } |
438 | } |
439 | |
440 | /* reads pdf/a conformance */ |
441 | /* first syntax: child node */ |
442 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) "/x:xmpmeta/rdf:RDF/rdf:Description/pdfaid:conformance", xpathCtx); |
443 | if (xpathObj != NULL__null) { |
444 | if (xpathObj->nodesetval != NULL__null && xpathObj->nodesetval->nodeNr != 0) |
445 | conf = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
446 | |
447 | xmlXPathFreeObject (xpathObj); |
448 | } |
449 | if (conf == NULL__null) { |
450 | /* second syntax: attribute */ |
451 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) "/x:xmpmeta/rdf:RDF/rdf:Description/@pdfaid:conformance", xpathCtx); |
452 | if (xpathObj != NULL__null) { |
453 | if (xpathObj->nodesetval != NULL__null && xpathObj->nodesetval->nodeNr != 0) |
454 | conf = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
455 | |
456 | xmlXPathFreeObject (xpathObj); |
457 | } |
458 | } |
459 | |
460 | if (part != NULL__null && conf != NULL__null) { |
461 | /* makes conf lowercase */ |
462 | for (i = 0; conf[i]; i++) |
463 | conf[i] = g_ascii_tolower (conf[i]); |
464 | |
465 | /* return buffer */ |
466 | result = g_strdup_printf ("PDF/A - %s%s", part, conf); |
467 | } |
468 | |
469 | /* Cleanup */ |
470 | xmlFree (part); |
471 | xmlFree (conf); |
472 | |
473 | return result; |
474 | } |
475 | |
476 | static EvDocumentLicense * |
477 | pdf_document_get_license_from_metadata (xmlDocPtr doc, |
478 | xmlXPathContextPtr xpathCtx) |
479 | { |
480 | xmlXPathObjectPtr xpathObj; |
481 | xmlChar *marked = NULL__null; |
482 | const char *language_string; |
483 | char *aux; |
484 | gchar **tags; |
485 | gchar *tag, *tag_aux; |
486 | int i, j; |
487 | EvDocumentLicense *license; |
488 | |
489 | /* register namespaces */ |
490 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "x", BAD_CAST(xmlChar *) "adobe:ns:meta/"); |
491 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "rdf", BAD_CAST(xmlChar *) "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); |
492 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "dc", BAD_CAST(xmlChar *) "http://purl.org/dc/elements/1.1/"); |
493 | /* XMP Rights Management Schema */ |
494 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "xmpRights", BAD_CAST(xmlChar *) "http://ns.adobe.com/xap/1.0/rights/"); |
495 | /* Creative Commons Schema */ |
496 | xmlXPathRegisterNs (xpathCtx, BAD_CAST(xmlChar *) "cc", BAD_CAST(xmlChar *) "http://creativecommons.org/ns#"); |
497 | |
498 | /* checking if the document has been marked as defined on the XMP Rights |
499 | * Management Schema */ |
500 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) LICENSE_MARKED"/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:Marked", xpathCtx); |
501 | if (xpathObj != NULL__null) { |
502 | if (xpathObj->nodesetval != NULL__null && |
503 | xpathObj->nodesetval->nodeNr != 0) |
504 | marked = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
505 | xmlXPathFreeObject (xpathObj); |
506 | } |
507 | |
508 | /* a) Not marked => No XMP Rights information */ |
509 | if (!marked) { |
510 | xmlFree (marked); |
511 | return NULL__null; |
512 | } |
513 | |
514 | license = ev_document_license_new (); |
515 | |
516 | /* b) Marked False => Public Domain, no copyrighted material and no |
517 | * license needed */ |
518 | if (g_strrstr ((char *) marked, "False") != NULL__null) { |
519 | license->text = g_strdup (_("This work is in the Public Domain"))g_strdup_inline (((char *) g_dgettext ("lector", "This work is in the Public Domain" ))); |
520 | /* c) Marked True => Copyrighted material */ |
521 | } else { |
522 | /* Checking usage terms as defined by the XMP Rights Management |
523 | * Schema. This field is recomended to be checked by Creative |
524 | * Commons */ |
525 | /* 1) checking for a suitable localized string */ |
526 | language_string = pango_language_to_string (ctk_get_default_language ())((const char *)ctk_get_default_language ()); |
527 | tags = g_strsplit (language_string, "-", -1); |
528 | i = g_strv_length (tags); |
529 | while (i-- && !license->text) { |
530 | tag = g_strdup (tags[0])g_strdup_inline (tags[0]); |
531 | for (j = 1; j <= i; j++) { |
532 | tag_aux = g_strdup_printf ("%s-%s", tag, tags[j]); |
533 | g_free (tag); |
534 | tag = tag_aux; |
535 | } |
536 | aux = g_strdup_printf (LICENSE_TEXT"/x:xmpmeta/rdf:RDF/rdf:Description/dc:rights/rdf:Alt/rdf:li[lang('%s')]", tag); |
537 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) aux, xpathCtx); |
538 | if (xpathObj != NULL__null) { |
539 | if (xpathObj->nodesetval != NULL__null && |
540 | xpathObj->nodesetval->nodeNr != 0) |
541 | license->text = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
542 | xmlXPathFreeObject (xpathObj); |
543 | } |
544 | g_free (tag); |
545 | g_free (aux); |
546 | } |
547 | g_strfreev(tags); |
548 | |
549 | /* 2) if not, use the default string */ |
550 | if (!license->text) { |
551 | aux = g_strdup_printf (LICENSE_TEXT"/x:xmpmeta/rdf:RDF/rdf:Description/dc:rights/rdf:Alt/rdf:li[lang('%s')]", "x-default"); |
552 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) aux, xpathCtx); |
553 | if (xpathObj != NULL__null) { |
554 | if (xpathObj->nodesetval != NULL__null && |
555 | xpathObj->nodesetval->nodeNr != 0) |
556 | license->text = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
557 | xmlXPathFreeObject (xpathObj); |
558 | } |
559 | g_free (aux); |
560 | } |
561 | |
562 | /* Checking the license URI as defined by the Creative Commons |
563 | * Schema. This field is recomended to be checked by Creative |
564 | * Commons */ |
565 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) LICENSE_URI"/x:xmpmeta/rdf:RDF/rdf:Description/cc:license/@rdf:resource", xpathCtx); |
566 | if (xpathObj != NULL__null) { |
567 | if (xpathObj->nodesetval != NULL__null && |
568 | xpathObj->nodesetval->nodeNr != 0) |
569 | license->uri = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
570 | xmlXPathFreeObject (xpathObj); |
571 | } |
572 | |
573 | /* Checking the web statement as defined by the XMP Rights |
574 | * Management Schema. Checking it out is a sort of above-and-beyond |
575 | * the basic recommendations by Creative Commons. It can be |
576 | * considered as a "reinforcement" approach to add certainty. */ |
577 | xpathObj = xmlXPathEvalExpression (BAD_CAST(xmlChar *) LICENSE_WEB_STATEMENT"/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:WebStatement", xpathCtx); |
578 | if (xpathObj != NULL__null) { |
579 | if (xpathObj->nodesetval != NULL__null && |
580 | xpathObj->nodesetval->nodeNr != 0) |
581 | license->web_statement = (gchar *)xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]); |
582 | xmlXPathFreeObject (xpathObj); |
583 | } |
584 | } |
585 | xmlFree (marked); |
586 | |
587 | if (!license->text && !license->uri && !license->web_statement) { |
588 | ev_document_license_free (license); |
589 | return NULL__null; |
590 | } |
591 | |
592 | return license; |
593 | } |
594 | |
595 | static void |
596 | pdf_document_parse_metadata (const gchar *metadata, |
597 | EvDocumentInfo *info) |
598 | { |
599 | xmlDocPtr doc; |
600 | xmlXPathContextPtr xpathCtx; |
601 | gchar *fmt; |
602 | |
603 | doc = xmlParseMemory (metadata, strlen (metadata)); |
604 | if (doc == NULL__null) |
605 | return; /* invalid xml metadata */ |
606 | |
607 | xpathCtx = xmlXPathNewContext (doc); |
608 | if (xpathCtx == NULL__null) { |
609 | xmlFreeDoc (doc); |
610 | return; /* invalid xpath context */ |
611 | } |
612 | |
613 | fmt = pdf_document_get_format_from_metadata (doc, xpathCtx); |
614 | if (fmt != NULL__null) { |
615 | g_free (info->format); |
616 | info->format = fmt; |
617 | } |
618 | |
619 | info->license = pdf_document_get_license_from_metadata (doc, xpathCtx); |
620 | |
621 | xmlXPathFreeContext (xpathCtx); |
622 | xmlFreeDoc (doc); |
623 | } |
624 | |
625 | |
626 | static EvDocumentInfo * |
627 | pdf_document_get_info (EvDocument *document) |
628 | { |
629 | EvDocumentInfo *info; |
630 | PopplerPageLayout layout; |
631 | PopplerPageMode mode; |
632 | PopplerViewerPreferences view_prefs; |
633 | PopplerPermissions permissions; |
634 | char *metadata; |
635 | gboolean linearized; |
636 | |
637 | info = g_new0 (EvDocumentInfo, 1)((EvDocumentInfo *) g_malloc0_n ((1), sizeof (EvDocumentInfo) )); |
638 | |
639 | info->fields_mask = EV_DOCUMENT_INFO_TITLE | |
640 | EV_DOCUMENT_INFO_FORMAT | |
641 | EV_DOCUMENT_INFO_AUTHOR | |
642 | EV_DOCUMENT_INFO_SUBJECT | |
643 | EV_DOCUMENT_INFO_KEYWORDS | |
644 | EV_DOCUMENT_INFO_LAYOUT | |
645 | EV_DOCUMENT_INFO_START_MODE | |
646 | EV_DOCUMENT_INFO_PERMISSIONS | |
647 | EV_DOCUMENT_INFO_UI_HINTS | |
648 | EV_DOCUMENT_INFO_CREATOR | |
649 | EV_DOCUMENT_INFO_PRODUCER | |
650 | EV_DOCUMENT_INFO_CREATION_DATE | |
651 | EV_DOCUMENT_INFO_MOD_DATE | |
652 | EV_DOCUMENT_INFO_LINEARIZED | |
653 | EV_DOCUMENT_INFO_N_PAGES | |
654 | EV_DOCUMENT_INFO_SECURITY | |
655 | EV_DOCUMENT_INFO_PAPER_SIZE | |
656 | EV_DOCUMENT_INFO_LICENSE; |
657 | |
658 | g_object_get (PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->document, |
659 | "title", &(info->title), |
660 | "format", &(info->format), |
661 | "author", &(info->author), |
662 | "subject", &(info->subject), |
663 | "keywords", &(info->keywords), |
664 | "page-mode", &mode, |
665 | "page-layout", &layout, |
666 | "viewer-preferences", &view_prefs, |
667 | "permissions", &permissions, |
668 | "creator", &(info->creator), |
669 | "producer", &(info->producer), |
670 | "linearized", &linearized, |
671 | "metadata", &metadata, |
672 | NULL__null); |
673 | |
674 | info->creation_date = (gint64) poppler_document_get_creation_date (PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->document); |
675 | info->modified_date = (gint64) poppler_document_get_modification_date (PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->document); |
676 | |
677 | if (metadata != NULL__null) { |
678 | pdf_document_parse_metadata (metadata, info); |
679 | g_free (metadata); |
680 | } |
681 | |
682 | info->n_pages = ev_document_get_n_pages (document); |
683 | |
684 | if (info->n_pages > 0) { |
685 | ev_document_get_page_size (document, 0, |
686 | &(info->paper_width), |
687 | &(info->paper_height)); |
688 | // Convert to mm. |
689 | info->paper_width = info->paper_width / 72.0f * 25.4f; |
690 | info->paper_height = info->paper_height / 72.0f * 25.4f; |
691 | } |
692 | |
693 | switch (layout) { |
694 | case POPPLER_PAGE_LAYOUT_SINGLE_PAGE: |
695 | info->layout = EV_DOCUMENT_LAYOUT_SINGLE_PAGE; |
696 | break; |
697 | case POPPLER_PAGE_LAYOUT_ONE_COLUMN: |
698 | info->layout = EV_DOCUMENT_LAYOUT_ONE_COLUMN; |
699 | break; |
700 | case POPPLER_PAGE_LAYOUT_TWO_COLUMN_LEFT: |
701 | info->layout = EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT; |
702 | break; |
703 | case POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT: |
704 | info->layout = EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT; |
705 | break; |
706 | case POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT: |
707 | info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT; |
708 | break; |
709 | case POPPLER_PAGE_LAYOUT_TWO_PAGE_RIGHT: |
710 | info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT; |
711 | break; |
712 | default: |
713 | break; |
714 | } |
715 | |
716 | switch (mode) { |
717 | case POPPLER_PAGE_MODE_NONE: |
718 | info->mode = EV_DOCUMENT_MODE_NONE; |
719 | break; |
720 | case POPPLER_PAGE_MODE_USE_THUMBS: |
721 | info->mode = EV_DOCUMENT_MODE_USE_THUMBS; |
722 | break; |
723 | case POPPLER_PAGE_MODE_USE_OC: |
724 | info->mode = EV_DOCUMENT_MODE_USE_OC; |
725 | break; |
726 | case POPPLER_PAGE_MODE_FULL_SCREEN: |
727 | info->mode = EV_DOCUMENT_MODE_FULL_SCREEN; |
728 | break; |
729 | case POPPLER_PAGE_MODE_USE_ATTACHMENTS: |
730 | info->mode = EV_DOCUMENT_MODE_USE_ATTACHMENTS; |
731 | default: |
732 | break; |
733 | } |
734 | |
735 | info->ui_hints = 0; |
736 | if (view_prefs & POPPLER_VIEWER_PREFERENCES_HIDE_TOOLBAR) { |
737 | info->ui_hints |= EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR; |
738 | } |
739 | if (view_prefs & POPPLER_VIEWER_PREFERENCES_HIDE_MENUBAR) { |
740 | info->ui_hints |= EV_DOCUMENT_UI_HINT_HIDE_MENUBAR; |
741 | } |
742 | if (view_prefs & POPPLER_VIEWER_PREFERENCES_HIDE_WINDOWUI) { |
743 | info->ui_hints |= EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI; |
744 | } |
745 | if (view_prefs & POPPLER_VIEWER_PREFERENCES_FIT_WINDOW) { |
746 | info->ui_hints |= EV_DOCUMENT_UI_HINT_FIT_WINDOW; |
747 | } |
748 | if (view_prefs & POPPLER_VIEWER_PREFERENCES_CENTER_WINDOW) { |
749 | info->ui_hints |= EV_DOCUMENT_UI_HINT_CENTER_WINDOW; |
750 | } |
751 | if (view_prefs & POPPLER_VIEWER_PREFERENCES_DISPLAY_DOC_TITLE) { |
752 | info->ui_hints |= EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE; |
753 | } |
754 | if (view_prefs & POPPLER_VIEWER_PREFERENCES_DIRECTION_RTL) { |
755 | info->ui_hints |= EV_DOCUMENT_UI_HINT_DIRECTION_RTL; |
756 | } |
757 | |
758 | info->permissions = 0; |
759 | if (permissions & POPPLER_PERMISSIONS_OK_TO_PRINT) { |
760 | info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT; |
761 | } |
762 | if (permissions & POPPLER_PERMISSIONS_OK_TO_MODIFY) { |
763 | info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY; |
764 | } |
765 | if (permissions & POPPLER_PERMISSIONS_OK_TO_COPY) { |
766 | info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_COPY; |
767 | } |
768 | if (permissions & POPPLER_PERMISSIONS_OK_TO_ADD_NOTES) { |
769 | info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES; |
770 | } |
771 | |
772 | if (ev_document_security_has_document_security (EV_DOCUMENT_SECURITY (document)((((EvDocumentSecurity*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((document)), ((ev_document_security_get_type ())))))))) { |
773 | /* translators: this is the document security state */ |
774 | info->security = g_strdup (_("Yes"))g_strdup_inline (((char *) g_dgettext ("lector", "Yes"))); |
775 | } else { |
776 | /* translators: this is the document security state */ |
777 | info->security = g_strdup (_("No"))g_strdup_inline (((char *) g_dgettext ("lector", "No"))); |
778 | } |
779 | |
780 | info->linearized = linearized ? g_strdup (_("Yes"))g_strdup_inline (((char *) g_dgettext ("lector", "Yes"))) : g_strdup (_("No"))g_strdup_inline (((char *) g_dgettext ("lector", "No"))); |
781 | |
782 | return info; |
783 | } |
784 | |
785 | static gboolean |
786 | pdf_document_get_backend_info (EvDocument *document, EvDocumentBackendInfo *info) |
787 | { |
788 | PopplerBackend backend; |
789 | |
790 | backend = poppler_get_backend (); |
791 | switch (backend) { |
792 | case POPPLER_BACKEND_CAIRO: |
793 | info->name = "poppler/cairo"; |
794 | break; |
795 | case POPPLER_BACKEND_SPLASH: |
796 | info->name = "poppler/splash"; |
797 | break; |
798 | default: |
799 | info->name = "poppler/unknown"; |
800 | break; |
801 | } |
802 | |
803 | info->version = poppler_get_version (); |
804 | |
805 | return TRUE(!(0)); |
806 | } |
807 | |
808 | static gboolean |
809 | pdf_document_support_synctex (EvDocument *document) |
810 | { |
811 | return TRUE(!(0)); |
812 | } |
813 | |
814 | static void |
815 | pdf_document_class_init (PdfDocumentClass *klass) |
816 | { |
817 | GObjectClass *g_object_class = G_OBJECT_CLASS (klass)((((GObjectClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((klass)), (((GType) ((20) << (2)))))))); |
818 | EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass)((((EvDocumentClass*) (void *) g_type_check_class_cast ((GTypeClass *) ((klass)), ((ev_document_get_type ())))))); |
819 | |
820 | g_object_class->dispose = pdf_document_dispose; |
821 | |
822 | ev_document_class->save = pdf_document_save; |
823 | ev_document_class->load = pdf_document_load; |
824 | ev_document_class->get_n_pages = pdf_document_get_n_pages; |
825 | ev_document_class->get_page = pdf_document_get_page; |
826 | ev_document_class->get_page_size = pdf_document_get_page_size; |
827 | ev_document_class->get_page_label = pdf_document_get_page_label; |
828 | ev_document_class->render = pdf_document_render; |
829 | ev_document_class->get_info = pdf_document_get_info; |
830 | ev_document_class->get_backend_info = pdf_document_get_backend_info; |
831 | ev_document_class->support_synctex = pdf_document_support_synctex; |
832 | } |
833 | |
834 | /* EvDocumentSecurity */ |
835 | static gboolean |
836 | pdf_document_has_document_security (EvDocumentSecurity *document_security) |
837 | { |
838 | /* FIXME: do we really need to have this? */ |
839 | return FALSE(0); |
840 | } |
841 | |
842 | static void |
843 | pdf_document_set_password (EvDocumentSecurity *document_security, |
844 | const char *password) |
845 | { |
846 | PdfDocument *document = PDF_DOCUMENT (document_security)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_security)), ((pdf_document_get_type ())))))); |
847 | |
848 | if (document->password) |
849 | g_free (document->password); |
850 | |
851 | document->password = g_strdup (password)g_strdup_inline (password); |
852 | } |
853 | |
854 | static void |
855 | pdf_document_security_iface_init (EvDocumentSecurityInterface *iface) |
856 | { |
857 | iface->has_document_security = pdf_document_has_document_security; |
858 | iface->set_password = pdf_document_set_password; |
859 | } |
860 | |
861 | static gdouble |
862 | pdf_document_fonts_get_progress (EvDocumentFonts *document_fonts) |
863 | { |
864 | PdfDocument *pdf_document = PDF_DOCUMENT (document_fonts)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_fonts)), ((pdf_document_get_type ())))))); |
865 | int n_pages; |
866 | |
867 | n_pages = pdf_document_get_n_pages (EV_DOCUMENT (pdf_document)((((EvDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((pdf_document)), ((ev_document_get_type ()))))))); |
868 | |
869 | return (double)pdf_document->fonts_scanned_pages / (double)n_pages; |
870 | } |
871 | |
872 | static gboolean |
873 | pdf_document_fonts_scan (EvDocumentFonts *document_fonts, |
874 | int n_pages) |
875 | { |
876 | PdfDocument *pdf_document = PDF_DOCUMENT (document_fonts)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_fonts)), ((pdf_document_get_type ())))))); |
877 | gboolean result; |
878 | |
879 | g_return_val_if_fail (PDF_IS_DOCUMENT (document_fonts), FALSE)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((document_fonts)); GType __t = ((pdf_document_get_type () )); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "PDF_IS_DOCUMENT (document_fonts)" ); return ((0)); } } while (0); |
880 | |
881 | if (pdf_document->font_info == NULL__null) { |
882 | pdf_document->font_info = poppler_font_info_new (pdf_document->document); |
883 | } |
884 | |
885 | if (pdf_document->fonts_iter) { |
886 | poppler_fonts_iter_free (pdf_document->fonts_iter); |
887 | } |
888 | |
889 | pdf_document->fonts_scanned_pages += n_pages; |
890 | |
891 | result = poppler_font_info_scan (pdf_document->font_info, n_pages, |
892 | &pdf_document->fonts_iter); |
893 | if (!result) { |
894 | pdf_document->fonts_scanned_pages = 0; |
895 | poppler_font_info_free (pdf_document->font_info); |
896 | pdf_document->font_info = NULL__null; |
897 | } |
898 | |
899 | return result; |
900 | } |
901 | |
902 | static const char * |
903 | font_type_to_string (PopplerFontType type) |
904 | { |
905 | switch (type) { |
906 | case POPPLER_FONT_TYPE_TYPE1: |
907 | return _("Type 1")((char *) g_dgettext ("lector", "Type 1")); |
908 | case POPPLER_FONT_TYPE_TYPE1C: |
909 | return _("Type 1C")((char *) g_dgettext ("lector", "Type 1C")); |
910 | case POPPLER_FONT_TYPE_TYPE3: |
911 | return _("Type 3")((char *) g_dgettext ("lector", "Type 3")); |
912 | case POPPLER_FONT_TYPE_TRUETYPE: |
913 | return _("TrueType")((char *) g_dgettext ("lector", "TrueType")); |
914 | case POPPLER_FONT_TYPE_CID_TYPE0: |
915 | return _("Type 1 (CID)")((char *) g_dgettext ("lector", "Type 1 (CID)")); |
916 | case POPPLER_FONT_TYPE_CID_TYPE0C: |
917 | return _("Type 1C (CID)")((char *) g_dgettext ("lector", "Type 1C (CID)")); |
918 | case POPPLER_FONT_TYPE_CID_TYPE2: |
919 | return _("TrueType (CID)")((char *) g_dgettext ("lector", "TrueType (CID)")); |
920 | default: |
921 | return _("Unknown font type")((char *) g_dgettext ("lector", "Unknown font type")); |
922 | } |
923 | } |
924 | |
925 | static void |
926 | pdf_document_fonts_fill_model (EvDocumentFonts *document_fonts, |
927 | CtkTreeModel *model) |
928 | { |
929 | PdfDocument *pdf_document = PDF_DOCUMENT (document_fonts)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_fonts)), ((pdf_document_get_type ())))))); |
930 | PopplerFontsIter *iter = pdf_document->fonts_iter; |
931 | |
932 | g_return_if_fail (PDF_IS_DOCUMENT (document_fonts))do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((document_fonts)); GType __t = ((pdf_document_get_type () )); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "PDF_IS_DOCUMENT (document_fonts)" ); return; } } while (0); |
933 | |
934 | if (!iter) |
935 | return; |
936 | |
937 | do { |
938 | CtkTreeIter list_iter; |
939 | const char *name; |
940 | const char *type; |
941 | const char *embedded; |
942 | char *details; |
943 | |
944 | name = poppler_fonts_iter_get_name (iter); |
945 | |
946 | if (name == NULL__null) { |
947 | name = _("No name")((char *) g_dgettext ("lector", "No name")); |
948 | } |
949 | |
950 | type = font_type_to_string ( |
951 | poppler_fonts_iter_get_font_type (iter)); |
952 | |
953 | if (poppler_fonts_iter_is_embedded (iter)) { |
954 | if (poppler_fonts_iter_is_subset (iter)) |
955 | embedded = _("Embedded subset")((char *) g_dgettext ("lector", "Embedded subset")); |
956 | else |
957 | embedded = _("Embedded")((char *) g_dgettext ("lector", "Embedded")); |
958 | } else { |
959 | embedded = _("Not embedded")((char *) g_dgettext ("lector", "Not embedded")); |
960 | } |
961 | |
962 | details = g_markup_printf_escaped ("%s\n%s", type, embedded); |
963 | |
964 | ctk_list_store_append (CTK_LIST_STORE (model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((model)), ((ctk_list_store_get_type ())))))), &list_iter); |
965 | ctk_list_store_set (CTK_LIST_STORE (model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((model)), ((ctk_list_store_get_type ())))))), &list_iter, |
966 | EV_DOCUMENT_FONTS_COLUMN_NAME, name, |
967 | EV_DOCUMENT_FONTS_COLUMN_DETAILS, details, |
968 | -1); |
969 | |
970 | g_free (details); |
971 | } while (poppler_fonts_iter_next (iter)); |
972 | } |
973 | |
974 | static void |
975 | pdf_document_document_fonts_iface_init (EvDocumentFontsInterface *iface) |
976 | { |
977 | iface->fill_model = pdf_document_fonts_fill_model; |
978 | iface->scan = pdf_document_fonts_scan; |
979 | iface->get_progress = pdf_document_fonts_get_progress; |
980 | } |
981 | |
982 | static gboolean |
983 | pdf_document_links_has_document_links (EvDocumentLinks *document_links) |
984 | { |
985 | PdfDocument *pdf_document = PDF_DOCUMENT (document_links)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_links)), ((pdf_document_get_type ())))))); |
986 | PopplerIndexIter *iter; |
987 | |
988 | g_return_val_if_fail (PDF_IS_DOCUMENT (document_links), FALSE)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((document_links)); GType __t = ((pdf_document_get_type () )); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "PDF_IS_DOCUMENT (document_links)" ); return ((0)); } } while (0); |
989 | |
990 | iter = poppler_index_iter_new (pdf_document->document); |
991 | if (iter == NULL__null) |
992 | return FALSE(0); |
993 | poppler_index_iter_free (iter); |
994 | |
995 | return TRUE(!(0)); |
996 | } |
997 | |
998 | static EvLinkDest * |
999 | ev_link_dest_from_dest (PdfDocument *pdf_document, |
1000 | PopplerDest *dest) |
1001 | { |
1002 | EvLinkDest *ev_dest = NULL__null; |
1003 | const char *unimplemented_dest = NULL__null; |
1004 | |
1005 | g_assert (dest != NULL)do { if (dest != __null) ; else g_assertion_message_expr (((gchar *) 0), "ev-poppler.cc", 1005, ((const char*) (__PRETTY_FUNCTION__ )), "dest != NULL"); } while (0); |
1006 | |
1007 | switch (dest->type) { |
1008 | case POPPLER_DEST_XYZ: { |
1009 | PopplerPage *poppler_page; |
1010 | double height; |
1011 | |
1012 | poppler_page = poppler_document_get_page (pdf_document->document, |
1013 | MAX (0, dest->page_num - 1)(((0) > (dest->page_num - 1)) ? (0) : (dest->page_num - 1))); |
1014 | poppler_page_get_size (poppler_page, NULL__null, &height); |
1015 | ev_dest = ev_link_dest_new_xyz (dest->page_num - 1, |
1016 | dest->left, |
1017 | height - MIN (height, dest->top)(((height) < (dest->top)) ? (height) : (dest->top)), |
1018 | dest->zoom, |
1019 | dest->change_left, |
1020 | dest->change_top, |
1021 | dest->change_zoom); |
1022 | g_object_unref (poppler_page); |
1023 | } |
1024 | break; |
1025 | case POPPLER_DEST_FITB: |
1026 | case POPPLER_DEST_FIT: |
1027 | ev_dest = ev_link_dest_new_fit (dest->page_num - 1); |
1028 | break; |
1029 | case POPPLER_DEST_FITBH: |
1030 | case POPPLER_DEST_FITH: { |
1031 | PopplerPage *poppler_page; |
1032 | double height; |
1033 | |
1034 | poppler_page = poppler_document_get_page (pdf_document->document, |
1035 | MAX (0, dest->page_num - 1)(((0) > (dest->page_num - 1)) ? (0) : (dest->page_num - 1))); |
1036 | poppler_page_get_size (poppler_page, NULL__null, &height); |
1037 | ev_dest = ev_link_dest_new_fith (dest->page_num - 1, |
1038 | height - MIN (height, dest->top)(((height) < (dest->top)) ? (height) : (dest->top)), |
1039 | dest->change_top); |
1040 | g_object_unref (poppler_page); |
1041 | } |
1042 | break; |
1043 | case POPPLER_DEST_FITBV: |
1044 | case POPPLER_DEST_FITV: |
1045 | ev_dest = ev_link_dest_new_fitv (dest->page_num - 1, |
1046 | dest->left, |
1047 | dest->change_left); |
1048 | break; |
1049 | case POPPLER_DEST_FITR: { |
1050 | PopplerPage *poppler_page; |
1051 | double height; |
1052 | |
1053 | poppler_page = poppler_document_get_page (pdf_document->document, |
1054 | MAX (0, dest->page_num - 1)(((0) > (dest->page_num - 1)) ? (0) : (dest->page_num - 1))); |
1055 | poppler_page_get_size (poppler_page, NULL__null, &height); |
1056 | ev_dest = ev_link_dest_new_fitr (dest->page_num - 1, |
1057 | dest->left, |
1058 | height - MIN (height, dest->bottom)(((height) < (dest->bottom)) ? (height) : (dest->bottom )), |
1059 | dest->right, |
1060 | height - MIN (height, dest->top)(((height) < (dest->top)) ? (height) : (dest->top))); |
1061 | g_object_unref (poppler_page); |
1062 | } |
1063 | break; |
1064 | case POPPLER_DEST_NAMED: |
1065 | ev_dest = ev_link_dest_new_named (dest->named_dest); |
1066 | break; |
1067 | case POPPLER_DEST_UNKNOWN: |
1068 | unimplemented_dest = "POPPLER_DEST_UNKNOWN"; |
1069 | break; |
1070 | } |
1071 | |
1072 | if (unimplemented_dest) { |
1073 | g_warning ("Unimplemented destination: %s, please post a " |
1074 | "bug report on Lector bug tracker " |
1075 | "(https://github.com/cafe-desktop/lector/issues) with a testcase.", |
1076 | unimplemented_dest); |
1077 | } |
1078 | |
1079 | if (!ev_dest) |
1080 | ev_dest = ev_link_dest_new_page (dest->page_num - 1); |
1081 | |
1082 | return ev_dest; |
1083 | } |
1084 | |
1085 | static EvLink * |
1086 | ev_link_from_action (PdfDocument *pdf_document, |
1087 | PopplerAction *action) |
1088 | { |
1089 | EvLink *link = NULL__null; |
1090 | EvLinkAction *ev_action = NULL__null; |
1091 | const char *unimplemented_action = NULL__null; |
1092 | |
1093 | switch (action->type) { |
1094 | case POPPLER_ACTION_NONE: |
1095 | break; |
1096 | case POPPLER_ACTION_GOTO_DEST: { |
1097 | EvLinkDest *dest; |
1098 | |
1099 | dest = ev_link_dest_from_dest (pdf_document, action->goto_dest.dest); |
1100 | ev_action = ev_link_action_new_dest (dest); |
1101 | } |
1102 | break; |
1103 | case POPPLER_ACTION_GOTO_REMOTE: { |
1104 | EvLinkDest *dest; |
1105 | |
1106 | dest = ev_link_dest_from_dest (pdf_document, action->goto_remote.dest); |
1107 | ev_action = ev_link_action_new_remote (dest, |
1108 | action->goto_remote.file_name); |
1109 | |
1110 | } |
1111 | break; |
1112 | case POPPLER_ACTION_LAUNCH: |
1113 | ev_action = ev_link_action_new_launch (action->launch.file_name, |
1114 | action->launch.params); |
1115 | break; |
1116 | case POPPLER_ACTION_URI: |
1117 | ev_action = ev_link_action_new_external_uri (action->uri.uri); |
1118 | break; |
1119 | case POPPLER_ACTION_NAMED: |
1120 | ev_action = ev_link_action_new_named (action->named.named_dest); |
1121 | break; |
1122 | case POPPLER_ACTION_MOVIE: |
1123 | unimplemented_action = "POPPLER_ACTION_MOVIE"; |
1124 | break; |
1125 | case POPPLER_ACTION_RENDITION: |
1126 | unimplemented_action = "POPPLER_ACTION_RENDITION"; |
1127 | break; |
1128 | case POPPLER_ACTION_OCG_STATE: { |
1129 | GList *on_list = NULL__null; |
1130 | GList *off_list = NULL__null; |
1131 | GList *toggle_list = NULL__null; |
1132 | GList *l, *m; |
1133 | |
1134 | for (l = action->ocg_state.state_list; l; l = g_list_next (l)((l) ? (((GList *)(l))->next) : __null)) { |
1135 | PopplerActionLayer *action_layer = (PopplerActionLayer *)l->data; |
1136 | |
1137 | for (m = action_layer->layers; m; m = g_list_next (m)((m) ? (((GList *)(m))->next) : __null)) { |
1138 | PopplerLayer *layer = (PopplerLayer *)m->data; |
1139 | EvLayer *ev_layer; |
1140 | |
1141 | ev_layer = ev_layer_new (poppler_layer_is_parent (layer), |
1142 | poppler_layer_get_radio_button_group_id (layer)); |
1143 | g_object_set_data_full (G_OBJECT (ev_layer)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ev_layer)), (((GType) ((20) << (2)))))))), |
1144 | "poppler-layer", |
1145 | g_object_ref (layer)((typename std::remove_reference<decltype (layer)>::type ) (g_object_ref) (layer)), |
1146 | (GDestroyNotify)g_object_unref); |
1147 | |
1148 | switch (action_layer->action) { |
1149 | case POPPLER_ACTION_LAYER_ON: |
1150 | on_list = g_list_prepend (on_list, ev_layer); |
1151 | break; |
1152 | case POPPLER_ACTION_LAYER_OFF: |
1153 | off_list = g_list_prepend (off_list, ev_layer); |
1154 | break; |
1155 | case POPPLER_ACTION_LAYER_TOGGLE: |
1156 | toggle_list = g_list_prepend (toggle_list, ev_layer); |
1157 | break; |
1158 | } |
1159 | } |
1160 | } |
1161 | |
1162 | /* The action takes the ownership of the lists */ |
1163 | ev_action = ev_link_action_new_layers_state (g_list_reverse (on_list), |
1164 | g_list_reverse (off_list), |
1165 | g_list_reverse (toggle_list)); |
1166 | |
1167 | |
1168 | } |
1169 | break; |
1170 | case POPPLER_ACTION_JAVASCRIPT: |
1171 | unimplemented_action = "POPPLER_ACTION_JAVASCRIPT"; |
1172 | break; |
1173 | case POPPLER_ACTION_UNKNOWN: |
1174 | unimplemented_action = "POPPLER_ACTION_UNKNOWN"; |
1175 | } |
1176 | |
1177 | if (unimplemented_action) { |
1178 | g_warning ("Unimplemented action: %s, please post a bug report " |
1179 | "on Lector bug tracker (https://github.com/cafe-desktop/lector/issues) " |
1180 | "with a testcase.", unimplemented_action); |
1181 | } |
1182 | |
1183 | link = ev_link_new (action->any.title, ev_action); |
1184 | |
1185 | return link; |
1186 | } |
1187 | |
1188 | static void |
1189 | build_tree (PdfDocument *pdf_document, |
1190 | CtkTreeModel *model, |
1191 | CtkTreeIter *parent, |
1192 | PopplerIndexIter *iter) |
1193 | { |
1194 | |
1195 | do { |
1196 | CtkTreeIter tree_iter; |
1197 | PopplerIndexIter *child; |
1198 | PopplerAction *action; |
1199 | EvLink *link = NULL__null; |
1200 | gboolean expand; |
1201 | char *title_markup; |
1202 | |
1203 | action = poppler_index_iter_get_action (iter); |
1204 | expand = poppler_index_iter_is_open (iter); |
1205 | |
1206 | if (!action) |
1207 | continue; |
1208 | |
1209 | link = ev_link_from_action (pdf_document, action); |
1210 | if (!link || strlen (ev_link_get_title (link)) <= 0) { |
1211 | poppler_action_free (action); |
1212 | if (link) |
1213 | g_object_unref (link); |
1214 | |
1215 | continue; |
1216 | } |
1217 | |
1218 | ctk_tree_store_append (CTK_TREE_STORE (model)((((CtkTreeStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((model)), ((ctk_tree_store_get_type ())))))), &tree_iter, parent); |
1219 | title_markup = g_markup_escape_text (ev_link_get_title (link), -1); |
1220 | |
1221 | ctk_tree_store_set (CTK_TREE_STORE (model)((((CtkTreeStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((model)), ((ctk_tree_store_get_type ())))))), &tree_iter, |
1222 | EV_DOCUMENT_LINKS_COLUMN_MARKUP, title_markup, |
1223 | EV_DOCUMENT_LINKS_COLUMN_LINK, link, |
1224 | EV_DOCUMENT_LINKS_COLUMN_EXPAND, expand, |
1225 | -1); |
1226 | |
1227 | g_free (title_markup); |
1228 | g_object_unref (link); |
1229 | |
1230 | child = poppler_index_iter_get_child (iter); |
1231 | if (child) |
1232 | build_tree (pdf_document, model, &tree_iter, child); |
1233 | poppler_index_iter_free (child); |
1234 | poppler_action_free (action); |
1235 | |
1236 | } while (poppler_index_iter_next (iter)); |
1237 | } |
1238 | |
1239 | static CtkTreeModel * |
1240 | pdf_document_links_get_links_model (EvDocumentLinks *document_links) |
1241 | { |
1242 | PdfDocument *pdf_document = PDF_DOCUMENT (document_links)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_links)), ((pdf_document_get_type ())))))); |
1243 | CtkTreeModel *model = NULL__null; |
1244 | PopplerIndexIter *iter; |
1245 | |
1246 | g_return_val_if_fail (PDF_IS_DOCUMENT (document_links), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((document_links)); GType __t = ((pdf_document_get_type () )); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "PDF_IS_DOCUMENT (document_links)" ); return (__null); } } while (0); |
1247 | |
1248 | iter = poppler_index_iter_new (pdf_document->document); |
1249 | /* Create the model if we have items*/ |
1250 | if (iter != NULL__null) { |
1251 | model = (CtkTreeModel *) ctk_tree_store_new (EV_DOCUMENT_LINKS_COLUMN_NUM_COLUMNS, |
1252 | G_TYPE_STRING((GType) ((16) << (2))), |
1253 | G_TYPE_OBJECT((GType) ((20) << (2))), |
1254 | G_TYPE_BOOLEAN((GType) ((5) << (2))), |
1255 | G_TYPE_STRING((GType) ((16) << (2)))); |
1256 | build_tree (pdf_document, model, NULL__null, iter); |
1257 | poppler_index_iter_free (iter); |
1258 | } |
1259 | |
1260 | return model; |
1261 | } |
1262 | |
1263 | static EvMappingList * |
1264 | pdf_document_links_get_links (EvDocumentLinks *document_links, |
1265 | EvPage *page) |
1266 | { |
1267 | PdfDocument *pdf_document; |
1268 | PopplerPage *poppler_page; |
1269 | GList *retval = NULL__null; |
1270 | GList *mapping_list; |
1271 | GList *list; |
1272 | double height; |
1273 | |
1274 | pdf_document = PDF_DOCUMENT (document_links)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_links)), ((pdf_document_get_type ())))))); |
1275 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
1276 | mapping_list = poppler_page_get_link_mapping (poppler_page); |
1277 | poppler_page_get_size (poppler_page, NULL__null, &height); |
1278 | |
1279 | for (list = mapping_list; list; list = list->next) { |
1280 | PopplerLinkMapping *link_mapping; |
1281 | EvMapping *ev_link_mapping; |
1282 | |
1283 | link_mapping = (PopplerLinkMapping *)list->data; |
1284 | ev_link_mapping = g_new (EvMapping, 1)((EvMapping *) g_malloc_n ((1), sizeof (EvMapping))); |
1285 | ev_link_mapping->data = ev_link_from_action (pdf_document, |
1286 | link_mapping->action); |
1287 | ev_link_mapping->area.x1 = link_mapping->area.x1; |
1288 | ev_link_mapping->area.x2 = link_mapping->area.x2; |
1289 | /* Invert this for X-style coordinates */ |
1290 | ev_link_mapping->area.y1 = height - link_mapping->area.y2; |
1291 | ev_link_mapping->area.y2 = height - link_mapping->area.y1; |
1292 | |
1293 | retval = g_list_prepend (retval, ev_link_mapping); |
1294 | } |
1295 | |
1296 | poppler_page_free_link_mapping (mapping_list); |
1297 | |
1298 | return ev_mapping_list_new (page->index, g_list_reverse (retval), (GDestroyNotify)g_object_unref); |
1299 | } |
1300 | |
1301 | static EvLinkDest * |
1302 | pdf_document_links_find_link_dest (EvDocumentLinks *document_links, |
1303 | const gchar *link_name) |
1304 | { |
1305 | PdfDocument *pdf_document; |
1306 | PopplerDest *dest; |
1307 | EvLinkDest *ev_dest = NULL__null; |
1308 | |
1309 | pdf_document = PDF_DOCUMENT (document_links)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_links)), ((pdf_document_get_type ())))))); |
1310 | dest = poppler_document_find_dest (pdf_document->document, |
1311 | link_name); |
1312 | if (dest) { |
1313 | ev_dest = ev_link_dest_from_dest (pdf_document, dest); |
1314 | poppler_dest_free (dest); |
1315 | } |
1316 | |
1317 | return ev_dest; |
1318 | } |
1319 | |
1320 | static gint |
1321 | pdf_document_links_find_link_page (EvDocumentLinks *document_links, |
1322 | const gchar *link_name) |
1323 | { |
1324 | PdfDocument *pdf_document; |
1325 | PopplerDest *dest; |
1326 | gint retval = -1; |
1327 | |
1328 | pdf_document = PDF_DOCUMENT (document_links)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_links)), ((pdf_document_get_type ())))))); |
1329 | dest = poppler_document_find_dest (pdf_document->document, |
1330 | link_name); |
1331 | if (dest) { |
1332 | retval = dest->page_num - 1; |
1333 | poppler_dest_free (dest); |
1334 | } |
1335 | |
1336 | return retval; |
1337 | } |
1338 | |
1339 | static void |
1340 | pdf_document_document_links_iface_init (EvDocumentLinksInterface *iface) |
1341 | { |
1342 | iface->has_document_links = pdf_document_links_has_document_links; |
1343 | iface->get_links_model = pdf_document_links_get_links_model; |
1344 | iface->get_links = pdf_document_links_get_links; |
1345 | iface->find_link_dest = pdf_document_links_find_link_dest; |
1346 | iface->find_link_page = pdf_document_links_find_link_page; |
1347 | } |
1348 | |
1349 | static EvMappingList * |
1350 | pdf_document_images_get_image_mapping (EvDocumentImages *document_images, |
1351 | EvPage *page) |
1352 | { |
1353 | GList *retval = NULL__null; |
1354 | PopplerPage *poppler_page; |
1355 | GList *mapping_list; |
1356 | GList *list; |
1357 | |
1358 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
1359 | mapping_list = poppler_page_get_image_mapping (poppler_page); |
1360 | |
1361 | for (list = mapping_list; list; list = list->next) { |
1362 | PopplerImageMapping *image_mapping; |
1363 | EvMapping *ev_image_mapping; |
1364 | |
1365 | image_mapping = (PopplerImageMapping *)list->data; |
1366 | |
1367 | ev_image_mapping = g_new (EvMapping, 1)((EvMapping *) g_malloc_n ((1), sizeof (EvMapping))); |
1368 | |
1369 | ev_image_mapping->data = ev_image_new (page->index, image_mapping->image_id); |
1370 | ev_image_mapping->area.x1 = image_mapping->area.x1; |
1371 | ev_image_mapping->area.y1 = image_mapping->area.y1; |
1372 | ev_image_mapping->area.x2 = image_mapping->area.x2; |
1373 | ev_image_mapping->area.y2 = image_mapping->area.y2; |
1374 | |
1375 | retval = g_list_prepend (retval, ev_image_mapping); |
1376 | } |
1377 | |
1378 | poppler_page_free_image_mapping (mapping_list); |
1379 | |
1380 | return ev_mapping_list_new (page->index, g_list_reverse (retval), (GDestroyNotify)g_object_unref); |
1381 | } |
1382 | |
1383 | GdkPixbuf * |
1384 | pdf_document_images_get_image (EvDocumentImages *document_images, |
1385 | EvImage *image) |
1386 | { |
1387 | GdkPixbuf *retval = NULL__null; |
1388 | PdfDocument *pdf_document; |
1389 | PopplerPage *poppler_page; |
1390 | cairo_surface_t *surface; |
1391 | |
1392 | pdf_document = PDF_DOCUMENT (document_images)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_images)), ((pdf_document_get_type ())))))); |
1393 | poppler_page = poppler_document_get_page (pdf_document->document, |
1394 | ev_image_get_page (image)); |
1395 | |
1396 | surface = poppler_page_get_image (poppler_page, ev_image_get_id (image)); |
1397 | if (surface) { |
1398 | retval = ev_document_misc_pixbuf_from_surface (surface); |
1399 | cairo_surface_destroy (surface); |
1400 | } |
1401 | |
1402 | g_object_unref (poppler_page); |
1403 | |
1404 | return retval; |
1405 | } |
1406 | |
1407 | static void |
1408 | pdf_document_document_images_iface_init (EvDocumentImagesInterface *iface) |
1409 | { |
1410 | iface->get_image_mapping = pdf_document_images_get_image_mapping; |
1411 | iface->get_image = pdf_document_images_get_image; |
1412 | } |
1413 | |
1414 | static GdkPixbuf * |
1415 | make_thumbnail_for_page (PopplerPage *poppler_page, |
1416 | EvRenderContext *rc, |
1417 | gint width, |
1418 | gint height) |
1419 | { |
1420 | GdkPixbuf *pixbuf; |
1421 | cairo_surface_t *surface; |
1422 | |
1423 | ev_document_fc_mutex_lock (); |
1424 | surface = pdf_page_render (poppler_page, width, height, rc); |
1425 | ev_document_fc_mutex_unlock (); |
1426 | |
1427 | pixbuf = ev_document_misc_pixbuf_from_surface (surface); |
1428 | cairo_surface_destroy (surface); |
1429 | |
1430 | return pixbuf; |
1431 | } |
1432 | |
1433 | static GdkPixbuf * |
1434 | pdf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails, |
1435 | EvRenderContext *rc, |
1436 | gboolean border) |
1437 | { |
1438 | PdfDocument *pdf_document = PDF_DOCUMENT (document_thumbnails)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_thumbnails)), ((pdf_document_get_type ())))))); |
1439 | PopplerPage *poppler_page; |
1440 | cairo_surface_t *surface; |
1441 | GdkPixbuf *pixbuf = NULL__null; |
1442 | GdkPixbuf *border_pixbuf; |
1443 | gint width, height; |
1444 | |
1445 | poppler_page = POPPLER_PAGE (rc->page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((rc->page->backend_page)), ((poppler_page_get_type( ))))))); |
1446 | |
1447 | pdf_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (pdf_document)((((EvDocumentThumbnails*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((pdf_document)), ((ev_document_thumbnails_get_type ())))))), |
1448 | rc, &width, &height); |
1449 | |
1450 | surface = poppler_page_get_thumbnail (poppler_page); |
1451 | if (surface) { |
1452 | pixbuf = ev_document_misc_pixbuf_from_surface (surface); |
1453 | cairo_surface_destroy (surface); |
1454 | } |
1455 | |
1456 | if (pixbuf != NULL__null) { |
1457 | int thumb_width = (rc->rotation == 90 || rc->rotation == 270) ? |
1458 | gdk_pixbuf_get_height (pixbuf) : |
1459 | gdk_pixbuf_get_width (pixbuf); |
1460 | |
1461 | if (thumb_width == width) { |
1462 | GdkPixbuf *rotated_pixbuf; |
1463 | |
1464 | rotated_pixbuf = gdk_pixbuf_rotate_simple (pixbuf, |
1465 | (GdkPixbufRotation) (360 - rc->rotation)); |
1466 | g_object_unref (pixbuf); |
1467 | pixbuf = rotated_pixbuf; |
1468 | } else { |
1469 | /* The provided thumbnail has a different size */ |
1470 | g_object_unref (pixbuf); |
1471 | pixbuf = make_thumbnail_for_page (poppler_page, rc, width, height); |
1472 | } |
1473 | } else { |
1474 | /* There is no provided thumbnail. We need to make one. */ |
1475 | pixbuf = make_thumbnail_for_page (poppler_page, rc, width, height); |
1476 | } |
1477 | |
1478 | if (border && pixbuf) { |
1479 | border_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, pixbuf); |
1480 | g_object_unref (pixbuf); |
1481 | pixbuf = border_pixbuf; |
1482 | } |
1483 | |
1484 | return pixbuf; |
1485 | } |
1486 | |
1487 | static void |
1488 | pdf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document_thumbnails, |
1489 | EvRenderContext *rc, |
1490 | gint *width, |
1491 | gint *height) |
1492 | { |
1493 | double page_width, page_height; |
1494 | |
1495 | poppler_page_get_size (POPPLER_PAGE (rc->page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((rc->page->backend_page)), ((poppler_page_get_type( ))))))), |
1496 | &page_width, &page_height); |
1497 | |
1498 | *width = MAX ((gint)(page_width * rc->scale + 0.5), 1)((((gint)(page_width * rc->scale + 0.5)) > (1)) ? ((gint )(page_width * rc->scale + 0.5)) : (1)); |
1499 | *height = MAX ((gint)(page_height * rc->scale + 0.5), 1)((((gint)(page_height * rc->scale + 0.5)) > (1)) ? ((gint )(page_height * rc->scale + 0.5)) : (1)); |
1500 | |
1501 | if (rc->rotation == 90 || rc->rotation == 270) { |
1502 | gint temp; |
1503 | |
1504 | temp = *width; |
1505 | *width = *height; |
1506 | *height = temp; |
1507 | } |
1508 | } |
1509 | |
1510 | static void |
1511 | pdf_document_document_thumbnails_iface_init (EvDocumentThumbnailsInterface *iface) |
1512 | { |
1513 | iface->get_thumbnail = pdf_document_thumbnails_get_thumbnail; |
1514 | iface->get_dimensions = pdf_document_thumbnails_get_dimensions; |
1515 | } |
1516 | |
1517 | |
1518 | static GList * |
1519 | pdf_document_find_find_text (EvDocumentFind *document_find, |
1520 | EvPage *page, |
1521 | const gchar *text, |
1522 | gboolean case_sensitive) |
1523 | { |
1524 | GList *matches, *l; |
1525 | PopplerPage *poppler_page; |
1526 | gdouble height; |
1527 | GList *retval = NULL__null; |
1528 | PopplerFindFlags options = POPPLER_FIND_DEFAULT; |
1529 | |
1530 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return (__null); } } while (0); |
1531 | g_return_val_if_fail (text != NULL, NULL)do { if ((text != __null)) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__PRETTY_FUNCTION__)), "text != NULL" ); return (__null); } } while (0); |
1532 | |
1533 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
1534 | |
1535 | if (case_sensitive) |
1536 | options = POPPLER_FIND_CASE_SENSITIVE; |
1537 | |
1538 | matches = poppler_page_find_text_with_options (poppler_page, text, options); |
1539 | if (!matches) |
1540 | return NULL__null; |
1541 | |
1542 | poppler_page_get_size (poppler_page, NULL__null, &height); |
1543 | for (l = matches; l && l->data; l = g_list_next (l)((l) ? (((GList *)(l))->next) : __null)) { |
1544 | PopplerRectangle *rect = (PopplerRectangle *)l->data; |
1545 | EvRectangle *ev_rect; |
1546 | |
1547 | ev_rect = ev_rectangle_new (); |
1548 | ev_rect->x1 = rect->x1; |
1549 | ev_rect->x2 = rect->x2; |
1550 | /* Invert this for X-style coordinates */ |
1551 | ev_rect->y1 = height - rect->y2; |
1552 | ev_rect->y2 = height - rect->y1; |
1553 | |
1554 | retval = g_list_prepend (retval, ev_rect); |
1555 | } |
1556 | |
1557 | g_list_foreach (matches, (GFunc)poppler_rectangle_free, NULL__null); |
1558 | g_list_free (matches); |
1559 | |
1560 | return g_list_reverse (retval); |
1561 | } |
1562 | |
1563 | static void |
1564 | pdf_document_find_iface_init (EvDocumentFindInterface *iface) |
1565 | { |
1566 | iface->find_text = pdf_document_find_find_text; |
1567 | } |
1568 | |
1569 | static void |
1570 | pdf_print_context_free (PdfPrintContext *ctx) |
1571 | { |
1572 | if (!ctx) |
1573 | return; |
1574 | |
1575 | #ifdef HAVE_CAIRO_PRINT |
1576 | if (ctx->cr) { |
1577 | cairo_destroy (ctx->cr); |
1578 | ctx->cr = NULL__null; |
1579 | } |
1580 | #else |
1581 | if (ctx->ps_file) { |
1582 | poppler_ps_file_free (ctx->ps_file); |
1583 | ctx->ps_file = NULL__null; |
1584 | } |
1585 | #endif |
1586 | g_free (ctx); |
1587 | } |
1588 | |
1589 | static void |
1590 | pdf_document_file_exporter_begin (EvFileExporter *exporter, |
1591 | EvFileExporterContext *fc) |
1592 | { |
1593 | PdfDocument *pdf_document = PDF_DOCUMENT (exporter)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((exporter)), ((pdf_document_get_type ())))))); |
1594 | PdfPrintContext *ctx; |
1595 | #ifdef HAVE_CAIRO_PRINT |
1596 | cairo_surface_t *surface = NULL__null; |
1597 | #endif |
1598 | |
1599 | if (pdf_document->print_ctx) |
1600 | pdf_print_context_free (pdf_document->print_ctx); |
1601 | pdf_document->print_ctx = g_new0 (PdfPrintContext, 1)((PdfPrintContext *) g_malloc0_n ((1), sizeof (PdfPrintContext ))); |
1602 | ctx = pdf_document->print_ctx; |
1603 | ctx->format = fc->format; |
1604 | |
1605 | #ifdef HAVE_CAIRO_PRINT |
1606 | ctx->pages_per_sheet = CLAMP (fc->pages_per_sheet, 1, 16)(((fc->pages_per_sheet) > (16)) ? (16) : (((fc->pages_per_sheet ) < (1)) ? (1) : (fc->pages_per_sheet))); |
1607 | |
1608 | ctx->paper_width = fc->paper_width; |
1609 | ctx->paper_height = fc->paper_height; |
1610 | |
1611 | switch (fc->pages_per_sheet) { |
1612 | default: |
1613 | case 1: |
1614 | ctx->pages_x = 1; |
1615 | ctx->pages_y = 1; |
1616 | break; |
1617 | case 2: |
1618 | ctx->pages_x = 1; |
1619 | ctx->pages_y = 2; |
1620 | break; |
1621 | case 4: |
1622 | ctx->pages_x = 2; |
1623 | ctx->pages_y = 2; |
1624 | break; |
1625 | case 6: |
1626 | ctx->pages_x = 2; |
1627 | ctx->pages_y = 3; |
1628 | break; |
1629 | case 9: |
1630 | ctx->pages_x = 3; |
1631 | ctx->pages_y = 3; |
1632 | break; |
1633 | case 16: |
1634 | ctx->pages_x = 4; |
1635 | ctx->pages_y = 4; |
1636 | break; |
1637 | } |
1638 | |
1639 | ctx->pages_printed = 0; |
1640 | |
1641 | switch (fc->format) { |
1642 | case EV_FILE_FORMAT_PS: |
1643 | #ifdef HAVE_CAIRO_PS1 |
1644 | surface = cairo_ps_surface_create (fc->filename, fc->paper_width, fc->paper_height); |
1645 | #endif |
1646 | break; |
1647 | case EV_FILE_FORMAT_PDF: |
1648 | #ifdef HAVE_CAIRO_PDF1 |
1649 | surface = cairo_pdf_surface_create (fc->filename, fc->paper_width, fc->paper_height); |
1650 | #endif |
1651 | break; |
1652 | default: |
1653 | g_assert_not_reached ()do { g_assertion_message_expr (((gchar*) 0), "ev-poppler.cc", 1653, ((const char*) (__PRETTY_FUNCTION__)), __null); } while (0); |
This statement is never executed | |
1654 | } |
1655 | |
1656 | ctx->cr = cairo_create (surface); |
1657 | cairo_surface_destroy (surface); |
1658 | |
1659 | #else /* HAVE_CAIRO_PRINT */ |
1660 | if (ctx->format == EV_FILE_FORMAT_PS) { |
1661 | ctx->ps_file = poppler_ps_file_new (pdf_document->document, |
1662 | fc->filename, fc->first_page, |
1663 | fc->last_page - fc->first_page + 1); |
1664 | poppler_ps_file_set_paper_size (ctx->ps_file, fc->paper_width, fc->paper_height); |
1665 | poppler_ps_file_set_duplex (ctx->ps_file, fc->duplex); |
1666 | } |
1667 | #endif /* HAVE_CAIRO_PRINT */ |
1668 | } |
1669 | |
1670 | static void |
1671 | pdf_document_file_exporter_begin_page (EvFileExporter *exporter) |
1672 | { |
1673 | PdfDocument *pdf_document = PDF_DOCUMENT (exporter)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((exporter)), ((pdf_document_get_type ())))))); |
1674 | PdfPrintContext *ctx = pdf_document->print_ctx; |
1675 | |
1676 | g_return_if_fail (pdf_document->print_ctx != NULL)do { if ((pdf_document->print_ctx != __null)) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__PRETTY_FUNCTION__)), "pdf_document->print_ctx != NULL" ); return; } } while (0); |
1677 | |
1678 | ctx->pages_printed = 0; |
1679 | |
1680 | #ifdef HAVE_CAIRO_PRINT |
1681 | if (ctx->paper_width > ctx->paper_height) { |
1682 | if (ctx->format == EV_FILE_FORMAT_PS) { |
1683 | cairo_ps_surface_set_size (cairo_get_target (ctx->cr), |
1684 | ctx->paper_height, |
1685 | ctx->paper_width); |
1686 | } else if (ctx->format == EV_FILE_FORMAT_PDF) { |
1687 | cairo_pdf_surface_set_size (cairo_get_target (ctx->cr), |
1688 | ctx->paper_height, |
1689 | ctx->paper_width); |
1690 | } |
1691 | } |
1692 | #endif /* HAVE_CAIRO_PRINT */ |
1693 | } |
1694 | |
1695 | static void |
1696 | pdf_document_file_exporter_do_page (EvFileExporter *exporter, |
1697 | EvRenderContext *rc) |
1698 | { |
1699 | PdfDocument *pdf_document = PDF_DOCUMENT (exporter)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((exporter)), ((pdf_document_get_type ())))))); |
1700 | PdfPrintContext *ctx = pdf_document->print_ctx; |
1701 | PopplerPage *poppler_page; |
1702 | #ifdef HAVE_CAIRO_PRINT |
1703 | gdouble page_width, page_height; |
1704 | gint x, y; |
1705 | gboolean rotate; |
1706 | gdouble width, height; |
1707 | gdouble pwidth, pheight; |
1708 | gdouble xscale, yscale; |
1709 | #endif |
1710 | |
1711 | g_return_if_fail (pdf_document->print_ctx != NULL)do { if ((pdf_document->print_ctx != __null)) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__PRETTY_FUNCTION__)), "pdf_document->print_ctx != NULL" ); return; } } while (0); |
1712 | |
1713 | poppler_page = POPPLER_PAGE (rc->page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((rc->page->backend_page)), ((poppler_page_get_type( ))))))); |
1714 | |
1715 | #ifdef HAVE_CAIRO_PRINT |
1716 | x = (ctx->pages_printed % ctx->pages_per_sheet) % ctx->pages_x; |
1717 | y = (ctx->pages_printed % ctx->pages_per_sheet) / ctx->pages_x; |
1718 | poppler_page_get_size (poppler_page, &page_width, &page_height); |
1719 | |
1720 | if (page_width > page_height && page_width > ctx->paper_width) { |
1721 | rotate = TRUE(!(0)); |
1722 | } else { |
1723 | rotate = FALSE(0); |
1724 | } |
1725 | |
1726 | /* Use always portrait mode and rotate when necessary */ |
1727 | if (ctx->paper_width > ctx->paper_height) { |
1728 | width = ctx->paper_height; |
1729 | height = ctx->paper_width; |
1730 | rotate = !rotate; |
1731 | } else { |
1732 | width = ctx->paper_width; |
1733 | height = ctx->paper_height; |
1734 | } |
1735 | |
1736 | if (ctx->pages_per_sheet == 2 || ctx->pages_per_sheet == 6) { |
1737 | rotate = !rotate; |
1738 | } |
1739 | |
1740 | if (rotate) { |
1741 | gint tmp1; |
1742 | gdouble tmp2; |
1743 | |
1744 | tmp1 = x; |
1745 | x = y; |
1746 | y = tmp1; |
1747 | |
1748 | tmp2 = page_width; |
1749 | page_width = page_height; |
1750 | page_height = tmp2; |
1751 | } |
1752 | |
1753 | pwidth = width / ctx->pages_x; |
1754 | pheight = height / ctx->pages_y; |
1755 | |
1756 | if ((page_width > pwidth || page_height > pheight) || |
1757 | (page_width < pwidth && page_height < pheight)) { |
1758 | xscale = pwidth / page_width; |
1759 | yscale = pheight / page_height; |
1760 | |
1761 | if (yscale < xscale) { |
1762 | xscale = yscale; |
1763 | } else { |
1764 | yscale = xscale; |
1765 | } |
1766 | |
1767 | } else { |
1768 | xscale = yscale = 1; |
1769 | } |
1770 | |
1771 | /* TODO: center */ |
1772 | |
1773 | cairo_save (ctx->cr); |
1774 | if (rotate) { |
1775 | cairo_matrix_t matrix; |
1776 | |
1777 | cairo_translate (ctx->cr, (2 * y + 1) * pwidth, 0); |
1778 | cairo_matrix_init (&matrix, |
1779 | 0, 1, |
1780 | -1, 0, |
1781 | 0, 0); |
1782 | cairo_transform (ctx->cr, &matrix); |
1783 | } |
1784 | |
1785 | cairo_translate (ctx->cr, |
1786 | x * (rotate ? pheight : pwidth), |
1787 | y * (rotate ? pwidth : pheight)); |
1788 | cairo_scale (ctx->cr, xscale, yscale); |
1789 | |
1790 | poppler_page_render_for_printing (poppler_page, ctx->cr); |
1791 | |
1792 | ctx->pages_printed++; |
1793 | |
1794 | cairo_restore (ctx->cr); |
1795 | #else /* HAVE_CAIRO_PRINT */ |
1796 | if (ctx->format == EV_FILE_FORMAT_PS) |
1797 | poppler_page_render_to_ps (poppler_page, ctx->ps_file); |
1798 | #endif /* HAVE_CAIRO_PRINT */ |
1799 | } |
1800 | |
1801 | static void |
1802 | pdf_document_file_exporter_end_page (EvFileExporter *exporter) |
1803 | { |
1804 | PdfDocument *pdf_document = PDF_DOCUMENT (exporter)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((exporter)), ((pdf_document_get_type ())))))); |
1805 | PdfPrintContext *ctx = pdf_document->print_ctx; |
1806 | |
1807 | g_return_if_fail (pdf_document->print_ctx != NULL)do { if ((pdf_document->print_ctx != __null)) { } else { g_return_if_fail_warning (((gchar*) 0), ((const char*) (__PRETTY_FUNCTION__)), "pdf_document->print_ctx != NULL" ); return; } } while (0); |
1808 | |
1809 | #ifdef HAVE_CAIRO_PRINT |
1810 | cairo_show_page (ctx->cr); |
1811 | #endif |
1812 | } |
1813 | |
1814 | static void |
1815 | pdf_document_file_exporter_end (EvFileExporter *exporter) |
1816 | { |
1817 | PdfDocument *pdf_document = PDF_DOCUMENT (exporter)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((exporter)), ((pdf_document_get_type ())))))); |
1818 | |
1819 | pdf_print_context_free (pdf_document->print_ctx); |
1820 | pdf_document->print_ctx = NULL__null; |
1821 | } |
1822 | |
1823 | static EvFileExporterCapabilities |
1824 | pdf_document_file_exporter_get_capabilities (EvFileExporter *exporter) |
1825 | { |
1826 | return (EvFileExporterCapabilities) ( |
1827 | EV_FILE_EXPORTER_CAN_PAGE_SET | |
1828 | EV_FILE_EXPORTER_CAN_COPIES | |
1829 | EV_FILE_EXPORTER_CAN_COLLATE | |
1830 | EV_FILE_EXPORTER_CAN_REVERSE | |
1831 | EV_FILE_EXPORTER_CAN_SCALE | |
1832 | #ifdef HAVE_CAIRO_PRINT |
1833 | EV_FILE_EXPORTER_CAN_NUMBER_UP | |
1834 | #endif |
1835 | |
1836 | #ifdef HAVE_CAIRO_PDF1 |
1837 | EV_FILE_EXPORTER_CAN_GENERATE_PDF | |
1838 | #endif |
1839 | EV_FILE_EXPORTER_CAN_GENERATE_PS); |
1840 | } |
1841 | |
1842 | static void |
1843 | pdf_document_file_exporter_iface_init (EvFileExporterInterface *iface) |
1844 | { |
1845 | iface->begin = pdf_document_file_exporter_begin; |
1846 | iface->begin_page = pdf_document_file_exporter_begin_page; |
1847 | iface->do_page = pdf_document_file_exporter_do_page; |
1848 | iface->end_page = pdf_document_file_exporter_end_page; |
1849 | iface->end = pdf_document_file_exporter_end; |
1850 | iface->get_capabilities = pdf_document_file_exporter_get_capabilities; |
1851 | } |
1852 | |
1853 | /* EvDocumentPrint */ |
1854 | static void |
1855 | pdf_document_print_print_page (EvDocumentPrint *document, |
1856 | EvPage *page, |
1857 | cairo_t *cr) |
1858 | { |
1859 | poppler_page_render_for_printing (POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))), cr); |
1860 | } |
1861 | |
1862 | static void |
1863 | pdf_document_document_print_iface_init (EvDocumentPrintInterface *iface) |
1864 | { |
1865 | iface->print_page = pdf_document_print_print_page; |
1866 | } |
1867 | |
1868 | static void |
1869 | pdf_selection_render_selection (EvSelection *selection, |
1870 | EvRenderContext *rc, |
1871 | cairo_surface_t **surface, |
1872 | EvRectangle *points, |
1873 | EvRectangle *old_points, |
1874 | EvSelectionStyle style, |
1875 | CdkColor *text, |
1876 | CdkColor *base) |
1877 | { |
1878 | PopplerPage *poppler_page; |
1879 | cairo_t *cr; |
1880 | PopplerColor text_color, base_color; |
1881 | double width_points, height_points; |
1882 | gint width, height; |
1883 | |
1884 | poppler_page = POPPLER_PAGE (rc->page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((rc->page->backend_page)), ((poppler_page_get_type( ))))))); |
1885 | |
1886 | poppler_page_get_size (poppler_page, |
1887 | &width_points, &height_points); |
1888 | width = (int) ((width_points * rc->scale) + 0.5); |
1889 | height = (int) ((height_points * rc->scale) + 0.5); |
1890 | |
1891 | text_color.red = text->red; |
1892 | text_color.green = text->green; |
1893 | text_color.blue = text->blue; |
1894 | |
1895 | base_color.red = base->red; |
1896 | base_color.green = base->green; |
1897 | base_color.blue = base->blue; |
1898 | |
1899 | if (*surface == NULL__null) { |
1900 | *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, |
1901 | width, height); |
1902 | |
1903 | } |
1904 | |
1905 | cr = cairo_create (*surface); |
1906 | cairo_scale (cr, rc->scale, rc->scale); |
1907 | cairo_surface_set_device_offset (*surface, 0, 0); |
1908 | memset (cairo_image_surface_get_data (*surface), 0x00, |
1909 | cairo_image_surface_get_height (*surface) * |
1910 | cairo_image_surface_get_stride (*surface)); |
1911 | poppler_page_render_selection (poppler_page, |
1912 | cr, |
1913 | (PopplerRectangle *)points, |
1914 | (PopplerRectangle *)old_points, |
1915 | (PopplerSelectionStyle)style, |
1916 | &text_color, |
1917 | &base_color); |
1918 | cairo_destroy (cr); |
1919 | } |
1920 | |
1921 | static gchar * |
1922 | pdf_selection_get_selected_text (EvSelection *selection, |
1923 | EvPage *page, |
1924 | EvSelectionStyle style, |
1925 | EvRectangle *points) |
1926 | { |
1927 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return (__null); } } while (0); |
1928 | |
1929 | return poppler_page_get_selected_text (POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))), |
1930 | (PopplerSelectionStyle)style, |
1931 | (PopplerRectangle *)points); |
1932 | } |
1933 | |
1934 | static cairo_region_t * |
1935 | pdf_selection_get_selection_region (EvSelection *selection, |
1936 | EvRenderContext *rc, |
1937 | EvSelectionStyle style, |
1938 | EvRectangle *points) |
1939 | { |
1940 | PopplerPage *poppler_page; |
1941 | cairo_region_t *retval; |
1942 | |
1943 | poppler_page = POPPLER_PAGE (rc->page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((rc->page->backend_page)), ((poppler_page_get_type( ))))))); |
1944 | retval = poppler_page_get_selected_region (poppler_page, |
1945 | rc->scale, |
1946 | (PopplerSelectionStyle)style, |
1947 | (PopplerRectangle *) points); |
1948 | |
1949 | return retval; |
1950 | } |
1951 | |
1952 | static void |
1953 | pdf_selection_iface_init (EvSelectionInterface *iface) |
1954 | { |
1955 | iface->render_selection = pdf_selection_render_selection; |
1956 | iface->get_selected_text = pdf_selection_get_selected_text; |
1957 | iface->get_selection_region = pdf_selection_get_selection_region; |
1958 | } |
1959 | |
1960 | |
1961 | /* EvDocumentText */ |
1962 | static cairo_region_t * |
1963 | pdf_document_text_get_text_mapping (EvDocumentText *document_text, |
1964 | EvPage *page) |
1965 | { |
1966 | PopplerPage *poppler_page; |
1967 | PopplerRectangle points; |
1968 | cairo_region_t *retval; |
1969 | |
1970 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return (__null); } } while (0); |
1971 | |
1972 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
1973 | |
1974 | points.x1 = 0.0; |
1975 | points.y1 = 0.0; |
1976 | poppler_page_get_size (poppler_page, &(points.x2), &(points.y2)); |
1977 | |
1978 | retval = poppler_page_get_selected_region (poppler_page, 1.0, |
1979 | POPPLER_SELECTION_GLYPH, |
1980 | &points); |
1981 | |
1982 | return retval; |
1983 | } |
1984 | |
1985 | static gchar * |
1986 | pdf_document_text_get_text (EvDocumentText *selection, |
1987 | EvPage *page) |
1988 | { |
1989 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return (__null); } } while (0); |
1990 | |
1991 | return poppler_page_get_text (POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type()))))))); |
1992 | } |
1993 | |
1994 | static gboolean |
1995 | pdf_document_text_get_text_layout (EvDocumentText *selection, |
1996 | EvPage *page, |
1997 | EvRectangle **areas, |
1998 | guint *n_areas) |
1999 | { |
2000 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), FALSE)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return ((0)); } } while (0); |
2001 | |
2002 | return poppler_page_get_text_layout (POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))), |
2003 | (PopplerRectangle **)areas, n_areas); |
2004 | } |
2005 | |
2006 | static PangoAttrList * |
2007 | pdf_document_text_get_text_attrs (EvDocumentText *document_text, |
2008 | EvPage *page) |
2009 | { |
2010 | GList *backend_attrs_list, *l; |
2011 | PangoAttrList *attrs_list; |
2012 | |
2013 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return (__null); } } while (0); |
2014 | |
2015 | backend_attrs_list = poppler_page_get_text_attributes (POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type()))))))); |
2016 | if (!backend_attrs_list) |
2017 | return NULL__null; |
2018 | |
2019 | attrs_list = pango_attr_list_new (); |
2020 | for (l = backend_attrs_list; l; l = g_list_next (l)((l) ? (((GList *)(l))->next) : __null)) { |
2021 | PopplerTextAttributes *backend_attrs = (PopplerTextAttributes *)l->data; |
2022 | PangoAttribute *attr; |
2023 | |
2024 | if (backend_attrs->is_underlined) { |
2025 | attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE); |
2026 | attr->start_index = backend_attrs->start_index; |
2027 | attr->end_index = backend_attrs->end_index; |
2028 | pango_attr_list_insert (attrs_list, attr); |
2029 | } |
2030 | |
2031 | attr = pango_attr_foreground_new (backend_attrs->color.red, |
2032 | backend_attrs->color.green, |
2033 | backend_attrs->color.blue); |
2034 | attr->start_index = backend_attrs->start_index; |
2035 | attr->end_index = backend_attrs->end_index; |
2036 | pango_attr_list_insert (attrs_list, attr); |
2037 | |
2038 | if (backend_attrs->font_name) { |
2039 | attr = pango_attr_family_new (backend_attrs->font_name); |
2040 | attr->start_index = backend_attrs->start_index; |
2041 | attr->end_index = backend_attrs->end_index; |
2042 | pango_attr_list_insert (attrs_list, attr); |
2043 | } |
2044 | |
2045 | if (backend_attrs->font_size) { |
2046 | attr = pango_attr_size_new (backend_attrs->font_size * PANGO_SCALE1024); |
2047 | attr->start_index = backend_attrs->start_index; |
2048 | attr->end_index = backend_attrs->end_index; |
2049 | pango_attr_list_insert (attrs_list, attr); |
2050 | } |
2051 | } |
2052 | |
2053 | poppler_page_free_text_attributes (backend_attrs_list); |
2054 | |
2055 | return attrs_list; |
2056 | } |
2057 | |
2058 | static void |
2059 | pdf_document_text_iface_init (EvDocumentTextInterface *iface) |
2060 | { |
2061 | iface->get_text_mapping = pdf_document_text_get_text_mapping; |
2062 | iface->get_text = pdf_document_text_get_text; |
2063 | iface->get_text_layout = pdf_document_text_get_text_layout; |
2064 | iface->get_text_attrs = pdf_document_text_get_text_attrs; |
2065 | } |
2066 | |
2067 | /* Page Transitions */ |
2068 | static gdouble |
2069 | pdf_document_get_page_duration (EvDocumentTransition *trans, |
2070 | gint page) |
2071 | { |
2072 | PdfDocument *pdf_document; |
2073 | PopplerPage *poppler_page; |
2074 | gdouble duration = -1; |
2075 | |
2076 | pdf_document = PDF_DOCUMENT (trans)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((trans)), ((pdf_document_get_type ())))))); |
2077 | poppler_page = poppler_document_get_page (pdf_document->document, page); |
2078 | if (!poppler_page) |
2079 | return -1; |
2080 | |
2081 | duration = poppler_page_get_duration (poppler_page); |
2082 | g_object_unref (poppler_page); |
2083 | |
2084 | return duration; |
2085 | } |
2086 | |
2087 | static EvTransitionEffect * |
2088 | pdf_document_get_effect (EvDocumentTransition *trans, |
2089 | gint page) |
2090 | { |
2091 | PdfDocument *pdf_document; |
2092 | PopplerPage *poppler_page; |
2093 | PopplerPageTransition *page_transition; |
2094 | EvTransitionEffect *effect; |
2095 | |
2096 | pdf_document = PDF_DOCUMENT (trans)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((trans)), ((pdf_document_get_type ())))))); |
2097 | poppler_page = poppler_document_get_page (pdf_document->document, page); |
2098 | |
2099 | if (!poppler_page) |
2100 | return NULL__null; |
2101 | |
2102 | page_transition = poppler_page_get_transition (poppler_page); |
2103 | |
2104 | if (!page_transition) { |
2105 | g_object_unref (poppler_page); |
2106 | return NULL__null; |
2107 | } |
2108 | |
2109 | /* enums in PopplerPageTransition match the EvTransitionEffect ones */ |
2110 | effect = ev_transition_effect_new ((EvTransitionEffectType) page_transition->type, |
2111 | "alignment", page_transition->alignment, |
2112 | "direction", page_transition->direction, |
2113 | "duration", page_transition->duration, |
2114 | "angle", page_transition->angle, |
2115 | "scale", page_transition->scale, |
2116 | "rectangular", page_transition->rectangular, |
2117 | NULL__null); |
2118 | |
2119 | poppler_page_transition_free (page_transition); |
2120 | g_object_unref (poppler_page); |
2121 | |
2122 | return effect; |
2123 | } |
2124 | |
2125 | static void |
2126 | pdf_document_page_transition_iface_init (EvDocumentTransitionInterface *iface) |
2127 | { |
2128 | iface->get_page_duration = pdf_document_get_page_duration; |
2129 | iface->get_effect = pdf_document_get_effect; |
2130 | } |
2131 | |
2132 | /* Forms */ |
2133 | #if 0 |
2134 | static void |
2135 | pdf_document_get_crop_box (EvDocument *document, |
2136 | int page, |
2137 | EvRectangle *rect) |
2138 | { |
2139 | PdfDocument *pdf_document; |
2140 | PopplerPage *poppler_page; |
2141 | PopplerRectangle poppler_rect; |
2142 | |
2143 | pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
2144 | poppler_page = poppler_document_get_page (pdf_document->document, page); |
2145 | poppler_page_get_crop_box (poppler_page, &poppler_rect); |
2146 | rect->x1 = poppler_rect.x1; |
2147 | rect->x2 = poppler_rect.x2; |
2148 | rect->y1 = poppler_rect.y1; |
2149 | rect->y2 = poppler_rect.y2; |
2150 | } |
2151 | #endif |
2152 | |
2153 | static EvFormField * |
2154 | ev_form_field_from_poppler_field (PdfDocument *pdf_document, |
2155 | PopplerFormField *poppler_field) |
2156 | { |
2157 | EvFormField *ev_field = NULL__null; |
2158 | gint id; |
2159 | gdouble font_size; |
2160 | gboolean is_read_only; |
2161 | PopplerAction *action; |
2162 | |
2163 | id = poppler_form_field_get_id (poppler_field); |
2164 | font_size = poppler_form_field_get_font_size (poppler_field); |
2165 | is_read_only = poppler_form_field_is_read_only (poppler_field); |
2166 | action = poppler_form_field_get_action (poppler_field); |
2167 | |
2168 | switch (poppler_form_field_get_field_type (poppler_field)) { |
2169 | case POPPLER_FORM_FIELD_TEXT: { |
2170 | EvFormFieldText *field_text; |
2171 | EvFormFieldTextType ev_text_type = EV_FORM_FIELD_TEXT_NORMAL; |
2172 | |
2173 | switch (poppler_form_field_text_get_text_type (poppler_field)) { |
2174 | case POPPLER_FORM_TEXT_NORMAL: |
2175 | ev_text_type = EV_FORM_FIELD_TEXT_NORMAL; |
2176 | break; |
2177 | case POPPLER_FORM_TEXT_MULTILINE: |
2178 | ev_text_type = EV_FORM_FIELD_TEXT_MULTILINE; |
2179 | break; |
2180 | case POPPLER_FORM_TEXT_FILE_SELECT: |
2181 | ev_text_type = EV_FORM_FIELD_TEXT_FILE_SELECT; |
2182 | break; |
2183 | } |
2184 | |
2185 | ev_field = ev_form_field_text_new (id, ev_text_type); |
2186 | field_text = EV_FORM_FIELD_TEXT (ev_field)((((EvFormFieldText*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ev_field)), ((ev_form_field_text_get_type())))))); |
2187 | |
2188 | field_text->do_spell_check = poppler_form_field_text_do_spell_check (poppler_field); |
2189 | field_text->do_scroll = poppler_form_field_text_do_scroll (poppler_field); |
2190 | field_text->is_rich_text = poppler_form_field_text_is_rich_text (poppler_field); |
2191 | field_text->is_password = poppler_form_field_text_is_password (poppler_field); |
2192 | field_text->max_len = poppler_form_field_text_get_max_len (poppler_field); |
2193 | field_text->text = poppler_form_field_text_get_text (poppler_field); |
2194 | |
2195 | } |
2196 | break; |
2197 | case POPPLER_FORM_FIELD_BUTTON: { |
2198 | EvFormFieldButton *field_button; |
2199 | EvFormFieldButtonType ev_button_type = EV_FORM_FIELD_BUTTON_PUSH; |
2200 | |
2201 | switch (poppler_form_field_button_get_button_type (poppler_field)) { |
2202 | case POPPLER_FORM_BUTTON_PUSH: |
2203 | ev_button_type = EV_FORM_FIELD_BUTTON_PUSH; |
2204 | break; |
2205 | case POPPLER_FORM_BUTTON_CHECK: |
2206 | ev_button_type = EV_FORM_FIELD_BUTTON_CHECK; |
2207 | break; |
2208 | case POPPLER_FORM_BUTTON_RADIO: |
2209 | ev_button_type = EV_FORM_FIELD_BUTTON_RADIO; |
2210 | break; |
2211 | } |
2212 | |
2213 | ev_field = ev_form_field_button_new (id, ev_button_type); |
2214 | field_button = EV_FORM_FIELD_BUTTON (ev_field)((((EvFormFieldButton*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((ev_field)), ((ev_form_field_button_get_type ())))))); |
2215 | |
2216 | field_button->state = poppler_form_field_button_get_state (poppler_field); |
2217 | } |
2218 | break; |
2219 | case POPPLER_FORM_FIELD_CHOICE: { |
2220 | EvFormFieldChoice *field_choice; |
2221 | EvFormFieldChoiceType ev_choice_type = EV_FORM_FIELD_CHOICE_COMBO; |
2222 | |
2223 | switch (poppler_form_field_choice_get_choice_type (poppler_field)) { |
2224 | case POPPLER_FORM_CHOICE_COMBO: |
2225 | ev_choice_type = EV_FORM_FIELD_CHOICE_COMBO; |
2226 | break; |
2227 | case EV_FORM_FIELD_CHOICE_LIST: |
2228 | ev_choice_type = EV_FORM_FIELD_CHOICE_LIST; |
2229 | break; |
2230 | } |
2231 | |
2232 | ev_field = ev_form_field_choice_new (id, ev_choice_type); |
2233 | field_choice = EV_FORM_FIELD_CHOICE (ev_field)((((EvFormFieldChoice*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((ev_field)), ((ev_form_field_choice_get_type ())))))); |
2234 | |
2235 | field_choice->is_editable = poppler_form_field_choice_is_editable (poppler_field); |
2236 | field_choice->multi_select = poppler_form_field_choice_can_select_multiple (poppler_field); |
2237 | field_choice->do_spell_check = poppler_form_field_choice_do_spell_check (poppler_field); |
2238 | field_choice->commit_on_sel_change = poppler_form_field_choice_commit_on_change (poppler_field); |
2239 | |
2240 | /* TODO: we need poppler_form_field_choice_get_selected_items in poppler |
2241 | field_choice->selected_items = poppler_form_field_choice_get_selected_items (poppler_field);*/ |
2242 | if (field_choice->is_editable) |
2243 | field_choice->text = poppler_form_field_choice_get_text (poppler_field); |
2244 | } |
2245 | break; |
2246 | case POPPLER_FORM_FIELD_SIGNATURE: |
2247 | /* TODO */ |
2248 | ev_field = ev_form_field_signature_new (id); |
2249 | break; |
2250 | case POPPLER_FORM_FIELD_UNKNOWN: |
2251 | return NULL__null; |
2252 | } |
2253 | |
2254 | ev_field->font_size = font_size; |
2255 | ev_field->is_read_only = is_read_only; |
2256 | |
2257 | if (action) |
2258 | ev_field->activation_link = ev_link_from_action (pdf_document, action); |
2259 | |
2260 | return ev_field; |
2261 | } |
2262 | |
2263 | static EvMappingList * |
2264 | pdf_document_forms_get_form_fields (EvDocumentForms *document, |
2265 | EvPage *page) |
2266 | { |
2267 | PopplerPage *poppler_page; |
2268 | GList *retval = NULL__null; |
2269 | GList *fields; |
2270 | GList *list; |
2271 | double height; |
2272 | |
2273 | g_return_val_if_fail (POPPLER_IS_PAGE (page->backend_page), NULL)do { if (((((__extension__ ({ GTypeInstance *__inst = (GTypeInstance *) ((page->backend_page)); GType __t = ((poppler_page_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; })))))) { } else { g_return_if_fail_warning (((gchar*) 0 ), ((const char*) (__PRETTY_FUNCTION__)), "POPPLER_IS_PAGE (page->backend_page)" ); return (__null); } } while (0); |
2274 | |
2275 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
2276 | fields = poppler_page_get_form_field_mapping (poppler_page); |
2277 | poppler_page_get_size (poppler_page, NULL__null, &height); |
2278 | |
2279 | for (list = fields; list; list = list->next) { |
2280 | PopplerFormFieldMapping *mapping; |
2281 | EvMapping *field_mapping; |
2282 | EvFormField *ev_field; |
2283 | |
2284 | mapping = (PopplerFormFieldMapping *)list->data; |
2285 | |
2286 | ev_field = ev_form_field_from_poppler_field (PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))), mapping->field); |
2287 | if (!ev_field) |
2288 | continue; |
2289 | |
2290 | field_mapping = g_new0 (EvMapping, 1)((EvMapping *) g_malloc0_n ((1), sizeof (EvMapping))); |
2291 | field_mapping->area.x1 = mapping->area.x1; |
2292 | field_mapping->area.x2 = mapping->area.x2; |
2293 | field_mapping->area.y1 = height - mapping->area.y2; |
2294 | field_mapping->area.y2 = height - mapping->area.y1; |
2295 | field_mapping->data = ev_field; |
2296 | ev_field->page = EV_PAGE (g_object_ref (page))((((EvPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((((typename std::remove_reference<decltype (page)>:: type) (g_object_ref) (page)))), ((ev_page_get_type())))))); |
2297 | |
2298 | g_object_set_data_full (G_OBJECT (ev_field)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ev_field)), (((GType) ((20) << (2)))))))), |
2299 | "poppler-field", |
2300 | g_object_ref (mapping->field)((typename std::remove_reference<decltype (mapping->field )>::type) (g_object_ref) (mapping->field)), |
2301 | (GDestroyNotify) g_object_unref); |
2302 | |
2303 | retval = g_list_prepend (retval, field_mapping); |
2304 | } |
2305 | |
2306 | poppler_page_free_form_field_mapping (fields); |
2307 | |
2308 | return retval ? ev_mapping_list_new (page->index, |
2309 | g_list_reverse (retval), |
2310 | (GDestroyNotify)g_object_unref) : NULL__null; |
2311 | } |
2312 | |
2313 | static gboolean |
2314 | pdf_document_forms_document_is_modified (EvDocumentForms *document) |
2315 | { |
2316 | return PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->forms_modified; |
2317 | } |
2318 | |
2319 | static gchar * |
2320 | pdf_document_forms_form_field_text_get_text (EvDocumentForms *document, |
2321 | EvFormField *field) |
2322 | |
2323 | { |
2324 | PopplerFormField *poppler_field; |
2325 | gchar *text; |
2326 | |
2327 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2328 | if (!poppler_field) |
2329 | return NULL__null; |
2330 | |
2331 | text = poppler_form_field_text_get_text (poppler_field); |
2332 | |
2333 | return text; |
2334 | } |
2335 | |
2336 | static void |
2337 | pdf_document_forms_form_field_text_set_text (EvDocumentForms *document, |
2338 | EvFormField *field, |
2339 | const gchar *text) |
2340 | { |
2341 | PopplerFormField *poppler_field; |
2342 | |
2343 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2344 | if (!poppler_field) |
2345 | return; |
2346 | |
2347 | poppler_form_field_text_set_text (poppler_field, text); |
2348 | PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->forms_modified = TRUE(!(0)); |
2349 | } |
2350 | |
2351 | static void |
2352 | pdf_document_forms_form_field_button_set_state (EvDocumentForms *document, |
2353 | EvFormField *field, |
2354 | gboolean state) |
2355 | { |
2356 | PopplerFormField *poppler_field; |
2357 | |
2358 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2359 | if (!poppler_field) |
2360 | return; |
2361 | |
2362 | poppler_form_field_button_set_state (poppler_field, state); |
2363 | PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->forms_modified = TRUE(!(0)); |
2364 | } |
2365 | |
2366 | static gboolean |
2367 | pdf_document_forms_form_field_button_get_state (EvDocumentForms *document, |
2368 | EvFormField *field) |
2369 | { |
2370 | PopplerFormField *poppler_field; |
2371 | gboolean state; |
2372 | |
2373 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2374 | if (!poppler_field) |
2375 | return FALSE(0); |
2376 | |
2377 | state = poppler_form_field_button_get_state (poppler_field); |
2378 | |
2379 | return state; |
2380 | } |
2381 | |
2382 | static gchar * |
2383 | pdf_document_forms_form_field_choice_get_item (EvDocumentForms *document, |
2384 | EvFormField *field, |
2385 | gint index) |
2386 | { |
2387 | PopplerFormField *poppler_field; |
2388 | gchar *text; |
2389 | |
2390 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2391 | if (!poppler_field) |
2392 | return NULL__null; |
2393 | |
2394 | text = poppler_form_field_choice_get_item (poppler_field, index); |
2395 | |
2396 | return text; |
2397 | } |
2398 | |
2399 | static int |
2400 | pdf_document_forms_form_field_choice_get_n_items (EvDocumentForms *document, |
2401 | EvFormField *field) |
2402 | { |
2403 | PopplerFormField *poppler_field; |
2404 | gint n_items; |
2405 | |
2406 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2407 | if (!poppler_field) |
2408 | return -1; |
2409 | |
2410 | n_items = poppler_form_field_choice_get_n_items (poppler_field); |
2411 | |
2412 | return n_items; |
2413 | } |
2414 | |
2415 | static gboolean |
2416 | pdf_document_forms_form_field_choice_is_item_selected (EvDocumentForms *document, |
2417 | EvFormField *field, |
2418 | gint index) |
2419 | { |
2420 | PopplerFormField *poppler_field; |
2421 | gboolean selected; |
2422 | |
2423 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2424 | if (!poppler_field) |
2425 | return FALSE(0); |
2426 | |
2427 | selected = poppler_form_field_choice_is_item_selected (poppler_field, index); |
2428 | |
2429 | return selected; |
2430 | } |
2431 | |
2432 | static void |
2433 | pdf_document_forms_form_field_choice_select_item (EvDocumentForms *document, |
2434 | EvFormField *field, |
2435 | gint index) |
2436 | { |
2437 | PopplerFormField *poppler_field; |
2438 | |
2439 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2440 | if (!poppler_field) |
2441 | return; |
2442 | |
2443 | poppler_form_field_choice_select_item (poppler_field, index); |
2444 | PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->forms_modified = TRUE(!(0)); |
2445 | } |
2446 | |
2447 | static void |
2448 | pdf_document_forms_form_field_choice_toggle_item (EvDocumentForms *document, |
2449 | EvFormField *field, |
2450 | gint index) |
2451 | { |
2452 | PopplerFormField *poppler_field; |
2453 | |
2454 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2455 | if (!poppler_field) |
2456 | return; |
2457 | |
2458 | poppler_form_field_choice_toggle_item (poppler_field, index); |
2459 | PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->forms_modified = TRUE(!(0)); |
2460 | } |
2461 | |
2462 | static void |
2463 | pdf_document_forms_form_field_choice_unselect_all (EvDocumentForms *document, |
2464 | EvFormField *field) |
2465 | { |
2466 | PopplerFormField *poppler_field; |
2467 | |
2468 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2469 | if (!poppler_field) |
2470 | return; |
2471 | |
2472 | poppler_form_field_choice_unselect_all (poppler_field); |
2473 | PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->forms_modified = TRUE(!(0)); |
2474 | } |
2475 | |
2476 | static void |
2477 | pdf_document_forms_form_field_choice_set_text (EvDocumentForms *document, |
2478 | EvFormField *field, |
2479 | const gchar *text) |
2480 | { |
2481 | PopplerFormField *poppler_field; |
2482 | |
2483 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2484 | if (!poppler_field) |
2485 | return; |
2486 | |
2487 | poppler_form_field_choice_set_text (poppler_field, text); |
2488 | PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ()))))))->forms_modified = TRUE(!(0)); |
2489 | } |
2490 | |
2491 | static gchar * |
2492 | pdf_document_forms_form_field_choice_get_text (EvDocumentForms *document, |
2493 | EvFormField *field) |
2494 | { |
2495 | PopplerFormField *poppler_field; |
2496 | gchar *text; |
2497 | |
2498 | poppler_field = POPPLER_FORM_FIELD (g_object_get_data (G_OBJECT (field), "poppler-field"))((((PopplerFormField*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((field)), (((GType) ((20) << (2)))) )))), "poppler-field"))), ((poppler_form_field_get_type())))) )); |
2499 | if (!poppler_field) |
2500 | return NULL__null; |
2501 | |
2502 | text = poppler_form_field_choice_get_text (poppler_field); |
2503 | |
2504 | return text; |
2505 | } |
2506 | |
2507 | static void |
2508 | pdf_document_document_forms_iface_init (EvDocumentFormsInterface *iface) |
2509 | { |
2510 | iface->get_form_fields = pdf_document_forms_get_form_fields; |
2511 | iface->document_is_modified = pdf_document_forms_document_is_modified; |
2512 | iface->form_field_text_get_text = pdf_document_forms_form_field_text_get_text; |
2513 | iface->form_field_text_set_text = pdf_document_forms_form_field_text_set_text; |
2514 | iface->form_field_button_set_state = pdf_document_forms_form_field_button_set_state; |
2515 | iface->form_field_button_get_state = pdf_document_forms_form_field_button_get_state; |
2516 | iface->form_field_choice_get_item = pdf_document_forms_form_field_choice_get_item; |
2517 | iface->form_field_choice_get_n_items = pdf_document_forms_form_field_choice_get_n_items; |
2518 | iface->form_field_choice_is_item_selected = pdf_document_forms_form_field_choice_is_item_selected; |
2519 | iface->form_field_choice_select_item = pdf_document_forms_form_field_choice_select_item; |
2520 | iface->form_field_choice_toggle_item = pdf_document_forms_form_field_choice_toggle_item; |
2521 | iface->form_field_choice_unselect_all = pdf_document_forms_form_field_choice_unselect_all; |
2522 | iface->form_field_choice_set_text = pdf_document_forms_form_field_choice_set_text; |
2523 | iface->form_field_choice_get_text = pdf_document_forms_form_field_choice_get_text; |
2524 | } |
2525 | |
2526 | /* Annotations */ |
2527 | static void |
2528 | poppler_annot_color_to_cdk_color (PopplerAnnot *poppler_annot, |
2529 | CdkColor *color) |
2530 | { |
2531 | PopplerColor *poppler_color; |
2532 | |
2533 | poppler_color = poppler_annot_get_color (poppler_annot); |
2534 | if (poppler_color) { |
2535 | color->red = poppler_color->red; |
2536 | color->green = poppler_color->green; |
2537 | color->blue = poppler_color->blue; |
2538 | |
2539 | g_free (poppler_color); |
2540 | } /* TODO: else use a default color */ |
2541 | } |
2542 | |
2543 | static EvAnnotationTextIcon |
2544 | get_annot_text_icon (PopplerAnnotText *poppler_annot) |
2545 | { |
2546 | gchar *icon = poppler_annot_text_get_icon (poppler_annot); |
2547 | EvAnnotationTextIcon retval; |
2548 | |
2549 | if (!icon) |
2550 | return EV_ANNOTATION_TEXT_ICON_UNKNOWN; |
2551 | |
2552 | if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_NOTE"Note") == 0) |
2553 | retval = EV_ANNOTATION_TEXT_ICON_NOTE; |
2554 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_COMMENT"Comment") == 0) |
2555 | retval = EV_ANNOTATION_TEXT_ICON_COMMENT; |
2556 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_KEY"Key") == 0) |
2557 | retval = EV_ANNOTATION_TEXT_ICON_KEY; |
2558 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_HELP"Help") == 0) |
2559 | retval = EV_ANNOTATION_TEXT_ICON_HELP; |
2560 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_NEW_PARAGRAPH"NewParagraph") == 0) |
2561 | retval = EV_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH; |
2562 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_PARAGRAPH"Paragraph") == 0) |
2563 | retval = EV_ANNOTATION_TEXT_ICON_PARAGRAPH; |
2564 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_INSERT"Insert") == 0) |
2565 | retval = EV_ANNOTATION_TEXT_ICON_INSERT; |
2566 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_CROSS"Cross") == 0) |
2567 | retval = EV_ANNOTATION_TEXT_ICON_CROSS; |
2568 | else if (strcmp (icon, POPPLER_ANNOT_TEXT_ICON_CIRCLE"Circle") == 0) |
2569 | retval = EV_ANNOTATION_TEXT_ICON_CIRCLE; |
2570 | else |
2571 | retval = EV_ANNOTATION_TEXT_ICON_UNKNOWN; |
2572 | |
2573 | g_free (icon); |
2574 | |
2575 | return retval; |
2576 | } |
2577 | |
2578 | static const gchar * |
2579 | get_poppler_annot_text_icon (EvAnnotationTextIcon icon) |
2580 | { |
2581 | switch (icon) { |
2582 | case EV_ANNOTATION_TEXT_ICON_NOTE: |
2583 | return POPPLER_ANNOT_TEXT_ICON_NOTE"Note"; |
2584 | case EV_ANNOTATION_TEXT_ICON_COMMENT: |
2585 | return POPPLER_ANNOT_TEXT_ICON_COMMENT"Comment"; |
2586 | case EV_ANNOTATION_TEXT_ICON_KEY: |
2587 | return POPPLER_ANNOT_TEXT_ICON_KEY"Key"; |
2588 | case EV_ANNOTATION_TEXT_ICON_HELP: |
2589 | return POPPLER_ANNOT_TEXT_ICON_HELP"Help"; |
2590 | case EV_ANNOTATION_TEXT_ICON_NEW_PARAGRAPH: |
2591 | return POPPLER_ANNOT_TEXT_ICON_NEW_PARAGRAPH"NewParagraph"; |
2592 | case EV_ANNOTATION_TEXT_ICON_PARAGRAPH: |
2593 | return POPPLER_ANNOT_TEXT_ICON_PARAGRAPH"Paragraph"; |
2594 | case EV_ANNOTATION_TEXT_ICON_INSERT: |
2595 | return POPPLER_ANNOT_TEXT_ICON_INSERT"Insert"; |
2596 | case EV_ANNOTATION_TEXT_ICON_CROSS: |
2597 | return POPPLER_ANNOT_TEXT_ICON_CROSS"Cross"; |
2598 | case EV_ANNOTATION_TEXT_ICON_CIRCLE: |
2599 | return POPPLER_ANNOT_TEXT_ICON_CIRCLE"Circle"; |
2600 | case EV_ANNOTATION_TEXT_ICON_UNKNOWN: |
2601 | default: |
2602 | return POPPLER_ANNOT_TEXT_ICON_NOTE"Note"; |
2603 | } |
2604 | } |
2605 | |
2606 | static EvAnnotation * |
2607 | ev_annot_from_poppler_annot (PopplerAnnot *poppler_annot, |
2608 | EvPage *page) |
2609 | { |
2610 | EvAnnotation *ev_annot = NULL__null; |
2611 | const gchar *unimplemented_annot = NULL__null; |
2612 | |
2613 | switch (poppler_annot_get_annot_type (poppler_annot)) { |
2614 | case POPPLER_ANNOT_TEXT: { |
2615 | PopplerAnnotText *poppler_text; |
2616 | EvAnnotationText *ev_annot_text; |
2617 | |
2618 | poppler_text = POPPLER_ANNOT_TEXT (poppler_annot)((((PopplerAnnotText*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((poppler_annot)), ((poppler_annot_text_get_type ())))))); |
2619 | |
2620 | ev_annot = ev_annotation_text_new (page); |
2621 | |
2622 | ev_annot_text = EV_ANNOTATION_TEXT (ev_annot)((((EvAnnotationText*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((ev_annot)), ((ev_annotation_text_get_type() )))))); |
2623 | ev_annotation_text_set_is_open (ev_annot_text, |
2624 | poppler_annot_text_get_is_open (poppler_text)); |
2625 | ev_annotation_text_set_icon (ev_annot_text, get_annot_text_icon (poppler_text)); |
2626 | } |
2627 | break; |
2628 | case POPPLER_ANNOT_FILE_ATTACHMENT: { |
2629 | PopplerAnnotFileAttachment *poppler_annot_attachment; |
2630 | PopplerAttachment *poppler_attachment; |
2631 | gchar *data = NULL__null; |
2632 | gsize size; |
2633 | GError *error = NULL__null; |
2634 | |
2635 | poppler_annot_attachment = POPPLER_ANNOT_FILE_ATTACHMENT (poppler_annot)((((PopplerAnnotFileAttachment*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((poppler_annot)), ((poppler_annot_markup_get_type ())))))); |
2636 | poppler_attachment = poppler_annot_file_attachment_get_attachment (poppler_annot_attachment); |
2637 | |
2638 | if (poppler_attachment && |
2639 | attachment_save_to_buffer (poppler_attachment, &data, &size, &error)) { |
2640 | EvAttachment *ev_attachment; |
2641 | |
2642 | ev_attachment = ev_attachment_new (poppler_attachment->name, |
2643 | poppler_attachment->description, |
2644 | poppler_attachment->mtime, |
2645 | poppler_attachment->ctime, |
2646 | size, data); |
2647 | ev_annot = ev_annotation_attachment_new (page, ev_attachment); |
2648 | g_object_unref (ev_attachment); |
2649 | } else if (error) { |
2650 | g_warning ("%s", error->message); |
2651 | g_error_free (error); |
2652 | } |
2653 | |
2654 | if (poppler_attachment) |
2655 | g_object_unref (poppler_attachment); |
2656 | } |
2657 | break; |
2658 | case POPPLER_ANNOT_LINK: |
2659 | case POPPLER_ANNOT_WIDGET: |
2660 | /* Ignore link and widgets annots since they are already handled */ |
2661 | break; |
2662 | default: { |
2663 | GEnumValue *enum_value; |
2664 | |
2665 | enum_value = g_enum_get_value ((GEnumClass *) g_type_class_ref (POPPLER_TYPE_ANNOT_TYPE(poppler_annot_type_get_type ())), |
2666 | poppler_annot_get_annot_type (poppler_annot)); |
2667 | unimplemented_annot = enum_value ? enum_value->value_name : "Unknown annotation"; |
2668 | } |
2669 | } |
2670 | |
2671 | if (unimplemented_annot) { |
2672 | g_warning ("Unimplemented annotation: %s, please post a " |
2673 | "bug report on Lector bug tracker " |
2674 | "(https://github.com/cafe-desktop/lector/issues) with a testcase.", |
2675 | unimplemented_annot); |
2676 | } |
2677 | |
2678 | if (ev_annot) { |
2679 | time_t utime; |
2680 | gchar *modified; |
2681 | gchar *contents; |
2682 | gchar *name; |
2683 | CdkColor color; |
2684 | |
2685 | contents = poppler_annot_get_contents (poppler_annot); |
2686 | if (contents) { |
2687 | ev_annotation_set_contents (ev_annot, contents); |
2688 | g_free (contents); |
2689 | } |
2690 | |
2691 | name = poppler_annot_get_name (poppler_annot); |
2692 | if (name) { |
2693 | ev_annotation_set_name (ev_annot, name); |
2694 | g_free (name); |
2695 | } |
2696 | |
2697 | modified = poppler_annot_get_modified (poppler_annot); |
2698 | if (poppler_date_parse (modified, &utime)) { |
2699 | ev_annotation_set_modified_from_time (ev_annot, utime); |
2700 | } else { |
2701 | ev_annotation_set_modified (ev_annot, modified); |
2702 | } |
2703 | g_free (modified); |
2704 | |
2705 | poppler_annot_color_to_cdk_color (poppler_annot, &color); |
2706 | ev_annotation_set_color (ev_annot, &color); |
2707 | |
2708 | if (POPPLER_IS_ANNOT_MARKUP (poppler_annot)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (poppler_annot)); GType __t = ((poppler_annot_markup_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst-> g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) { |
2709 | PopplerAnnotMarkup *markup; |
2710 | gchar *label; |
2711 | gdouble opacity; |
2712 | PopplerRectangle poppler_rect; |
2713 | |
2714 | markup = POPPLER_ANNOT_MARKUP (poppler_annot)((((PopplerAnnotMarkup*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((poppler_annot)), ((poppler_annot_markup_get_type ())))))); |
2715 | |
2716 | if (poppler_annot_markup_get_popup_rectangle (markup, &poppler_rect)) { |
2717 | EvRectangle ev_rect; |
2718 | gboolean is_open; |
2719 | gdouble height; |
2720 | |
2721 | poppler_page_get_size (POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))), |
2722 | NULL__null, &height); |
2723 | ev_rect.x1 = poppler_rect.x1; |
2724 | ev_rect.x2 = poppler_rect.x2; |
2725 | ev_rect.y1 = height - poppler_rect.y2; |
2726 | ev_rect.y2 = height - poppler_rect.y1; |
2727 | |
2728 | is_open = poppler_annot_markup_get_popup_is_open (markup); |
2729 | |
2730 | g_object_set (ev_annot, |
2731 | "rectangle", &ev_rect, |
2732 | "popup_is_open", is_open, |
2733 | "has_popup", TRUE(!(0)), |
2734 | NULL__null); |
2735 | } else { |
2736 | g_object_set (ev_annot, |
2737 | "has_popup", FALSE(0), |
2738 | NULL__null); |
2739 | } |
2740 | |
2741 | label = poppler_annot_markup_get_label (markup); |
2742 | opacity = poppler_annot_markup_get_opacity (markup); |
2743 | |
2744 | g_object_set (ev_annot, |
2745 | "label", label, |
2746 | "opacity", opacity, |
2747 | NULL__null); |
2748 | |
2749 | g_free (label); |
2750 | } |
2751 | } |
2752 | |
2753 | return ev_annot; |
2754 | } |
2755 | |
2756 | static void |
2757 | annot_set_unique_name (EvAnnotation *annot) |
2758 | { |
2759 | gchar *name; |
2760 | |
2761 | name = g_strdup_printf ("annot-%" G_GUINT64_FORMAT"lu", g_get_real_time ()); |
2762 | ev_annotation_set_name (annot, name); |
2763 | g_free (name); |
2764 | } |
2765 | |
2766 | static EvMappingList * |
2767 | pdf_document_annotations_get_annotations (EvDocumentAnnotations *document_annotations, |
2768 | EvPage *page) |
2769 | { |
2770 | GList *retval = NULL__null; |
2771 | PdfDocument *pdf_document; |
2772 | PopplerPage *poppler_page; |
2773 | EvMappingList *mapping_list; |
2774 | GList *annots; |
2775 | GList *list; |
2776 | gdouble height; |
2777 | gint i = 0; |
2778 | |
2779 | pdf_document = PDF_DOCUMENT (document_annotations)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_annotations)), ((pdf_document_get_type ())))))); |
2780 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
2781 | |
2782 | if (pdf_document->annots) { |
2783 | mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots, |
2784 | GINT_TO_POINTER (page->index)((gpointer) (glong) (page->index))); |
2785 | if (mapping_list) |
2786 | return ev_mapping_list_ref (mapping_list); |
2787 | } |
2788 | |
2789 | annots = poppler_page_get_annot_mapping (poppler_page); |
2790 | poppler_page_get_size (poppler_page, NULL__null, &height); |
2791 | |
2792 | for (list = annots; list; list = list->next) { |
2793 | PopplerAnnotMapping *mapping; |
2794 | EvMapping *annot_mapping; |
2795 | EvAnnotation *ev_annot; |
2796 | |
2797 | mapping = (PopplerAnnotMapping *)list->data; |
2798 | |
2799 | ev_annot = ev_annot_from_poppler_annot (mapping->annot, page); |
2800 | if (!ev_annot) |
2801 | continue; |
2802 | |
2803 | i++; |
2804 | |
2805 | /* Make sure annot has a unique name */ |
2806 | if (!ev_annotation_get_name (ev_annot)) |
2807 | annot_set_unique_name (ev_annot); |
2808 | |
2809 | annot_mapping = g_new (EvMapping, 1)((EvMapping *) g_malloc_n ((1), sizeof (EvMapping))); |
2810 | annot_mapping->area.x1 = mapping->area.x1; |
2811 | annot_mapping->area.x2 = mapping->area.x2; |
2812 | annot_mapping->area.y1 = height - mapping->area.y2; |
2813 | annot_mapping->area.y2 = height - mapping->area.y1; |
2814 | annot_mapping->data = ev_annot; |
2815 | |
2816 | g_object_set_data_full (G_OBJECT (ev_annot)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ev_annot)), (((GType) ((20) << (2)))))))), |
2817 | "poppler-annot", |
2818 | g_object_ref (mapping->annot)((typename std::remove_reference<decltype (mapping->annot )>::type) (g_object_ref) (mapping->annot)), |
2819 | (GDestroyNotify) g_object_unref); |
2820 | |
2821 | retval = g_list_prepend (retval, annot_mapping); |
2822 | } |
2823 | |
2824 | poppler_page_free_annot_mapping (annots); |
2825 | |
2826 | if (!retval) |
2827 | return NULL__null; |
2828 | |
2829 | if (!pdf_document->annots) { |
2830 | pdf_document->annots = g_hash_table_new_full (g_direct_hash, |
2831 | g_direct_equal, |
2832 | (GDestroyNotify)NULL__null, |
2833 | (GDestroyNotify)ev_mapping_list_unref); |
2834 | } |
2835 | |
2836 | mapping_list = ev_mapping_list_new (page->index, g_list_reverse (retval), (GDestroyNotify)g_object_unref); |
2837 | g_hash_table_insert (pdf_document->annots, |
2838 | GINT_TO_POINTER (page->index)((gpointer) (glong) (page->index)), |
2839 | ev_mapping_list_ref (mapping_list)); |
2840 | |
2841 | return mapping_list; |
2842 | } |
2843 | |
2844 | static gboolean |
2845 | pdf_document_annotations_document_is_modified (EvDocumentAnnotations *document_annotations) |
2846 | { |
2847 | return PDF_DOCUMENT (document_annotations)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_annotations)), ((pdf_document_get_type ()))))))->annots_modified; |
2848 | } |
2849 | |
2850 | static void |
2851 | pdf_document_annotations_remove_annotation (EvDocumentAnnotations *document_annotations, |
2852 | EvAnnotation *annot) |
2853 | { |
2854 | PopplerPage *poppler_page; |
2855 | PdfDocument *pdf_document; |
2856 | EvPage *page; |
2857 | PopplerAnnot *poppler_annot; |
2858 | EvMappingList *mapping_list; |
2859 | EvMapping *annot_mapping; |
2860 | GList *list; |
2861 | |
2862 | poppler_annot = POPPLER_ANNOT (g_object_get_data (G_OBJECT (annot), "poppler-annot"))((((PopplerAnnot*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((annot)), (((GType) ((20) << (2)))) )))), "poppler-annot"))), ((poppler_annot_get_type())))))); |
2863 | pdf_document = PDF_DOCUMENT (document_annotations)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_annotations)), ((pdf_document_get_type ())))))); |
2864 | page = ev_annotation_get_page (annot); |
2865 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
2866 | |
2867 | poppler_page_remove_annot (poppler_page, poppler_annot); |
2868 | |
2869 | /* We don't check for pdf_document->annots, if it were NULL then something is really wrong */ |
2870 | mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots, |
2871 | GINT_TO_POINTER (page->index)((gpointer) (glong) (page->index))); |
2872 | if (mapping_list) { |
2873 | annot_mapping = ev_mapping_list_find (mapping_list, annot); |
2874 | ev_mapping_list_remove (mapping_list, annot_mapping); |
2875 | if (ev_mapping_list_length (mapping_list) == 0) |
2876 | g_hash_table_remove (pdf_document->annots, GINT_TO_POINTER (page->index)((gpointer) (glong) (page->index))); |
2877 | } |
2878 | |
2879 | pdf_document->annots_modified = TRUE(!(0)); |
2880 | } |
2881 | |
2882 | static void |
2883 | pdf_document_annotations_add_annotation (EvDocumentAnnotations *document_annotations, |
2884 | EvAnnotation *annot, |
2885 | EvRectangle *rect) |
2886 | { |
2887 | PopplerAnnot *poppler_annot; |
2888 | PdfDocument *pdf_document; |
2889 | EvPage *page; |
2890 | PopplerPage *poppler_page; |
2891 | GList *list = NULL__null; |
2892 | EvMappingList *mapping_list; |
2893 | EvMapping *annot_mapping; |
2894 | PopplerRectangle poppler_rect; |
2895 | gdouble height; |
2896 | PopplerColor poppler_color; |
2897 | CdkColor color; |
2898 | |
2899 | pdf_document = PDF_DOCUMENT (document_annotations)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_annotations)), ((pdf_document_get_type ())))))); |
2900 | page = ev_annotation_get_page (annot); |
2901 | poppler_page = POPPLER_PAGE (page->backend_page)((((PopplerPage*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((page->backend_page)), ((poppler_page_get_type())))))); |
2902 | |
2903 | poppler_page_get_size (poppler_page, NULL__null, &height); |
2904 | poppler_rect.x1 = rect->x1; |
2905 | poppler_rect.x2 = rect->x2; |
2906 | poppler_rect.y1 = height - rect->y2; |
2907 | poppler_rect.y2 = height - rect->y1; |
2908 | |
2909 | switch (ev_annotation_get_annotation_type (annot)) { |
2910 | case EV_ANNOTATION_TYPE_TEXT: { |
2911 | EvAnnotationText *text = EV_ANNOTATION_TEXT (annot)((((EvAnnotationText*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((annot)), ((ev_annotation_text_get_type()))) ))); |
2912 | EvAnnotationTextIcon icon; |
2913 | |
2914 | poppler_annot = poppler_annot_text_new (pdf_document->document, &poppler_rect); |
2915 | |
2916 | icon = ev_annotation_text_get_icon (text); |
2917 | poppler_annot_text_set_icon (POPPLER_ANNOT_TEXT (poppler_annot)((((PopplerAnnotText*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((poppler_annot)), ((poppler_annot_text_get_type ())))))), |
2918 | get_poppler_annot_text_icon (icon)); |
2919 | } |
2920 | break; |
2921 | default: |
2922 | g_assert_not_reached ()do { g_assertion_message_expr (((gchar*) 0), "ev-poppler.cc", 2922, ((const char*) (__PRETTY_FUNCTION__)), __null); } while (0); |
2923 | } |
2924 | |
2925 | ev_annotation_get_color (annot, &color); |
2926 | poppler_color.red = color.red; |
2927 | poppler_color.green = color.green; |
2928 | poppler_color.blue = color.blue; |
2929 | poppler_annot_set_color (poppler_annot, &poppler_color); |
2930 | |
2931 | if (EV_IS_ANNOTATION_MARKUP (annot)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (annot)); GType __t = ((ev_annotation_markup_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) { |
2932 | EvAnnotationMarkup *markup = EV_ANNOTATION_MARKUP (annot)((((EvAnnotationMarkup*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((annot)), ((ev_annotation_markup_get_type ( ))))))); |
2933 | const gchar *label; |
2934 | |
2935 | if (ev_annotation_markup_has_popup (markup)) { |
2936 | EvRectangle popup_rect; |
2937 | |
2938 | ev_annotation_markup_get_rectangle (markup, &popup_rect); |
2939 | poppler_rect.x1 = popup_rect.x1; |
2940 | poppler_rect.x2 = popup_rect.x2; |
2941 | poppler_rect.y1 = height - popup_rect.y2; |
2942 | poppler_rect.y2 = height - popup_rect.y1; |
2943 | poppler_annot_markup_set_popup (POPPLER_ANNOT_MARKUP (poppler_annot)((((PopplerAnnotMarkup*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((poppler_annot)), ((poppler_annot_markup_get_type ())))))), &poppler_rect); |
2944 | poppler_annot_markup_set_popup_is_open (POPPLER_ANNOT_MARKUP (poppler_annot)((((PopplerAnnotMarkup*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((poppler_annot)), ((poppler_annot_markup_get_type ())))))), |
2945 | ev_annotation_markup_get_popup_is_open (markup)); |
2946 | } |
2947 | |
2948 | label = ev_annotation_markup_get_label (markup); |
2949 | if (label) |
2950 | poppler_annot_markup_set_label (POPPLER_ANNOT_MARKUP (poppler_annot)((((PopplerAnnotMarkup*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((poppler_annot)), ((poppler_annot_markup_get_type ())))))), label); |
2951 | } |
2952 | |
2953 | poppler_page_add_annot (poppler_page, poppler_annot); |
2954 | |
2955 | annot_mapping = g_new (EvMapping, 1)((EvMapping *) g_malloc_n ((1), sizeof (EvMapping))); |
2956 | annot_mapping->area = *rect; |
2957 | annot_mapping->data = annot; |
2958 | g_object_set_data_full (G_OBJECT (annot)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((annot)), (((GType) ((20) << (2)))))))), |
2959 | "poppler-annot", |
2960 | poppler_annot, |
2961 | (GDestroyNotify) g_object_unref); |
2962 | |
2963 | if (pdf_document->annots) { |
2964 | mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots, |
2965 | GINT_TO_POINTER (page->index)((gpointer) (glong) (page->index))); |
2966 | } else { |
2967 | pdf_document->annots = g_hash_table_new_full (g_direct_hash, |
2968 | g_direct_equal, |
2969 | (GDestroyNotify)NULL__null, |
2970 | (GDestroyNotify)ev_mapping_list_unref); |
2971 | mapping_list = NULL__null; |
2972 | } |
2973 | |
2974 | annot_set_unique_name (annot); |
2975 | |
2976 | if (mapping_list) { |
2977 | list = ev_mapping_list_get_list (mapping_list); |
2978 | list = g_list_append (list, annot_mapping); |
2979 | } else { |
2980 | list = g_list_append (list, annot_mapping); |
2981 | mapping_list = ev_mapping_list_new (page->index, list, (GDestroyNotify)g_object_unref); |
2982 | g_hash_table_insert (pdf_document->annots, |
2983 | GINT_TO_POINTER (page->index)((gpointer) (glong) (page->index)), |
2984 | ev_mapping_list_ref (mapping_list)); |
2985 | } |
2986 | |
2987 | pdf_document->annots_modified = TRUE(!(0)); |
2988 | } |
2989 | |
2990 | static void |
2991 | pdf_document_annotations_save_annotation (EvDocumentAnnotations *document_annotations, |
2992 | EvAnnotation *annot, |
2993 | EvAnnotationsSaveMask mask) |
2994 | { |
2995 | PopplerAnnot *poppler_annot; |
2996 | |
2997 | poppler_annot = POPPLER_ANNOT (g_object_get_data (G_OBJECT (annot), "poppler-annot"))((((PopplerAnnot*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((annot)), (((GType) ((20) << (2)))) )))), "poppler-annot"))), ((poppler_annot_get_type())))))); |
2998 | if (!poppler_annot) |
2999 | return; |
3000 | |
3001 | if (mask & EV_ANNOTATIONS_SAVE_CONTENTS) |
3002 | poppler_annot_set_contents (poppler_annot, |
3003 | ev_annotation_get_contents (annot)); |
3004 | |
3005 | if (mask & EV_ANNOTATIONS_SAVE_COLOR) { |
3006 | PopplerColor color; |
3007 | CdkColor ev_color; |
3008 | |
3009 | ev_annotation_get_color (annot, &ev_color); |
3010 | color.red = ev_color.red; |
3011 | color.green = ev_color.green; |
3012 | color.blue = ev_color.blue; |
3013 | poppler_annot_set_color (poppler_annot, &color); |
3014 | } |
3015 | |
3016 | if (EV_IS_ANNOTATION_MARKUP (annot)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (annot)); GType __t = ((ev_annotation_markup_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) { |
3017 | EvAnnotationMarkup *ev_markup = EV_ANNOTATION_MARKUP (annot)((((EvAnnotationMarkup*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((annot)), ((ev_annotation_markup_get_type ( ))))))); |
3018 | PopplerAnnotMarkup *markup = POPPLER_ANNOT_MARKUP (poppler_annot)((((PopplerAnnotMarkup*) (void *) g_type_check_instance_cast ( (GTypeInstance*) ((poppler_annot)), ((poppler_annot_markup_get_type ())))))); |
3019 | |
3020 | if (mask & EV_ANNOTATIONS_SAVE_LABEL) |
3021 | poppler_annot_markup_set_label (markup, ev_annotation_markup_get_label (ev_markup)); |
3022 | if (mask & EV_ANNOTATIONS_SAVE_OPACITY) |
3023 | poppler_annot_markup_set_opacity (markup, ev_annotation_markup_get_opacity (ev_markup)); |
3024 | if (mask & EV_ANNOTATIONS_SAVE_POPUP_IS_OPEN) |
3025 | poppler_annot_markup_set_popup_is_open (markup, ev_annotation_markup_get_popup_is_open (ev_markup)); |
3026 | } |
3027 | |
3028 | if (EV_IS_ANNOTATION_TEXT (annot)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ( (annot)); GType __t = ((ev_annotation_text_get_type())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))) { |
3029 | EvAnnotationText *ev_text = EV_ANNOTATION_TEXT (annot)((((EvAnnotationText*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((annot)), ((ev_annotation_text_get_type()))) ))); |
3030 | PopplerAnnotText *text = POPPLER_ANNOT_TEXT (poppler_annot)((((PopplerAnnotText*) (void *) g_type_check_instance_cast (( GTypeInstance*) ((poppler_annot)), ((poppler_annot_text_get_type ())))))); |
3031 | |
3032 | if (mask & EV_ANNOTATIONS_SAVE_TEXT_IS_OPEN) { |
3033 | poppler_annot_text_set_is_open (text, |
3034 | ev_annotation_text_get_is_open (ev_text)); |
3035 | } |
3036 | if (mask & EV_ANNOTATIONS_SAVE_TEXT_ICON) { |
3037 | EvAnnotationTextIcon icon; |
3038 | |
3039 | icon = ev_annotation_text_get_icon (ev_text); |
3040 | poppler_annot_text_set_icon (text, get_poppler_annot_text_icon (icon)); |
3041 | } |
3042 | } |
3043 | |
3044 | PDF_DOCUMENT (document_annotations)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document_annotations)), ((pdf_document_get_type ()))))))->annots_modified = TRUE(!(0)); |
3045 | } |
3046 | |
3047 | static void |
3048 | pdf_document_document_annotations_iface_init (EvDocumentAnnotationsInterface *iface) |
3049 | { |
3050 | iface->get_annotations = pdf_document_annotations_get_annotations; |
3051 | iface->document_is_modified = pdf_document_annotations_document_is_modified; |
3052 | iface->add_annotation = pdf_document_annotations_add_annotation; |
3053 | iface->save_annotation = pdf_document_annotations_save_annotation; |
3054 | iface->remove_annotation = pdf_document_annotations_remove_annotation; |
3055 | } |
3056 | |
3057 | /* Attachments */ |
3058 | struct SaveToBufferData { |
3059 | gchar *buffer; |
3060 | gsize len, max; |
3061 | }; |
3062 | |
3063 | static gboolean |
3064 | attachment_save_to_buffer_callback (const gchar *buf, |
3065 | gsize count, |
3066 | gpointer user_data, |
3067 | GError **error) |
3068 | { |
3069 | struct SaveToBufferData *sdata = (SaveToBufferData *)user_data; |
3070 | gchar *new_buffer; |
3071 | gsize new_max; |
3072 | |
3073 | if (sdata->len + count > sdata->max) { |
3074 | new_max = MAX (sdata->max * 2, sdata->len + count)(((sdata->max * 2) > (sdata->len + count)) ? (sdata-> max * 2) : (sdata->len + count)); |
3075 | new_buffer = (gchar *)g_realloc (sdata->buffer, new_max); |
3076 | |
3077 | sdata->buffer = new_buffer; |
3078 | sdata->max = new_max; |
3079 | } |
3080 | |
3081 | memcpy (sdata->buffer + sdata->len, buf, count); |
3082 | sdata->len += count; |
3083 | |
3084 | return TRUE(!(0)); |
3085 | } |
3086 | |
3087 | static gboolean |
3088 | attachment_save_to_buffer (PopplerAttachment *attachment, |
3089 | gchar **buffer, |
3090 | gsize *buffer_size, |
3091 | GError **error) |
3092 | { |
3093 | static const gint initial_max = 1024; |
3094 | struct SaveToBufferData sdata; |
3095 | |
3096 | *buffer = NULL__null; |
3097 | *buffer_size = 0; |
3098 | |
3099 | sdata.buffer = (gchar *) g_malloc (initial_max); |
3100 | sdata.max = initial_max; |
3101 | sdata.len = 0; |
3102 | |
3103 | if (! poppler_attachment_save_to_callback (attachment, |
3104 | attachment_save_to_buffer_callback, |
3105 | &sdata, |
3106 | error)) { |
3107 | g_free (sdata.buffer); |
3108 | return FALSE(0); |
3109 | } |
3110 | |
3111 | *buffer = sdata.buffer; |
3112 | *buffer_size = sdata.len; |
3113 | |
3114 | return TRUE(!(0)); |
3115 | } |
3116 | |
3117 | static GList * |
3118 | pdf_document_attachments_get_attachments (EvDocumentAttachments *document) |
3119 | { |
3120 | PdfDocument *pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
3121 | GList *attachments; |
3122 | GList *list; |
3123 | GList *retval = NULL__null; |
3124 | |
3125 | attachments = poppler_document_get_attachments (pdf_document->document); |
3126 | |
3127 | for (list = attachments; list; list = list->next) { |
3128 | PopplerAttachment *attachment; |
3129 | EvAttachment *ev_attachment; |
3130 | gchar *data = NULL__null; |
3131 | gsize size; |
3132 | GError *error = NULL__null; |
3133 | |
3134 | attachment = (PopplerAttachment *) list->data; |
3135 | |
3136 | if (attachment_save_to_buffer (attachment, &data, &size, &error)) { |
3137 | ev_attachment = ev_attachment_new (attachment->name, |
3138 | attachment->description, |
3139 | attachment->mtime, |
3140 | attachment->ctime, |
3141 | size, data); |
3142 | |
3143 | retval = g_list_prepend (retval, ev_attachment); |
3144 | } else { |
3145 | if (error) { |
3146 | g_warning ("%s", error->message); |
3147 | g_error_free (error); |
3148 | |
3149 | g_free (data); |
3150 | } |
3151 | } |
3152 | |
3153 | g_object_unref (attachment); |
3154 | } |
3155 | |
3156 | return g_list_reverse (retval); |
3157 | } |
3158 | |
3159 | static gboolean |
3160 | pdf_document_attachments_has_attachments (EvDocumentAttachments *document) |
3161 | { |
3162 | PdfDocument *pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
3163 | |
3164 | return poppler_document_has_attachments (pdf_document->document); |
3165 | } |
3166 | |
3167 | static void |
3168 | pdf_document_document_attachments_iface_init (EvDocumentAttachmentsInterface *iface) |
3169 | { |
3170 | iface->has_attachments = pdf_document_attachments_has_attachments; |
3171 | iface->get_attachments = pdf_document_attachments_get_attachments; |
3172 | } |
3173 | |
3174 | /* Layers */ |
3175 | static gboolean |
3176 | pdf_document_layers_has_layers (EvDocumentLayers *document) |
3177 | { |
3178 | PdfDocument *pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
3179 | PopplerLayersIter *iter; |
3180 | |
3181 | iter = poppler_layers_iter_new (pdf_document->document); |
3182 | if (!iter) |
3183 | return FALSE(0); |
3184 | poppler_layers_iter_free (iter); |
3185 | |
3186 | return TRUE(!(0)); |
3187 | } |
3188 | |
3189 | static void |
3190 | build_layers_tree (PdfDocument *pdf_document, |
3191 | CtkTreeModel *model, |
3192 | CtkTreeIter *parent, |
3193 | PopplerLayersIter *iter) |
3194 | { |
3195 | do { |
3196 | CtkTreeIter tree_iter; |
3197 | PopplerLayersIter *child; |
3198 | PopplerLayer *layer; |
3199 | EvLayer *ev_layer = NULL__null; |
3200 | gboolean visible; |
3201 | gchar *markup; |
3202 | gint rb_group = 0; |
3203 | |
3204 | layer = poppler_layers_iter_get_layer (iter); |
3205 | if (layer) { |
3206 | markup = g_markup_escape_text (poppler_layer_get_title (layer), -1); |
3207 | visible = poppler_layer_is_visible (layer); |
3208 | rb_group = poppler_layer_get_radio_button_group_id (layer); |
3209 | ev_layer = ev_layer_new (poppler_layer_is_parent (layer), |
3210 | rb_group); |
3211 | g_object_set_data_full (G_OBJECT (ev_layer)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((ev_layer)), (((GType) ((20) << (2)))))))), |
3212 | "poppler-layer", |
3213 | g_object_ref (layer)((typename std::remove_reference<decltype (layer)>::type ) (g_object_ref) (layer)), |
3214 | (GDestroyNotify) g_object_unref); |
3215 | } else { |
3216 | gchar *title; |
3217 | |
3218 | title = poppler_layers_iter_get_title (iter); |
3219 | markup = g_markup_escape_text (title, -1); |
3220 | g_free (title); |
3221 | |
3222 | visible = FALSE(0); |
3223 | layer = NULL__null; |
3224 | } |
3225 | |
3226 | ctk_tree_store_append (CTK_TREE_STORE (model)((((CtkTreeStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((model)), ((ctk_tree_store_get_type ())))))), &tree_iter, parent); |
3227 | ctk_tree_store_set (CTK_TREE_STORE (model)((((CtkTreeStore*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((model)), ((ctk_tree_store_get_type ())))))), &tree_iter, |
3228 | EV_DOCUMENT_LAYERS_COLUMN_TITLE, markup, |
3229 | EV_DOCUMENT_LAYERS_COLUMN_VISIBLE, visible, |
3230 | EV_DOCUMENT_LAYERS_COLUMN_ENABLED, TRUE(!(0)), /* FIXME */ |
3231 | EV_DOCUMENT_LAYERS_COLUMN_SHOWTOGGLE, (layer != NULL__null), |
3232 | EV_DOCUMENT_LAYERS_COLUMN_RBGROUP, rb_group, |
3233 | EV_DOCUMENT_LAYERS_COLUMN_LAYER, ev_layer, |
3234 | -1); |
3235 | if (ev_layer) |
3236 | g_object_unref (ev_layer); |
3237 | g_free (markup); |
3238 | |
3239 | child = poppler_layers_iter_get_child (iter); |
3240 | if (child) |
3241 | build_layers_tree (pdf_document, model, &tree_iter, child); |
3242 | poppler_layers_iter_free (child); |
3243 | } while (poppler_layers_iter_next (iter)); |
3244 | } |
3245 | |
3246 | static CtkTreeModel * |
3247 | pdf_document_layers_get_layers (EvDocumentLayers *document) |
3248 | { |
3249 | CtkTreeModel *model = NULL__null; |
3250 | PdfDocument *pdf_document = PDF_DOCUMENT (document)((((PdfDocument*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((document)), ((pdf_document_get_type ())))))); |
3251 | PopplerLayersIter *iter; |
3252 | |
3253 | iter = poppler_layers_iter_new (pdf_document->document); |
3254 | if (iter) { |
3255 | model = (CtkTreeModel *) ctk_tree_store_new (EV_DOCUMENT_LAYERS_N_COLUMNS, |
3256 | G_TYPE_STRING((GType) ((16) << (2))), /* TITLE */ |
3257 | G_TYPE_OBJECT((GType) ((20) << (2))), /* LAYER */ |
3258 | G_TYPE_BOOLEAN((GType) ((5) << (2))), /* VISIBLE */ |
3259 | G_TYPE_BOOLEAN((GType) ((5) << (2))), /* ENABLED */ |
3260 | G_TYPE_BOOLEAN((GType) ((5) << (2))), /* SHOWTOGGLE */ |
3261 | G_TYPE_INT((GType) ((6) << (2)))); /* RBGROUP */ |
3262 | build_layers_tree (pdf_document, model, NULL__null, iter); |
3263 | poppler_layers_iter_free (iter); |
3264 | } |
3265 | return model; |
3266 | } |
3267 | |
3268 | static void |
3269 | pdf_document_layers_show_layer (EvDocumentLayers *document, |
3270 | EvLayer *layer) |
3271 | { |
3272 | PopplerLayer *poppler_layer; |
3273 | |
3274 | poppler_layer = POPPLER_LAYER (g_object_get_data (G_OBJECT (layer), "poppler-layer"))((((PopplerLayer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((layer)), (((GType) ((20) << (2)))) )))), "poppler-layer"))), ((poppler_layer_get_type())))))); |
3275 | poppler_layer_show (poppler_layer); |
3276 | } |
3277 | |
3278 | static void |
3279 | pdf_document_layers_hide_layer (EvDocumentLayers *document, |
3280 | EvLayer *layer) |
3281 | { |
3282 | PopplerLayer *poppler_layer; |
3283 | |
3284 | poppler_layer = POPPLER_LAYER (g_object_get_data (G_OBJECT (layer), "poppler-layer"))((((PopplerLayer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((layer)), (((GType) ((20) << (2)))) )))), "poppler-layer"))), ((poppler_layer_get_type())))))); |
3285 | poppler_layer_hide (poppler_layer); |
3286 | } |
3287 | |
3288 | static gboolean |
3289 | pdf_document_layers_layer_is_visible (EvDocumentLayers *document, |
3290 | EvLayer *layer) |
3291 | { |
3292 | PopplerLayer *poppler_layer; |
3293 | |
3294 | poppler_layer = POPPLER_LAYER (g_object_get_data (G_OBJECT (layer), "poppler-layer"))((((PopplerLayer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance*) ((layer)), (((GType) ((20) << (2)))) )))), "poppler-layer"))), ((poppler_layer_get_type())))))); |
3295 | return poppler_layer_is_visible (poppler_layer); |
3296 | } |
3297 | |
3298 | static void |
3299 | pdf_document_document_layers_iface_init (EvDocumentLayersInterface *iface) |
3300 | { |
3301 | iface->has_layers = pdf_document_layers_has_layers; |
3302 | iface->get_layers = pdf_document_layers_get_layers; |
3303 | iface->show_layer = pdf_document_layers_show_layer; |
3304 | iface->hide_layer = pdf_document_layers_hide_layer; |
3305 | iface->layer_is_visible = pdf_document_layers_layer_is_visible; |
3306 | } |