X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=backend%2Fev-link.h;h=6ab2811be1621ceb16d8e0ec58eb7f29574042b1;hb=3ec63537add6165440f67c6c6ad8413a40724c13;hp=00d97c43bcb640d2eb0b78be6011b40381b55f24;hpb=2d5fe16a0b4a8bbb85933e471a62550384446821;p=evince.git diff --git a/backend/ev-link.h b/backend/ev-link.h index 00d97c43..6ab2811b 100644 --- a/backend/ev-link.h +++ b/backend/ev-link.h @@ -37,43 +37,82 @@ typedef struct _EvLinkPrivate EvLinkPrivate; #define EV_TYPE_LINK_TYPE (ev_link_type_get_type ()) + + typedef enum { EV_LINK_TYPE_TITLE, EV_LINK_TYPE_PAGE, - EV_LINK_TYPE_EXTERNAL_URI + EV_LINK_TYPE_PAGE_XYZ, + EV_LINK_TYPE_PAGE_FIT, + EV_LINK_TYPE_PAGE_FITH, + EV_LINK_TYPE_PAGE_FITV, + EV_LINK_TYPE_PAGE_FITR, + EV_LINK_TYPE_EXTERNAL_URI, + EV_LINK_TYPE_LAUNCH + /* We'll probably fill this in more as we support the other types of + * links */ } EvLinkType; -struct _EvLink { - GObject base_instance; - EvLinkPrivate *priv; -}; - -struct _EvLinkClass { - GObjectClass base_class; -}; - GType ev_link_type_get_type (void); GType ev_link_get_type (void); EvLink *ev_link_new_title (const char *title); EvLink *ev_link_new_page (const char *title, int page); +EvLink *ev_link_new_page_xyz (const char *title, + int page, + double top, + double left, + double zoom); +EvLink *ev_link_new_page_fith (const char *title, + int page, + double top); +EvLink *ev_link_new_page_fitv (const char *title, + int page, + double left); +EvLink *ev_link_new_page_fitr (const char *title, + int page, + double left, + double bottom, + double right, + double top); +EvLink *ev_link_new_page_fit (const char *title, + int page); EvLink *ev_link_new_external (const char *title, const char *uri); +EvLink *ev_link_new_launch (const char *title, + const char *filename, + const char *params); + const char *ev_link_get_title (EvLink *link); -void ev_link_set_title (EvLink *link, - const char *title); const char *ev_link_get_uri (EvLink *link); -void ev_link_set_uri (EvLink *link, - const char *uri); EvLinkType ev_link_get_link_type (EvLink *link); -void ev_link_set_link_type (EvLink *link, - EvLinkType type); int ev_link_get_page (EvLink *link); -void ev_link_set_page (EvLink *link, - int page); +double ev_link_get_top (EvLink *link); +double ev_link_get_left (EvLink *link); +double ev_link_get_bottom (EvLink *link); +double ev_link_get_right (EvLink *link); +double ev_link_get_zoom (EvLink *link); +const char *ev_link_get_filename (EvLink *link); +const char *ev_link_get_params (EvLink *link); + +/* Link Mapping stuff */ + +typedef struct _EvLinkMapping EvLinkMapping; +struct _EvLinkMapping +{ + EvLink *link; + gdouble x1; + gdouble y1; + gdouble x2; + gdouble y2; +}; +void ev_link_mapping_free (GList *link_mapping); +EvLink *ev_link_mapping_find (GList *link_mapping, + gdouble x, + gdouble y); G_END_DECLS #endif /* !EV_LINK_H */