diff options
author | Marco 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) |
commit | 00a3581bfaaf0d5f825820c68b515415fe510b66 (patch) | |
tree | 8f4939603df3a90a4845c54e78208e5d8fa513a4 /shell/ev-view.c | |
parent | c2f443161a3fe0e1415d9e9017c300f6adf52074 (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.c | 41 |
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; } - |