diff options
author | Nickolay V. Shmyrev <nshmyrev@yandex.ru> | 2006-09-17 17:44:36 (GMT) |
---|---|---|
committer | Nickolay V. Shmyrev <nshmyrev@src.gnome.org> | 2006-09-17 17:44:36 (GMT) |
commit | 39253488e0186a32a184257db2fa0bed0af24d1c (patch) | |
tree | 0855d71f9725609b6d1ed0a2d43da15f8f596f54 /djvu/djvu-document.c | |
parent | dbf0d456b6db9e4c826657e8de83c74a45250296 (diff) |
Add support for links and bookmarks in djvu documents. Thanks to Pauli
2006-09-17 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* djvu/Makefile.am:
* djvu/djvu-document.c: (G_DEFINE_TYPE_WITH_CODE),
(djvu_document_find_iface_init), (djvu_document_links_get_links),
(djvu_document_document_links_iface_init):
* djvu/djvu-links.c: (number_from_miniexp), (string_from_miniexp),
(number_from_string_10), (get_djvu_link_dest),
(get_djvu_link_action), (build_tree), (get_djvu_hyperlink_area),
(get_djvu_hyperlink_mapping), (djvu_links_has_document_links),
(djvu_links_get_links), (djvu_links_find_link_dest),
(djvu_links_get_links_model):
* djvu/djvu-links.h:
Add support for links and bookmarks in djvu documents. Thanks
to Pauli Virtanen <pauli.virtanen@iki.fi> for the wonderful
patch.
Diffstat (limited to 'djvu/djvu-document.c')
-rw-r--r-- | djvu/djvu-document.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/djvu/djvu-document.c b/djvu/djvu-document.c index e50fb8f..12f07bc 100644 --- a/djvu/djvu-document.c +++ b/djvu/djvu-document.c @@ -19,12 +19,15 @@ #include "djvu-document.h" #include "djvu-text.h" +#include "djvu-links.h" #include "djvu-document-private.h" #include "ev-document-thumbnails.h" #include "ev-document-misc.h" #include "ev-document-find.h" +#include "ev-document-links.h" #include <libdjvu/ddjvuapi.h> +#include <libdjvu/miniexp.h> #include <gtk/gtk.h> #include <gdk-pixbuf/gdk-pixbuf-core.h> #include <glib/gunicode.h> @@ -47,6 +50,7 @@ typedef struct _DjvuDocumentClass DjvuDocumentClass; static void djvu_document_document_iface_init (EvDocumentIface *iface); static void djvu_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface); static void djvu_document_find_iface_init (EvDocumentFindIface *iface); +static void djvu_document_document_links_iface_init (EvDocumentLinksIface *iface); G_DEFINE_TYPE_WITH_CODE (DjvuDocument, djvu_document, G_TYPE_OBJECT, @@ -54,6 +58,7 @@ G_DEFINE_TYPE_WITH_CODE G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT, djvu_document_document_iface_init); G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, djvu_document_document_thumbnails_iface_init) G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_FIND, djvu_document_find_iface_init); + G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_LINKS, djvu_document_document_links_iface_init); }); @@ -451,3 +456,19 @@ djvu_document_find_iface_init (EvDocumentFindIface *iface) iface->get_progress = djvu_document_find_get_progress; iface->cancel = djvu_document_find_cancel; } + +static GList * +djvu_document_links_get_links (EvDocumentLinks *document_links, + gint page) +{ + return djvu_links_get_links (document_links, page, SCALE_FACTOR); +} + +static void +djvu_document_document_links_iface_init (EvDocumentLinksIface *iface) +{ + iface->has_document_links = djvu_links_has_document_links; + iface->get_links_model = djvu_links_get_links_model; + iface->get_links = djvu_document_links_get_links; + iface->find_link_dest = djvu_links_find_link_dest; +} |