X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libdocument%2Fev-link.c;h=423f264a5053f52a38005e68565c4367f899f01d;hb=0b6b3dff626d31a368ef9a95f8ed73b404eec9bf;hp=8561914b69935e5af88933eb31368f11c130ecb7;hpb=13a06349251874bd35d2f03c3fc93217cee749a2;p=evince.git diff --git a/libdocument/ev-link.c b/libdocument/ev-link.c index 8561914b..423f264a 100644 --- a/libdocument/ev-link.c +++ b/libdocument/ev-link.c @@ -18,6 +18,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ +#include #include "ev-link.h" enum { @@ -224,3 +225,44 @@ ev_link_mapping_find (GList *link_mapping, return link; } +void +ev_link_mapping_get_area (GList *link_mapping, + EvLink *link, + EvRectangle *area) +{ + GList *list; + + for (list = link_mapping; list; list = list->next) { + EvLinkMapping *mapping = list->data; + + if (mapping->link == link) { + area->x1 = mapping->x1; + area->y1 = mapping->y1; + area->x2 = mapping->x2; + area->y2 = mapping->y2; + + break; + } + } +} + +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; +}