[evince] [libdocument] Add methods to get page and page label from a link
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince] [libdocument] Add methods to get page and page label from a link
- Date: Thu, 2 Sep 2010 16:21:09 +0000 (UTC)
commit eb1c4c8ab5f0a179a3e5836f4540a70859cba106
Author: Carlos Garcia Campos <carlosgc gnome org>
Date: Thu Sep 2 18:09:09 2010 +0200
[libdocument] Add methods to get page and page label from a link
It works even for named destinations, using the existing methods to get
pages and page label from a destination.
libdocument/ev-document-links.c | 38 ++++++++++++++++++++++++++++++++++++++
libdocument/ev-document-links.h | 4 ++++
2 files changed, 42 insertions(+), 0 deletions(-)
---
diff --git a/libdocument/ev-document-links.c b/libdocument/ev-document-links.c
index b8aae5d..48dde7f 100644
--- a/libdocument/ev-document-links.c
+++ b/libdocument/ev-document-links.c
@@ -127,3 +127,41 @@ ev_document_links_get_dest_page_label (EvDocumentLinks *document_links,
return label;
}
+
+static EvLinkDest *
+get_link_dest (EvLink *link)
+{
+ EvLinkAction *action;
+
+ action = ev_link_get_action (link);
+ if (!action)
+ return NULL;
+
+ if (ev_link_action_get_action_type (action) !=
+ EV_LINK_ACTION_TYPE_GOTO_DEST)
+ return NULL;
+
+ return ev_link_action_get_dest (action);
+}
+
+gint
+ev_document_links_get_link_page (EvDocumentLinks *document_links,
+ EvLink *link)
+{
+ EvLinkDest *dest;
+
+ dest = get_link_dest (link);
+
+ return dest ? ev_document_links_get_dest_page (document_links, dest) : -1;
+}
+
+gchar *
+ev_document_links_get_link_page_label (EvDocumentLinks *document_links,
+ EvLink *link)
+{
+ EvLinkDest *dest;
+
+ dest = get_link_dest (link);
+
+ return dest ? ev_document_links_get_dest_page_label (document_links, dest) : NULL;
+}
diff --git a/libdocument/ev-document-links.h b/libdocument/ev-document-links.h
index 3614840..1c507e7 100644
--- a/libdocument/ev-document-links.h
+++ b/libdocument/ev-document-links.h
@@ -81,6 +81,10 @@ gint ev_document_links_get_dest_page (EvDocumentLinks *document_
EvLinkDest *dest);
gchar *ev_document_links_get_dest_page_label (EvDocumentLinks *document_links,
EvLinkDest *dest);
+gint ev_document_links_get_link_page (EvDocumentLinks *document_links,
+ EvLink *link);
+gchar *ev_document_links_get_link_page_label (EvDocumentLinks *document_links,
+ EvLink *link);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]