return info;
}
+static gboolean
+pdf_document_get_backend_info (EvDocument *document, EvDocumentBackendInfo *info)
+{
+ PopplerBackend backend;
+
+ backend = poppler_get_backend ();
+ switch (backend) {
+ case POPPLER_BACKEND_CAIRO:
+ info->name = "poppler/cairo";
+ break;
+ case POPPLER_BACKEND_SPLASH:
+ info->name = "poppler/splash";
+ break;
+ default:
+ info->name = "poppler/unknown";
+ break;
+ }
+
+ info->version = poppler_get_version ();
+
+ return TRUE;
+}
+
static void
pdf_document_class_init (PdfDocumentClass *klass)
{
ev_document_class->get_page_label = pdf_document_get_page_label;
ev_document_class->render = pdf_document_render;
ev_document_class->get_info = pdf_document_get_info;
+ ev_document_class->get_backend_info = pdf_document_get_backend_info;
}
/* EvDocumentSecurity */
static GList *
pdf_document_links_get_links (EvDocumentLinks *document_links,
- gint page)
+ EvPage *page)
{
PdfDocument *pdf_document;
PopplerPage *poppler_page;
double height;
pdf_document = PDF_DOCUMENT (document_links);
- poppler_page = poppler_document_get_page (pdf_document->document,
- page);
+ poppler_page = POPPLER_PAGE (page->backend_page);
mapping_list = poppler_page_get_link_mapping (poppler_page);
poppler_page_get_size (poppler_page, NULL, &height);
}
poppler_page_free_link_mapping (mapping_list);
- g_object_unref (poppler_page);
return g_list_reverse (retval);
}
static GList *
pdf_document_images_get_image_mapping (EvDocumentImages *document_images,
- gint page)
+ EvPage *page)
{
GList *retval = NULL;
PdfDocument *pdf_document;
GList *list;
pdf_document = PDF_DOCUMENT (document_images);
- poppler_page = poppler_document_get_page (pdf_document->document, page);
+ poppler_page = POPPLER_PAGE (page->backend_page);
mapping_list = poppler_page_get_image_mapping (poppler_page);
for (list = mapping_list; list; list = list->next) {
ev_image_mapping = g_new (EvMapping, 1);
- ev_image_mapping->data = ev_image_new (page, image_mapping->image_id);
+ ev_image_mapping->data = ev_image_new (page->index, image_mapping->image_id);
ev_image_mapping->area.x1 = image_mapping->area.x1;
ev_image_mapping->area.y1 = image_mapping->area.y1;
ev_image_mapping->area.x2 = image_mapping->area.x2;
}
poppler_page_free_image_mapping (mapping_list);
- g_object_unref (poppler_page);
return g_list_reverse (retval);
}
}
static GdkRegion *
-pdf_selection_get_selection_map (EvSelection *selection,
- EvRenderContext *rc)
+pdf_selection_get_selection_map (EvSelection *selection,
+ EvPage *page)
{
PopplerPage *poppler_page;
PopplerRectangle points;
GList *region;
GdkRegion *retval;
- poppler_page = POPPLER_PAGE (rc->page->backend_page);
+ poppler_page = POPPLER_PAGE (page->backend_page);
points.x1 = 0.0;
points.y1 = 0.0;