diff options
author | Anders Carlsson <andersca@gnome.org> | 2005-01-13 16:23:29 (GMT) |
---|---|---|
committer | Anders Carlsson <andersca@src.gnome.org> | 2005-01-13 16:23:29 (GMT) |
commit | ddc0ad5b3bd75a640ba362cdccde7449654bae61 (patch) | |
tree | ef105a01f51717108cd6948825834d4e122d75a2 /shell/ev-sidebar-thumbnails.c | |
parent | 62af2b5b013e01e3ed188d8bd48dc52f5b25267c (diff) |
Set the spin button limits correctly.
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.
Diffstat (limited to 'shell/ev-sidebar-thumbnails.c')
-rw-r--r-- | shell/ev-sidebar-thumbnails.c | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c index e54eb97..88d7003 100644 --- a/shell/ev-sidebar-thumbnails.c +++ b/shell/ev-sidebar-thumbnails.c @@ -1,7 +1,7 @@ /* 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> @@ -129,17 +129,45 @@ adjustment_changed_cb (GtkAdjustment *adjustment, } 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, |