Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-application.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/ev-application.c')
-rw-r--r--shell/ev-application.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 4f006cc..6fe50aa 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -29,8 +29,9 @@
#include <gtk/gtkstock.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkmain.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
-#include <ev-window.h>
+#include "ev-window.h"
struct _EvApplicationPrivate {
GList *windows;
@@ -168,6 +169,32 @@ ev_application_open (EvApplication *application, GError *err)
gtk_widget_destroy (GTK_WIDGET (chooser));
}
+void
+ev_application_open_bookmark (EvApplication *application,
+ EvDocument *document,
+ EvBookmark *bookmark,
+ GError *error)
+{
+ EvBookmarkType type;
+ const char *uri;
+ int page;
+
+ type = ev_bookmark_get_bookmark_type (bookmark);
+
+ switch (type) {
+ case EV_BOOKMARK_TYPE_TITLE:
+ break;
+ case EV_BOOKMARK_TYPE_LINK:
+ page = ev_bookmark_get_page (bookmark);
+ ev_document_set_page (document, page);
+ break;
+ case EV_BOOKMARK_TYPE_EXTERNAL_URI:
+ uri = ev_bookmark_get_uri (bookmark);
+ gnome_vfs_url_show (uri);
+ break;
+ }
+}
+
static void
ev_application_class_init (EvApplicationClass *ev_application_class)
{