Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-sidebar.c
diff options
context:
space:
mode:
authorJonathan 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)
commit37ca059dda89fecb22f6297d337ea393b2069605 (patch)
tree3e14d00ef2e9cc9f54c363a50711e091cd316d58 /shell/ev-sidebar.c
parent29d4b297afccd67742563fb1ae68d6a39b4a8686 (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.c40
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));