+ev_window_cmd_go_next_page (GtkAction *action, EvWindow *ev_window)
+{
+ g_return_if_fail (EV_IS_WINDOW (ev_window));
+
+ ev_view_next_page (EV_VIEW (ev_window->priv->view));
+}
+
+static void
+ev_window_cmd_go_first_page (GtkAction *action, EvWindow *ev_window)
+{
+ g_return_if_fail (EV_IS_WINDOW (ev_window));
+
+ ev_page_cache_set_current_page (ev_window->priv->page_cache, 0);
+}
+
+static void
+ev_window_cmd_go_last_page (GtkAction *action, EvWindow *ev_window)
+{
+ int n_pages;
+
+ g_return_if_fail (EV_IS_WINDOW (ev_window));
+
+ n_pages = ev_page_cache_get_n_pages (ev_window->priv->page_cache);
+ ev_page_cache_set_current_page (ev_window->priv->page_cache, n_pages - 1);
+}
+
+static void
+ev_window_cmd_go_forward (GtkAction *action, EvWindow *ev_window)
+{
+ int n_pages, current_page;
+
+ g_return_if_fail (EV_IS_WINDOW (ev_window));
+
+ n_pages = ev_page_cache_get_n_pages (ev_window->priv->page_cache);
+ current_page = ev_page_cache_get_current_page (ev_window->priv->page_cache);
+
+ if (current_page + 10 < n_pages)
+ ev_page_cache_set_current_page (ev_window->priv->page_cache, current_page + 10);
+}
+
+static void
+ev_window_cmd_go_backward (GtkAction *action, EvWindow *ev_window)
+{
+ int current_page;
+
+ g_return_if_fail (EV_IS_WINDOW (ev_window));
+
+ current_page = ev_page_cache_get_current_page (ev_window->priv->page_cache);
+
+ if (current_page - 10 >= 0)
+ ev_page_cache_set_current_page (ev_window->priv->page_cache, current_page - 10);
+}
+
+static void
+ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window)
+{
+ gchar *uri;
+
+ uri = g_strdup (ev_window->priv->uri);
+ ev_window_open_uri (ev_window, uri, NULL, 0, NULL, FALSE, NULL);
+ g_free (uri);
+}
+
+static void
+ev_window_cmd_view_autoscroll (GtkAction *action, EvWindow *ev_window)
+{
+ ev_view_autoscroll_start (EV_VIEW (ev_window->priv->view));
+}
+
+static void
+ev_window_cmd_help_contents (GtkAction *action, EvWindow *ev_window)
+{
+ GError *error = NULL;
+ GdkScreen *screen;
+ char *command;
+ const char *lang;
+ char *uri = NULL;
+
+ int i;
+
+ const char * const * langs = g_get_language_names ();
+
+ for (i = 0; langs[i]; i++) {
+ lang = langs[i];
+ if (strchr (lang, '.')) {
+ continue;
+ }
+
+ uri = g_build_filename(GNOMEDATADIR,
+ "/gnome/help/" PACKAGE,
+ lang,
+ "/evince.xml",
+ NULL);
+
+ if (g_file_test (uri, G_FILE_TEST_EXISTS)) {
+ break;
+ }
+ g_free (uri);
+ uri = NULL;
+ }
+
+ if (uri == NULL) {
+ g_warning ("Cannot find help");
+ return;
+ }
+
+ command = g_strconcat ("gnome-help ghelp://", uri, NULL);
+ g_free (uri);
+
+ screen = gtk_widget_get_screen (GTK_WIDGET (ev_window));
+ gdk_spawn_command_line_on_screen (screen, command, &error);
+ if (error != NULL) {
+ g_warning (error->message);
+ g_error_free (error);
+ }
+ g_free (command);
+}
+
+static void
+ev_window_cmd_leave_fullscreen (GtkAction *action, EvWindow *window)
+{
+ ev_window_stop_fullscreen (window);
+}
+
+static void
+ev_window_cmd_start_presentation (GtkAction *action, EvWindow *window)