diff options
Diffstat (limited to 'libdocument')
-rw-r--r-- | libdocument/ev-document-links.h | 1 | ||||
-rw-r--r-- | libdocument/ev-link.c | 20 | ||||
-rw-r--r-- | libdocument/ev-link.h | 1 |
3 files changed, 22 insertions, 0 deletions
diff --git a/libdocument/ev-document-links.h b/libdocument/ev-document-links.h index 8e8f20a..a9208f4 100644 --- a/libdocument/ev-document-links.h +++ b/libdocument/ev-document-links.h @@ -48,6 +48,7 @@ enum { EV_DOCUMENT_LINKS_COLUMN_MARKUP, EV_DOCUMENT_LINKS_COLUMN_LINK, EV_DOCUMENT_LINKS_COLUMN_EXPAND, + EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, EV_DOCUMENT_LINKS_COLUMN_NUM_COLUMNS }; diff --git a/libdocument/ev-link.c b/libdocument/ev-link.c index 8561914..17e4421 100644 --- a/libdocument/ev-link.c +++ b/libdocument/ev-link.c @@ -224,3 +224,23 @@ ev_link_mapping_find (GList *link_mapping, return link; } +gint +ev_link_get_page (EvLink *link) +{ + EvLinkAction *action; + EvLinkDest *dest; + + action = ev_link_get_action (link); + if (!action) + return -1; + + if (ev_link_action_get_action_type (action) != + EV_LINK_ACTION_TYPE_GOTO_DEST) + return -1; + + dest = ev_link_action_get_dest (action); + if (dest) + return ev_link_dest_get_page (dest); + + return -1; +} diff --git a/libdocument/ev-link.h b/libdocument/ev-link.h index b7304de..9bd7f6e 100644 --- a/libdocument/ev-link.h +++ b/libdocument/ev-link.h @@ -43,6 +43,7 @@ EvLink *ev_link_new (const gchar *title, const gchar *ev_link_get_title (EvLink *self); EvLinkAction *ev_link_get_action (EvLink *self); +gint ev_link_get_page (EvLink *link); /* Link Mapping stuff */ typedef struct _EvLinkMapping EvLinkMapping; |