diff options
author | Jonathan Blandford <jrb@redhat.com> | 2004-12-22 18:41:31 (GMT) |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2004-12-22 18:41:31 (GMT) |
commit | 37ca059dda89fecb22f6297d337ea393b2069605 (patch) | |
tree | 3e14d00ef2e9cc9f54c363a50711e091cd316d58 /shell/ev-sidebar.c | |
parent | 29d4b297afccd67742563fb1ae68d6a39b4a8686 (diff) |
initial sidebar document setting code.
Wed Dec 22 13:41:01 2004 Jonathan Blandford <jrb@redhat.com>
* shell/ev-sidebar.c (ev_sidebar_set_document): initial sidebar
document setting code.
Diffstat (limited to 'shell/ev-sidebar.c')
-rw-r--r-- | shell/ev-sidebar.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/shell/ev-sidebar.c b/shell/ev-sidebar.c index 4ff8405..780f9f6 100644 --- a/shell/ev-sidebar.c +++ b/shell/ev-sidebar.c @@ -28,6 +28,7 @@ #include <gtk/gtk.h> #include "ev-sidebar.h" +#include "ev-sidebar-bookmarks.h" typedef struct { @@ -78,8 +79,8 @@ ev_sidebar_init (EvSidebar *ev_sidebar) GtkCellRenderer *renderer; ev_sidebar->priv = EV_SIDEBAR_GET_PRIVATE (ev_sidebar); - gtk_box_set_spacing (GTK_BOX (ev_sidebar), 6); + /* data model */ ev_sidebar->priv->page_model = (GtkTreeModel *) gtk_list_store_new (PAGE_COLUMN_NUM_COLS, @@ -87,6 +88,7 @@ ev_sidebar_init (EvSidebar *ev_sidebar) G_TYPE_STRING, GTK_TYPE_WIDGET, G_TYPE_INT); + /* top option menu */ hbox = gtk_hbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (ev_sidebar), hbox, @@ -173,6 +175,42 @@ ev_sidebar_add_page (EvSidebar *ev_sidebar, } void +ev_sidebar_set_document (EvSidebar *sidebar, + EvDocument *document) +{ + EvSidebarPrivate *priv; + GtkTreeIter iter; + gboolean result; + + g_return_if_fail (EV_IS_SIDEBAR (sidebar)); + g_return_if_fail (EV_IS_DOCUMENT (document)); + + priv = sidebar->priv; + + /* FIXME: We should prolly make sidebars have an interface. For now, we + * do this bad hack (TM) + */ + for (result = gtk_tree_model_get_iter_first (priv->page_model, &iter); + result; + result = gtk_tree_model_iter_next (priv->page_model, &iter)) { + GtkWidget *widget; + + gtk_tree_model_get (priv->page_model, &iter, + PAGE_COLUMN_MAIN_WIDGET, &widget, + -1); + + if (EV_IS_SIDEBAR_BOOKMARKS (widget)) + /* && EV_IS_BOOKMARKS (document) + && ev_bookmarks_has_bookmarks (document)... */ + ev_sidebar_bookmarks_set_document (EV_SIDEBAR_BOOKMARKS (widget), + document); + /* else if EV_IS_SIDEBAR_THUMBNAILS... */ + } + + +} + +void ev_sidebar_clear (EvSidebar *ev_sidebar) { g_return_if_fail (EV_IS_SIDEBAR (ev_sidebar)); |