From: Carlos Garcia Campos Date: Sat, 23 May 2009 17:13:19 +0000 (+0200) Subject: Use EvMapping instead of Ev*Mapping types X-Git-Tag: EVINCE_2_27_3~62 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=8dbd7b00f71be8b78198b2c713ae071c2dd77d11;p=evince.git Use EvMapping instead of Ev*Mapping types --- diff --git a/backend/djvu/djvu-links.c b/backend/djvu/djvu-links.c index d54c410b..392e9b39 100644 --- a/backend/djvu/djvu-links.c +++ b/backend/djvu/djvu-links.c @@ -26,7 +26,7 @@ #include "djvu-links.h" #include "djvu-document-private.h" #include "ev-document-links.h" - +#include "ev-mapping.h" static gboolean number_from_miniexp(miniexp_t sexp, int *number) { @@ -223,9 +223,9 @@ build_tree (const DjvuDocument *djvu_document, } static gboolean -get_djvu_hyperlink_area (ddjvu_pageinfo_t *page_info, - miniexp_t sexp, - EvLinkMapping *ev_link_mapping) +get_djvu_hyperlink_area (ddjvu_pageinfo_t *page_info, + miniexp_t sexp, + EvMapping *ev_link_mapping) { miniexp_t iter; @@ -245,10 +245,10 @@ get_djvu_hyperlink_area (ddjvu_pageinfo_t *page_info, iter = miniexp_cdr (iter); if (!number_from_miniexp (miniexp_car (iter), &height)) goto unknown_link; - ev_link_mapping->x1 = minx; - ev_link_mapping->x2 = (minx + width); - ev_link_mapping->y1 = (page_info->height - (miny + height)); - ev_link_mapping->y2 = (page_info->height - miny); + ev_link_mapping->area.x1 = minx; + ev_link_mapping->area.x2 = (minx + width); + ev_link_mapping->area.y1 = (page_info->height - (miny + height)); + ev_link_mapping->area.y2 = (page_info->height - miny); } else if (miniexp_car (iter) == miniexp_symbol ("poly") && miniexp_length (iter) >= 5 && miniexp_length (iter) % 2 == 1) { @@ -271,10 +271,10 @@ get_djvu_hyperlink_area (ddjvu_pageinfo_t *page_info, maxy = MAX (maxy, y); } - ev_link_mapping->x1 = minx; - ev_link_mapping->x2 = maxx; - ev_link_mapping->y1 = (page_info->height - maxy); - ev_link_mapping->y2 = (page_info->height - miny); + ev_link_mapping->area.x1 = minx; + ev_link_mapping->area.x2 = maxx; + ev_link_mapping->area.y1 = (page_info->height - maxy); + ev_link_mapping->area.y2 = (page_info->height - miny); } else { /* unknown */ goto unknown_link; @@ -287,18 +287,18 @@ get_djvu_hyperlink_area (ddjvu_pageinfo_t *page_info, return FALSE; } -static EvLinkMapping * +static EvMapping * get_djvu_hyperlink_mapping (DjvuDocument *djvu_document, int page, ddjvu_pageinfo_t *page_info, miniexp_t sexp) { - EvLinkMapping *ev_link_mapping = NULL; + EvMapping *ev_link_mapping = NULL; EvLinkAction *ev_action = NULL; miniexp_t iter; const char *url, *url_target, *comment; - ev_link_mapping = g_new (EvLinkMapping, 1); + ev_link_mapping = g_new (EvMapping, 1); iter = sexp; @@ -326,7 +326,7 @@ get_djvu_hyperlink_mapping (DjvuDocument *djvu_document, ev_action = get_djvu_link_action (djvu_document, url, page); if (!ev_action) goto unknown_mapping; - ev_link_mapping->link = ev_link_new (comment, ev_action); + ev_link_mapping->data = ev_link_new (comment, ev_action); return ev_link_mapping; @@ -363,7 +363,7 @@ djvu_links_get_links (EvDocumentLinks *document_links, GList *retval = NULL; miniexp_t page_annotations = miniexp_nil; miniexp_t *hyperlinks = NULL, *iter = NULL; - EvLinkMapping *ev_link_mapping; + EvMapping *ev_link_mapping; ddjvu_pageinfo_t page_info; while ((page_annotations = ddjvu_document_get_pageanno (djvu_document->d_document, page)) == miniexp_dummy) @@ -378,10 +378,10 @@ djvu_links_get_links (EvDocumentLinks *document_links, for (iter = hyperlinks; *iter; ++iter) { ev_link_mapping = get_djvu_hyperlink_mapping (djvu_document, page, &page_info, *iter); if (ev_link_mapping) { - ev_link_mapping->x1 *= scale_factor; - ev_link_mapping->x2 *= scale_factor; - ev_link_mapping->y1 *= scale_factor; - ev_link_mapping->y2 *= scale_factor; + ev_link_mapping->area.x1 *= scale_factor; + ev_link_mapping->area.x2 *= scale_factor; + ev_link_mapping->area.y1 *= scale_factor; + ev_link_mapping->area.y2 *= scale_factor; retval = g_list_prepend (retval, ev_link_mapping); } } diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc index fb2a5ba5..2d838ea2 100644 --- a/backend/pdf/ev-poppler.cc +++ b/backend/pdf/ev-poppler.cc @@ -35,6 +35,7 @@ #include "ev-poppler.h" #include "ev-file-exporter.h" +#include "ev-mapping.h" #include "ev-document-find.h" #include "ev-document-misc.h" #include "ev-document-links.h" @@ -1253,17 +1254,17 @@ pdf_document_links_get_links (EvDocumentLinks *document_links, for (list = mapping_list; list; list = list->next) { PopplerLinkMapping *link_mapping; - EvLinkMapping *ev_link_mapping; + EvMapping *ev_link_mapping; link_mapping = (PopplerLinkMapping *)list->data; - ev_link_mapping = g_new (EvLinkMapping, 1); - ev_link_mapping->link = ev_link_from_action (pdf_document, + ev_link_mapping = g_new (EvMapping, 1); + ev_link_mapping->data = ev_link_from_action (pdf_document, link_mapping->action); - ev_link_mapping->x1 = link_mapping->area.x1; - ev_link_mapping->x2 = link_mapping->area.x2; + ev_link_mapping->area.x1 = link_mapping->area.x1; + ev_link_mapping->area.x2 = link_mapping->area.x2; /* Invert this for X-style coordinates */ - ev_link_mapping->y1 = height - link_mapping->area.y2; - ev_link_mapping->y2 = height - link_mapping->area.y1; + ev_link_mapping->area.y1 = height - link_mapping->area.y2; + ev_link_mapping->area.y2 = height - link_mapping->area.y1; retval = g_list_prepend (retval, ev_link_mapping); } @@ -1318,17 +1319,17 @@ pdf_document_images_get_image_mapping (EvDocumentImages *document_images, for (list = mapping_list; list; list = list->next) { PopplerImageMapping *image_mapping; - EvImageMapping *ev_image_mapping; + EvMapping *ev_image_mapping; image_mapping = (PopplerImageMapping *)list->data; - ev_image_mapping = g_new (EvImageMapping, 1); + ev_image_mapping = g_new (EvMapping, 1); - ev_image_mapping->image = ev_image_new (page, image_mapping->image_id); - ev_image_mapping->x1 = image_mapping->area.x1; - ev_image_mapping->x2 = image_mapping->area.x2; - ev_image_mapping->y1 = image_mapping->area.y1; - ev_image_mapping->y2 = image_mapping->area.y2; + ev_image_mapping->data = ev_image_new (page, 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; + ev_image_mapping->area.y2 = image_mapping->area.y2; retval = g_list_prepend (retval, ev_image_mapping); } @@ -2226,7 +2227,7 @@ pdf_document_forms_get_form_fields (EvDocumentForms *document, for (list = fields; list; list = list->next) { PopplerFormFieldMapping *mapping; - EvFormFieldMapping *field_mapping; + EvMapping *field_mapping; EvFormField *ev_field; mapping = (PopplerFormFieldMapping *)list->data; @@ -2235,13 +2236,13 @@ pdf_document_forms_get_form_fields (EvDocumentForms *document, if (!ev_field) continue; - field_mapping = g_new0 (EvFormFieldMapping, 1); - field_mapping->x1 = mapping->area.x1; - field_mapping->x2 = mapping->area.x2; - field_mapping->y1 = height - mapping->area.y2; - field_mapping->y2 = height - mapping->area.y1; - field_mapping->field = ev_field; - field_mapping->field->page = EV_PAGE (g_object_ref (page)); + field_mapping = g_new0 (EvMapping, 1); + field_mapping->area.x1 = mapping->area.x1; + field_mapping->area.x2 = mapping->area.x2; + field_mapping->area.y1 = height - mapping->area.y2; + field_mapping->area.y2 = height - mapping->area.y1; + field_mapping->data = ev_field; + ev_field->page = EV_PAGE (g_object_ref (page)); g_object_set_data_full (G_OBJECT (ev_field), "poppler-field", @@ -2584,7 +2585,7 @@ pdf_document_annotations_get_annotations (EvDocumentAnnotations *document_annota for (list = annots; list; list = list->next) { PopplerAnnotMapping *mapping; - EvAnnotationMapping *annot_mapping; + EvMapping *annot_mapping; EvAnnotation *ev_annot; mapping = (PopplerAnnotMapping *)list->data; @@ -2599,12 +2600,12 @@ pdf_document_annotations_get_annotations (EvDocumentAnnotations *document_annota if (!ev_annot->name) ev_annot->name = g_strdup_printf ("annot-%d-%d", page->index, i); - annot_mapping = g_new0 (EvAnnotationMapping, 1); - annot_mapping->x1 = mapping->area.x1; - annot_mapping->x2 = mapping->area.x2; - annot_mapping->y1 = height - mapping->area.y2; - annot_mapping->y2 = height - mapping->area.y1; - annot_mapping->annotation = ev_annot; + annot_mapping = g_new (EvMapping, 1); + annot_mapping->area.x1 = mapping->area.x1; + annot_mapping->area.x2 = mapping->area.x2; + annot_mapping->area.y1 = height - mapping->area.y2; + annot_mapping->area.y2 = height - mapping->area.y1; + annot_mapping->data = ev_annot; g_object_set_data_full (G_OBJECT (ev_annot), "poppler-annot", diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c index b81b7d19..41ccadce 100644 --- a/libview/ev-pixbuf-cache.c +++ b/libview/ev-pixbuf-cache.c @@ -2,13 +2,10 @@ #include "ev-pixbuf-cache.h" #include "ev-job-scheduler.h" #include "ev-page-cache.h" -#include "ev-document-images.h" +#include "ev-mapping.h" #include "ev-document-forms.h" -#include "ev-document-links.h" +#include "ev-document-images.h" #include "ev-document-annotations.h" -#include "ev-image.h" -#include "ev-form-field.h" -#include "ev-annotation.h" typedef struct _CacheJobInfo { @@ -180,19 +177,19 @@ dispose_cache_job_info (CacheJobInfo *job_info, job_info->region = NULL; } if (job_info->link_mapping) { - ev_link_mapping_free (job_info->link_mapping); + ev_mapping_list_free (job_info->link_mapping, g_object_unref); job_info->link_mapping = NULL; } if (job_info->image_mapping) { - ev_image_mapping_free (job_info->image_mapping); + ev_mapping_list_free (job_info->image_mapping, g_object_unref); job_info->image_mapping = NULL; } if (job_info->form_field_mapping) { - ev_form_field_mapping_free (job_info->form_field_mapping); + ev_mapping_list_free (job_info->form_field_mapping, g_object_unref); job_info->form_field_mapping = NULL; } if (job_info->annots_mapping) { - ev_annotation_mapping_free (job_info->annots_mapping); + ev_mapping_list_free (job_info->annots_mapping, g_object_unref); job_info->annots_mapping = NULL; } if (job_info->text_mapping) { @@ -519,25 +516,25 @@ copy_job_to_job_info (EvJobRender *job_render, if (job_render->flags & EV_RENDER_INCLUDE_LINKS) { if (job_info->link_mapping) - ev_link_mapping_free (job_info->link_mapping); + ev_mapping_list_free (job_info->link_mapping, g_object_unref); job_info->link_mapping = job_render->link_mapping; } if (job_render->flags & EV_RENDER_INCLUDE_IMAGES) { if (job_info->image_mapping) - ev_image_mapping_free (job_info->image_mapping); + ev_mapping_list_free (job_info->image_mapping, g_object_unref); job_info->image_mapping = job_render->image_mapping; } if (job_render->flags & EV_RENDER_INCLUDE_FORMS) { if (job_info->form_field_mapping) - ev_form_field_mapping_free (job_info->form_field_mapping); + ev_mapping_list_free (job_info->form_field_mapping, g_object_unref); job_info->form_field_mapping = job_render->form_field_mapping; } if (job_render->flags & EV_RENDER_INCLUDE_ANNOTS) { if (job_info->annots_mapping) - ev_annotation_mapping_free (job_info->annots_mapping); + ev_mapping_list_free (job_info->annots_mapping, g_object_unref); job_info->annots_mapping = job_render->annots_mapping; } diff --git a/libview/ev-view.c b/libview/ev-view.c index 31ce2f52..abd661e2 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -28,6 +28,7 @@ #include #include +#include "ev-mapping.h" #include "ev-document-forms.h" #include "ev-document-images.h" #include "ev-document-links.h" @@ -1146,7 +1147,7 @@ ev_view_get_link_at_location (EvView *view, link_mapping = ev_pixbuf_cache_get_link_mapping (view->pixbuf_cache, page); if (link_mapping) - return ev_link_mapping_find (link_mapping, x_new, y_new); + return ev_mapping_list_get_data (link_mapping, x_new, y_new); else return NULL; } @@ -1589,7 +1590,7 @@ ev_view_get_image_at_location (EvView *view, image_mapping = ev_pixbuf_cache_get_image_mapping (view->pixbuf_cache, page); if (image_mapping) - return ev_image_mapping_find (image_mapping, x_new, y_new); + return ev_mapping_list_get_data (image_mapping, x_new, y_new); else return NULL; } @@ -1623,7 +1624,7 @@ ev_view_get_form_field_at_location (EvView *view, forms_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache, page); if (forms_mapping) - return ev_form_field_mapping_find (forms_mapping, x_new, y_new); + return ev_mapping_list_get_data (forms_mapping, x_new, y_new); else return NULL; } @@ -1632,14 +1633,14 @@ static GdkRegion * ev_view_form_field_get_region (EvView *view, EvFormField *field) { - EvRectangle field_area; GdkRectangle view_area; GList *forms_mapping; + EvMapping *mapping; forms_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache, field->page->index); - ev_form_field_mapping_get_area (forms_mapping, field, &field_area); - doc_rect_to_view_rect (view, field->page->index, &field_area, &view_area); + mapping = ev_mapping_list_find (forms_mapping, field); + doc_rect_to_view_rect (view, field->page->index, &mapping->area, &view_area); view_area.x -= view->scroll_x; view_area.y -= view->scroll_y; @@ -1692,7 +1693,7 @@ ev_view_form_field_button_create_widget (EvView *view, forms_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache, field->page->index); for (l = forms_mapping; l; l = g_list_next (l)) { - EvFormField *button = ((EvFormFieldMapping *)(l->data))->field; + EvFormField *button = ((EvMapping *)(l->data))->data; GdkRegion *button_region; if (button->id == field->id) @@ -2050,7 +2051,7 @@ ev_view_handle_form_field (EvView *view, { GtkWidget *field_widget = NULL; GList *form_field_mapping; - EvRectangle field_area; + EvMapping *mapping; GdkRectangle view_area; if (field->is_read_only) @@ -2075,9 +2076,9 @@ ev_view_handle_form_field (EvView *view, (GDestroyNotify)g_object_unref); form_field_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache, field->page->index); - ev_form_field_mapping_get_area (form_field_mapping, field, &field_area); - - doc_rect_to_view_rect (view, field->page->index, &field_area, &view_area); + mapping = ev_mapping_list_find (form_field_mapping, field); + + doc_rect_to_view_rect (view, field->page->index, &mapping->area, &view_area); view_area.x -= view->scroll_x; view_area.y -= view->scroll_y; @@ -2303,15 +2304,13 @@ show_annotation_windows (EvView *view, annots = ev_pixbuf_cache_get_annots_mapping (view->pixbuf_cache, page); for (l = annots; l && l->data; l = g_list_next (l)) { - EvAnnotationMapping *annotation_mapping; - EvAnnotation *annot; - EvViewWindowChild *child; - GtkWidget *window; - EvRectangle *doc_rect; - GdkRectangle view_rect; + EvAnnotation *annot; + EvViewWindowChild *child; + GtkWidget *window; + EvRectangle *doc_rect; + GdkRectangle view_rect; - annotation_mapping = (EvAnnotationMapping *)l->data; - annot = annotation_mapping->annotation; + annot = ((EvMapping *)(l->data))->data; if (!EV_IS_ANNOTATION_MARKUP (annot)) continue; @@ -2367,12 +2366,10 @@ hide_annotation_windows (EvView *view, annots = ev_pixbuf_cache_get_annots_mapping (view->pixbuf_cache, page); for (l = annots; l && l->data; l = g_list_next (l)) { - EvAnnotationMapping *annotation_mapping; - EvAnnotation *annot; - GtkWidget *window; + EvAnnotation *annot; + GtkWidget *window; - annotation_mapping = (EvAnnotationMapping *)l->data; - annot = annotation_mapping->annotation; + annot = ((EvMapping *)(l->data))->data; if (!EV_IS_ANNOTATION_MARKUP (annot)) continue; @@ -2411,7 +2408,7 @@ ev_view_get_annotation_at_location (EvView *view, annotations_mapping = ev_pixbuf_cache_get_annots_mapping (view->pixbuf_cache, page); if (annotations_mapping) - return ev_annotation_mapping_find (annotations_mapping, x_new, y_new); + return ev_mapping_list_get_data (annotations_mapping, x_new, y_new); else return NULL; } @@ -2617,9 +2614,9 @@ ev_view_size_allocate (GtkWidget *widget, children = gtk_container_get_children (GTK_CONTAINER (widget)); for (l = children; l && l->data; l = g_list_next (l)) { EvFormField *field; - EvRectangle field_area; GdkRectangle view_area; GList *form_field_mapping; + EvMapping *mapping; GtkAllocation child_allocation; GtkRequisition child_requisition; GtkWidget *child = (GtkWidget *)l->data; @@ -2630,9 +2627,9 @@ ev_view_size_allocate (GtkWidget *widget, form_field_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache, field->page->index); - ev_form_field_mapping_get_area (form_field_mapping, field, &field_area); + mapping = ev_mapping_list_find (form_field_mapping, field); - doc_rect_to_view_rect (view, field->page->index, &field_area, &view_area); + doc_rect_to_view_rect (view, field->page->index, &mapping->area, &view_area); view_area.x -= view->scroll_x; view_area.y -= view->scroll_y; @@ -2951,10 +2948,10 @@ get_link_area (EvView *view, EvLink *link, GdkRectangle *area) { - EvRectangle ev_rect; - GList *link_mapping; - gint page; - gint x_offset = 0, y_offset = 0; + GList *link_mapping; + EvMapping *mapping; + gint page; + gint x_offset = 0, y_offset = 0; x += view->scroll_x; y += view->scroll_y; @@ -2962,9 +2959,9 @@ get_link_area (EvView *view, find_page_at_location (view, x, y, &page, &x_offset, &y_offset); link_mapping = ev_pixbuf_cache_get_link_mapping (view->pixbuf_cache, page); - ev_link_mapping_get_area (link_mapping, link, &ev_rect); + mapping = ev_mapping_list_find (link_mapping, link); - doc_rect_to_view_rect (view, page, &ev_rect, area); + doc_rect_to_view_rect (view, page, &mapping->area, area); area->y -= view->scroll_y; } @@ -2975,10 +2972,10 @@ get_annot_area (EvView *view, EvAnnotation *annot, GdkRectangle *area) { - EvRectangle ev_rect; - GList *annots_mapping; - gint page; - gint x_offset = 0, y_offset = 0; + GList *annots_mapping; + EvMapping *mapping; + gint page; + gint x_offset = 0, y_offset = 0; x += view->scroll_x; y += view->scroll_y; @@ -2986,9 +2983,9 @@ get_annot_area (EvView *view, find_page_at_location (view, x, y, &page, &x_offset, &y_offset); annots_mapping = ev_pixbuf_cache_get_annots_mapping (view->pixbuf_cache, page); - ev_annotation_mapping_get_area (annots_mapping, annot, &ev_rect); + mapping = ev_mapping_list_find (annots_mapping, annot); - doc_rect_to_view_rect (view, page, &ev_rect, area); + doc_rect_to_view_rect (view, page, &mapping->area, area); area->y -= view->scroll_y; }