[evince] [libview] Remove ev_page_cache_get_size() from EvPageCache



commit 6965a51a28f76d0a669d0d1c9fdc089e6cf46c7d
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Thu Aug 20 18:30:46 2009 +0200

    [libview] Remove ev_page_cache_get_size() from EvPageCache

 libview/ev-page-cache.c   |   26 ---------------
 libview/ev-page-cache.h   |    6 ---
 libview/ev-pixbuf-cache.c |   38 ++++++++++------------
 libview/ev-view-private.h |    7 ++++
 libview/ev-view.c         |   75 ++++++++++++++++++++++++++++-----------------
 5 files changed, 71 insertions(+), 81 deletions(-)
---
diff --git a/libview/ev-page-cache.c b/libview/ev-page-cache.c
index 1bf689e..8fba8c6 100644
--- a/libview/ev-page-cache.c
+++ b/libview/ev-page-cache.c
@@ -149,32 +149,6 @@ ev_page_cache_set_page_label (EvPageCache *page_cache,
 	return FALSE;
 }
 
-void
-ev_page_cache_get_size (EvPageCache  *page_cache,
-			gint          page,
-			gint          rotation,
-			gfloat        scale,
-			gint         *width,
-			gint         *height)
-{
-	double w, h;
-
-	g_return_if_fail (EV_IS_PAGE_CACHE (page_cache));
-
-	ev_document_get_page_size (page_cache->document, page, &w, &h);
-
-	w = w * scale + 0.5;
-	h = h * scale + 0.5;
-
-	if (rotation == 0 || rotation == 180) {
-		if (width) *width = (int)w;
-		if (height) *height = (int)h;
-	} else {
-		if (width) *width = (int)h;
-		if (height) *height = (int)w;
-	}
-}
-
 #define PAGE_CACHE_STRING "ev-page-cache"
 
 EvPageCache *
diff --git a/libview/ev-page-cache.h b/libview/ev-page-cache.h
index f3888b4..82e2791 100644
--- a/libview/ev-page-cache.h
+++ b/libview/ev-page-cache.h
@@ -35,12 +35,6 @@ G_BEGIN_DECLS
 
 GType          ev_page_cache_get_type            (void) G_GNUC_CONST;
 
-void           ev_page_cache_get_size            (EvPageCache   *page_cache,
-						  gint           page,
-						  gint           rotation,
-						  gfloat         scale,
-						  gint          *width,
-						  gint          *height);
 /* Navigation */
 gint           ev_page_cache_get_current_page    (EvPageCache *page_cache);
 void           ev_page_cache_set_current_page    (EvPageCache *page_cache,
diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c
index 763ec04..0ebfeae 100644
--- a/libview/ev-pixbuf-cache.c
+++ b/libview/ev-pixbuf-cache.c
@@ -6,6 +6,7 @@
 #include "ev-document-forms.h"
 #include "ev-document-images.h"
 #include "ev-document-annotations.h"
+#include "ev-view-private.h"
 
 typedef struct _CacheJobInfo
 {
@@ -294,20 +295,18 @@ check_job_size_and_unref (EvPixbufCache *pixbuf_cache,
 			  EvPageCache  *page_cache,
 			  gfloat        scale)
 {
-	gint width;
-	gint height;
+	gint width, height;
 
 	g_assert (job_info);
 
 	if (job_info->job == NULL)
 		return;
 
-	ev_page_cache_get_size (page_cache,
-				EV_JOB_RENDER (job_info->job)->page,
-				EV_JOB_RENDER (job_info->job)->rotation,
-				scale,
-				&width, &height);
-				
+	_get_page_size_for_scale_and_rotation (job_info->job->document,
+					       EV_JOB_RENDER (job_info->job)->page,
+					       scale,
+					       EV_JOB_RENDER (job_info->job)->rotation,
+					       &width, &height);
 	if (width == EV_JOB_RENDER (job_info->job)->target_width &&
 	    height == EV_JOB_RENDER (job_info->job)->target_height)
 		return;
@@ -684,8 +683,9 @@ add_job_if_needed (EvPixbufCache *pixbuf_cache,
 	if (job_info->job)
 		return;
 
-	ev_page_cache_get_size (page_cache, page, rotation,
-				scale, &width, &height);
+	_get_page_size_for_scale_and_rotation (pixbuf_cache->document,
+					       page, scale, rotation,
+					       &width, &height);
 
 	if (job_info->surface &&
 	    cairo_image_surface_get_width (job_info->surface) == width &&
@@ -882,16 +882,13 @@ new_selection_surface_needed (EvPixbufCache *pixbuf_cache,
 			      gint           page,
 			      gfloat         scale)
 {
-	EvPageCache *page_cache;
-
 	if (job_info->selection && job_info->rc) {
 		gint width, height;
 		gint selection_width, selection_height;
-		
-		page_cache = ev_page_cache_get (pixbuf_cache->document);
-		ev_page_cache_get_size (page_cache, page,
-					job_info->rc->rotation,
-					scale, &width, &height);
+
+		_get_page_size_for_scale_and_rotation (pixbuf_cache->document,
+						       page, scale, job_info->rc->rotation,
+						       &width, &height);
 
 		selection_width = cairo_image_surface_get_width (job_info->selection);
 		selection_height = cairo_image_surface_get_height (job_info->selection);
@@ -1261,10 +1258,9 @@ ev_pixbuf_cache_reload_page (EvPixbufCache *pixbuf_cache,
 	if (job_info == NULL)
 		return;
 
-	ev_page_cache_get_size (ev_page_cache_get (pixbuf_cache->document),
-				page, rotation, scale,
-				&width, &height);
-
+	_get_page_size_for_scale_and_rotation (pixbuf_cache->document,
+					       page, scale, rotation,
+					       &width, &height);
         add_job (pixbuf_cache, job_info, region,
 		 width, height, page, rotation, scale,
 		 EV_JOB_PRIORITY_URGENT);
diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h
index d0519d7..abef629 100644
--- a/libview/ev-view-private.h
+++ b/libview/ev-view-private.h
@@ -227,5 +227,12 @@ struct _EvViewClass {
 					   EvLink         *link);
 };
 
+void _get_page_size_for_scale_and_rotation (EvDocument *document,
+					    gint        page,
+					    gdouble     scale,
+					    gint        rotation,
+					    gint       *page_width,
+					    gint       *page_height);
+
 #endif  /* __EV_VIEW_PRIVATE_H__ */
 
diff --git a/libview/ev-view.c b/libview/ev-view.c
index 497da18..f9d8ae8 100644
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -904,6 +904,42 @@ compute_border (EvView *view, int width, int height, GtkBorder *border)
 	}
 }
 
+void
+_get_page_size_for_scale_and_rotation (EvDocument *document,
+				       gint        page,
+				       gdouble     scale,
+				       gint        rotation,
+				       gint       *page_width,
+				       gint       *page_height)
+{
+	gdouble w, h;
+	gint    width, height;
+
+	ev_document_get_page_size (document, page, &w, &h);
+
+	width = (gint)(w * scale + 0.5);
+	height = (gint)(h * scale + 0.5);
+
+	if (page_width)
+		*page_width = (rotation == 0 || rotation == 180) ? width : height;
+	if (page_height)
+		*page_height = (rotation == 0 || rotation == 180) ? height : width;
+}
+
+static void
+ev_view_get_page_size (EvView *view,
+		       gint    page,
+		       gint   *page_width,
+		       gint   *page_height)
+{
+	_get_page_size_for_scale_and_rotation (view->document,
+					       page,
+					       view->scale,
+					       view->rotation,
+					       page_width,
+					       page_height);
+}
+
 static void
 ev_view_get_max_page_size (EvView *view,
 			   gint   *max_width,
@@ -959,10 +995,7 @@ get_page_extents (EvView       *view,
 	widget = GTK_WIDGET (view);
 
 	/* Get the size of the page */
-	ev_page_cache_get_size (view->page_cache, page,
-				view->rotation,
-				view->scale,
-				&width, &height);
+	ev_view_get_page_size (view, page, &width, &height);
 	compute_border (view, width, height, border);
 	page_area->width = width + border->left + border->right;
 	page_area->height = height + border->top + border->bottom;
@@ -1005,11 +1038,8 @@ get_page_extents (EvView       *view,
 			/* First, we get the bounding box of the two pages */
 			if (other_page < ev_document_get_n_pages (view->document)
 			    && (0 <= other_page)) {
-				ev_page_cache_get_size (view->page_cache,
-							other_page,
-							view->rotation,
-							view->scale,
-							&width_2, &height_2);
+				ev_view_get_page_size (view, other_page,
+						       &width_2, &height_2);
 				if (width_2 > width)
 					max_width = width_2;
 				if (height_2 > height)
@@ -2691,18 +2721,14 @@ ev_view_size_request_dual_page (EvView         *view,
 	gint width, height;
 
 	/* Find the largest of the two. */
-	ev_page_cache_get_size (view->page_cache,
-				view->current_page,
-				view->rotation,
-				view->scale,
-				&width, &height);
+	ev_view_get_page_size (view,
+			       view->current_page,
+			       &width, &height);
 	if (view->current_page + 1 < ev_document_get_n_pages (view->document)) {
 		gint width_2, height_2;
-		ev_page_cache_get_size (view->page_cache,
-					view->current_page + 1,
-					view->rotation,
-					view->scale,
-					&width_2, &height_2);
+		ev_view_get_page_size (view,
+				       view->current_page + 1,
+				       &width_2, &height_2);
 		if (width_2 > width) {
 			width = width_2;
 			height = height_2;
@@ -2730,11 +2756,7 @@ ev_view_size_request_single_page (EvView         *view,
 	GtkBorder border;
 	gint width, height;
 
-	ev_page_cache_get_size (view->page_cache,
-				view->current_page,
-				view->rotation,
-				view->scale,
-				&width, &height);
+	ev_view_get_page_size (view, view->current_page, &width, &height);
 	compute_border (view, width, height, &border);
 
 	requisition->width = width + border.left + border.right + (2 * view->spacing);
@@ -4309,10 +4331,7 @@ draw_one_page (EvView       *view,
 			return;
 		}
 
-		ev_page_cache_get_size (view->page_cache,
-					page, view->rotation,
-					view->scale,
-					&width, &height);
+		ev_view_get_page_size (view, page, &width, &height);
 
 		page_width = cairo_image_surface_get_width (page_surface);
 		page_height = cairo_image_surface_get_height (page_surface);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]