+2005-01-13 Anders Carlsson <andersca@gnome.org>
+
+ * shell/ev-page-action.c: (update_spin), (total_pages_changed_cb),
+ (create_tool_item):
+ Set the spin button limits correctly.
+
+ * shell/ev-sidebar-thumbnails.c:
+ (ev_sidebar_tree_selection_changed), (ev_sidebar_thumbnails_init):
+ Support changing pages by clicking on the thumbnails.
+
2005-01-13 Jeff Muizelaar <jeff@nit.ca>
* pixbuf/pixbuf-document.c:
value = gtk_spin_button_get_value (GTK_SPIN_BUTTON (spin));
- if (value != page->priv->current_page)
+ if (value != page->priv->current_page )
{
gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin),
page->priv->current_page);
g_signal_emit (action, signals[GOTO_PAGE_SIGNAL], 0, value);
}
+static void
+total_pages_changed_cb (EvPageAction *action, GParamSpec *pspec,
+ GtkSpinButton *spin)
+{
+ gtk_spin_button_set_range (GTK_SPIN_BUTTON (spin), 1,
+ action->priv->total_pages);
+}
+
static GtkWidget *
create_tool_item (GtkAction *action)
{
g_object_set_data (G_OBJECT (item), "spin", spin);
gtk_widget_show (spin);
+ g_signal_connect (action, "notify::total-pages",
+ G_CALLBACK (total_pages_changed_cb),
+ spin);
g_signal_connect (spin, "value_changed",
G_CALLBACK (value_changed_cb),
action);
/* this file is part of evince, a gnome document viewer
*
* Copyright (C) 2004 Red Hat, Inc.
- * Copyright (C) 2004 Anders Carlsson <andersca@gnome.org>
+ * Copyright (C) 2004, 2005 Anders Carlsson <andersca@gnome.org>
*
* Authors:
* Jonathan Blandford <jrb@alum.mit.edu>
}
}
+static void
+ev_sidebar_tree_selection_changed (GtkTreeSelection *selection,
+ EvSidebarThumbnails *ev_sidebar_thumbnails)
+{
+ EvSidebarThumbnailsPrivate *priv;
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ int page;
+
+ priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails);
+
+ if (!gtk_tree_selection_get_selected (selection, NULL, &iter))
+ return;
+
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->list_store),
+ &iter);
+
+ page = gtk_tree_path_get_indices (path)[0] + 1;
+
+ gtk_tree_path_free (path);
+
+ ev_document_set_page (priv->document, page);
+}
+
static void
ev_sidebar_thumbnails_init (EvSidebarThumbnails *ev_sidebar_thumbnails)
{
GtkWidget *swindow;
EvSidebarThumbnailsPrivate *priv;
GtkCellRenderer *renderer;
+ GtkTreeSelection *selection;
priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails);
-
+
priv->list_store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN);
priv->tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (priv->list_store));
-
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view));
+ g_signal_connect (selection, "changed",
+ G_CALLBACK (ev_sidebar_tree_selection_changed), ev_sidebar_thumbnails);
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->tree_view), FALSE);
renderer = g_object_new (GTK_TYPE_CELL_RENDERER_PIXBUF,
"xpad", 2,