Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-view.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-09-19 12:53:07 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-09-19 12:53:07 (GMT)
commit00a3581bfaaf0d5f825820c68b515415fe510b66 (patch)
tree8f4939603df3a90a4845c54e78208e5d8fa513a4 /shell/ev-view.c
parentc2f443161a3fe0e1415d9e9017c300f6adf52074 (diff)
Move page next/previous functions from page chace to view and change it to
2005-09-19 Marco Pesenti Gritti <mpg@redhat.com> * shell/ev-page-cache.c: * shell/ev-page-cache.h: * shell/ev-view.c: (ev_view_binding_activated), (ev_view_next_page), (ev_view_previous_page), (ev_sizing_mode_get_type): * shell/ev-view.h: * shell/ev-window.c: (ev_window_cmd_go_previous_page), (ev_window_cmd_go_next_page): Move page next/previous functions from page chace to view and change it to move by 2 page steps in dual mode.
Diffstat (limited to 'shell/ev-view.c')
-rw-r--r--shell/ev-view.c41
1 files changed, 38 insertions, 3 deletions
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 6fb577f..bc21966 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -689,10 +689,10 @@ ev_view_binding_activated (EvView *view,
if (view->presentation) {
switch (scroll) {
case GTK_SCROLL_STEP_BACKWARD:
- ev_page_cache_prev_page (view->page_cache);
+ ev_view_previous_page (view);
break;
case GTK_SCROLL_STEP_FORWARD:
- ev_page_cache_next_page (view->page_cache);
+ ev_view_next_page (view);
break;
default:
break;
@@ -3569,6 +3569,42 @@ ev_view_show_cursor (EvView *view)
ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL);
}
+gboolean
+ev_view_next_page (EvView *view)
+{
+ int page;
+
+ g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
+
+ page = ev_page_cache_get_current_page (view->page_cache);
+ page = ev_view_get_dual_page (view) ? page + 2 : page + 1;
+
+ if (page < ev_page_cache_get_n_pages (view->page_cache)) {
+ ev_page_cache_set_current_page (view->page_cache, page);
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
+
+gboolean
+ev_view_previous_page (EvView *view)
+{
+ int page;
+
+ g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
+
+ page = ev_page_cache_get_current_page (view->page_cache);
+ page = ev_view_get_dual_page (view) ? page - 2 : page - 1;
+
+ if (page >= 0) {
+ ev_page_cache_set_current_page (view->page_cache, page);
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
+
/*** Enum description for usage in signal ***/
GType
@@ -3586,4 +3622,3 @@ ev_sizing_mode_get_type (void)
}
return etype;
}
-