summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libview/ev-view-private.h17
-rw-r--r--libview/ev-view.c109
2 files changed, 66 insertions, 60 deletions
diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h
index 3f9cfb60..8957dad8 100644
--- a/libview/ev-view-private.h
+++ b/libview/ev-view-private.h
@@ -230,6 +230,23 @@ void _get_page_size_for_scale_and_rotation (EvDocument *document,
gint rotation,
gint *page_width,
gint *page_height);
+void _ev_view_transform_view_point_to_doc_point (EvView *view,
+ GdkPoint *view_point,
+ GdkRectangle *page_area,
+ double *doc_point_x,
+ double *doc_point_y);
+void _ev_view_transform_view_rect_to_doc_rect (EvView *view,
+ GdkRectangle *view_rect,
+ GdkRectangle *page_area,
+ EvRectangle *doc_rect);
+void _ev_view_transform_doc_point_to_view_point (EvView *view,
+ int page,
+ EvPoint *doc_point,
+ GdkPoint *view_point);
+void _ev_view_transform_doc_rect_to_view_rect (EvView *view,
+ int page,
+ EvRectangle *doc_rect,
+ GdkRectangle *view_rect);
#endif /* __EV_VIEW_PRIVATE_H__ */
diff --git a/libview/ev-view.c b/libview/ev-view.c
index 5195299f..ee24dd9d 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -117,24 +117,12 @@ static void compute_border (EvView
static void get_page_y_offset (EvView *view,
int page,
int *y_offset);
-static void view_rect_to_doc_rect (EvView *view,
- GdkRectangle *view_rect,
- GdkRectangle *page_area,
- EvRectangle *doc_rect);
-static void doc_rect_to_view_rect (EvView *view,
- int page,
- EvRectangle *doc_rect,
- GdkRectangle *view_rect);
static void find_page_at_location (EvView *view,
gdouble x,
gdouble y,
gint *page,
gint *x_offset,
gint *y_offset);
-static void doc_point_to_view_point (EvView *view,
- int page,
- EvPoint *doc_point,
- GdkPoint *view_point);
/*** Hyperrefs ***/
static EvLink * ev_view_get_link_at_location (EvView *view,
gdouble x,
@@ -544,8 +532,8 @@ ev_view_scroll_to_page_position (EvView *view, GtkOrientation orientation)
} else {
GdkPoint view_point;
- doc_point_to_view_point (view, view->current_page,
- &view->pending_point, &view_point);
+ _ev_view_transform_doc_point_to_view_point (view, view->current_page,
+ &view->pending_point, &view_point);
x = view_point.x;
y = view_point.y;
}
@@ -830,7 +818,7 @@ compute_scroll_increment (EvView *view,
rect.y = view->scroll_y + (scroll == GTK_SCROLL_PAGE_BACKWARD ? 5 : allocation.height - 5);
rect.width = page_area.width;
rect.height = 1;
- view_rect_to_doc_rect (view, &rect, &page_area, &doc_rect);
+ _ev_view_transform_view_rect_to_doc_rect (view, &rect, &page_area, &doc_rect);
/* Convert the doc rectangle into a GdkRectangle */
rect.x = doc_rect.x1;
@@ -1210,22 +1198,22 @@ get_doc_page_size (EvView *view,
}
}
-static void
-view_point_to_doc_point (EvView *view,
- GdkPoint *view_point,
- GdkRectangle *page_area,
- double *doc_point_x,
- double *doc_point_y)
+void
+_ev_view_transform_view_point_to_doc_point (EvView *view,
+ GdkPoint *view_point,
+ GdkRectangle *page_area,
+ double *doc_point_x,
+ double *doc_point_y)
{
*doc_point_x = (double) (view_point->x - page_area->x) / view->scale;
*doc_point_y = (double) (view_point->y - page_area->y) / view->scale;
}
-static void
-view_rect_to_doc_rect (EvView *view,
- GdkRectangle *view_rect,
- GdkRectangle *page_area,
- EvRectangle *doc_rect)
+void
+_ev_view_transform_view_rect_to_doc_rect (EvView *view,
+ GdkRectangle *view_rect,
+ GdkRectangle *page_area,
+ EvRectangle *doc_rect)
{
doc_rect->x1 = (double) (view_rect->x - page_area->x) / view->scale;
doc_rect->y1 = (double) (view_rect->y - page_area->y) / view->scale;
@@ -1233,11 +1221,11 @@ view_rect_to_doc_rect (EvView *view,
doc_rect->y2 = doc_rect->y1 + (double) view_rect->height / view->scale;
}
-static void
-doc_point_to_view_point (EvView *view,
- int page,
- EvPoint *doc_point,
- GdkPoint *view_point)
+void
+_ev_view_transform_doc_point_to_view_point (EvView *view,
+ int page,
+ EvPoint *doc_point,
+ GdkPoint *view_point)
{
GdkRectangle page_area;
GtkBorder border;
@@ -1270,11 +1258,11 @@ doc_point_to_view_point (EvView *view,
view_point->y = view_y + page_area.y;
}
-static void
-doc_rect_to_view_rect (EvView *view,
- int page,
- EvRectangle *doc_rect,
- GdkRectangle *view_rect)
+void
+_ev_view_transform_doc_rect_to_view_rect (EvView *view,
+ int page,
+ EvRectangle *doc_rect,
+ GdkRectangle *view_rect)
{
GdkRectangle page_area;
GtkBorder border;
@@ -1468,7 +1456,7 @@ ev_view_get_area_from_mapping (EvView *view,
EvMapping *mapping;
mapping = ev_mapping_list_find (mapping_list, data);
- doc_rect_to_view_rect (view, page, &mapping->area, area);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, &mapping->area, area);
area->x -= view->scroll_x;
area->y -= view->scroll_y;
}
@@ -1503,7 +1491,7 @@ ev_view_put_to_doc_rect (EvView *view,
{
GdkRectangle area;
- doc_rect_to_view_rect (view, page, doc_rect, &area);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, doc_rect, &area);
area.x -= view->scroll_x;
area.y -= view->scroll_y;
ev_view_put (view, child_widget, area.x, area.y, page, doc_rect);
@@ -2653,7 +2641,7 @@ annotation_window_moved (EvAnnotationWindow *window,
view_rect.height = height;
ev_view_get_page_extents (view, child->page, &page_area, &border);
- view_rect_to_doc_rect (view, &view_rect, &page_area, &doc_rect);
+ _ev_view_transform_view_rect_to_doc_rect (view, &view_rect, &page_area, &doc_rect);
child->orig_x = doc_rect.x1;
child->orig_y = doc_rect.y1;
}
@@ -2699,7 +2687,7 @@ ev_view_create_annotation_window (EvView *view,
page = ev_annotation_get_page_index (annot);
ev_annotation_window_get_rectangle (EV_ANNOTATION_WINDOW (window), &doc_rect);
- doc_rect_to_view_rect (view, page, &doc_rect, &view_rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, &doc_rect, &view_rect);
view_rect.x -= view->scroll_x;
view_rect.y -= view->scroll_y;
@@ -2871,8 +2859,8 @@ ev_view_create_annotation (EvView *view,
point.x = x;
point.y = y;
ev_view_get_page_extents (view, view->current_page, &page_area, &border);
- view_point_to_doc_point (view, &point, &page_area,
- &doc_rect.x1, &doc_rect.y1);
+ _ev_view_transform_view_point_to_doc_point (view, &point, &page_area,
+ &doc_rect.x1, &doc_rect.y1);
doc_rect.x2 = doc_rect.x1 + 24;
doc_rect.y2 = doc_rect.y1 + 24;
@@ -2926,7 +2914,7 @@ ev_view_create_annotation (EvView *view,
ev_view_annotation_show_popup_window (view, window);
}
- doc_rect_to_view_rect (view, view->current_page, &doc_rect, &view_rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, view->current_page, &doc_rect, &view_rect);
view_rect.x -= view->scroll_x;
view_rect.y -= view->scroll_y;
region = cairo_region_create_rectangle (&view_rect);
@@ -2956,8 +2944,9 @@ ev_view_focus_annotation (EvView *view,
page = ev_annotation_get_page_index (annot);
ev_document_model_set_page (view->model, page);
- doc_rect_to_view_rect (view, page,
- &annot_mapping->area, &view_rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, page,
+ &annot_mapping->area,
+ &view_rect);
ensure_rectangle_is_visible (view, &view_rect);
gtk_widget_queue_draw (GTK_WIDGET (view));
}
@@ -3248,7 +3237,7 @@ ev_view_size_allocate (GtkWidget *widget,
if (!gtk_widget_get_visible (child->widget))
continue;
- doc_rect_to_view_rect (view, child->page, &child->doc_rect, &view_area);
+ _ev_view_transform_doc_rect_to_view_rect (view, child->page, &child->doc_rect, &view_area);
view_area.x -= view->scroll_x;
view_area.y -= view->scroll_y;
@@ -3272,7 +3261,7 @@ ev_view_size_allocate (GtkWidget *widget,
doc_rect.x1 = child->orig_x;
doc_rect.y1 = child->orig_y;
}
- doc_rect_to_view_rect (view, child->page, &doc_rect, &view_rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, child->page, &doc_rect, &view_rect);
view_rect.x -= view->scroll_x;
view_rect.y -= view->scroll_y;
@@ -4309,7 +4298,7 @@ highlight_find_results (EvView *view, cairo_t *cr, int page)
}
rectangle = ev_view_find_get_result (view, page, i);
- doc_rect_to_view_rect (view, page, rectangle, &view_rectangle);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, rectangle, &view_rectangle);
draw_rubberband (view, cr, &view_rectangle, alpha);
}
}
@@ -4323,7 +4312,7 @@ highlight_forward_search_results (EvView *view, cairo_t *cr, int page)
if (GPOINTER_TO_INT (mapping->data) != page)
return;
- doc_rect_to_view_rect (view, page, &mapping->area, &rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, &mapping->area, &rect);
cairo_save (cr);
cairo_set_source_rgb (cr, 1., 0., 0.);
@@ -4349,7 +4338,7 @@ focus_annotation (EvView *view,
if (ev_annotation_get_page_index (annot) != page)
return;
- doc_rect_to_view_rect (view, page, &mapping->area, &rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, &mapping->area, &rect);
gtk_render_focus (gtk_widget_get_style_context (widget),
cr,
rect.x - view->scroll_x,
@@ -5689,7 +5678,7 @@ jump_to_find_result (EvView *view)
GdkRectangle view_rect;
rect = ev_view_find_get_result (view, page, view->find_result);
- doc_rect_to_view_rect (view, page, rect, &view_rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, rect, &view_rect);
ensure_rectangle_is_visible (view, &view_rect);
view->jump_to_find_result = FALSE;
}
@@ -5824,7 +5813,7 @@ ev_view_highlight_forward_search (EvView *view,
page = GPOINTER_TO_INT (mapping->data);
ev_document_model_set_page (view->model, page);
- doc_rect_to_view_rect (view, page, &mapping->area, &view_rect);
+ _ev_view_transform_doc_rect_to_view_rect (view, page, &mapping->area, &view_rect);
ensure_rectangle_is_visible (view, &view_rect);
gtk_widget_queue_draw (GTK_WIDGET (view));
}
@@ -5864,8 +5853,8 @@ compute_new_selection_rect (EvView *view,
selection = g_new0 (EvViewSelection, 1);
selection->page = i;
- view_rect_to_doc_rect (view, &overlap, &page_area,
- &(selection->rect));
+ _ev_view_transform_view_rect_to_doc_rect (view, &overlap, &page_area,
+ &(selection->rect));
list = g_list_append (list, selection);
}
@@ -5955,9 +5944,9 @@ compute_new_selection_text (EvView *view,
point = stop;
if (i == first)
- view_point_to_doc_point (view, point, &page_area,
- &selection->rect.x1,
- &selection->rect.y1);
+ _ev_view_transform_view_point_to_doc_point (view, point, &page_area,
+ &selection->rect.x1,
+ &selection->rect.y1);
/* If the selection is contained within just one page,
* make sure we don't write 'start' into both points
@@ -5966,9 +5955,9 @@ compute_new_selection_text (EvView *view,
point = stop;
if (i == last)
- view_point_to_doc_point (view, point, &page_area,
- &selection->rect.x2,
- &selection->rect.y2);
+ _ev_view_transform_view_point_to_doc_point (view, point, &page_area,
+ &selection->rect.x2,
+ &selection->rect.y2);
list = g_list_append (list, selection);
}