diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2006-05-02 19:02:46 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@src.gnome.org> | 2006-05-02 19:02:46 (GMT) |
commit | 67297a0108ba18a69972c98ee1771c3dad41d55b (patch) | |
tree | 37e49b1a02bc066b645591156daceb11065caf36 /backend/ev-link.h | |
parent | c9c1e2212e37fb03d5e4ce4192cfe3f8a7515c5c (diff) |
Rework links system, it adds support for remote links now and it makes
2006-05-02 Carlos Garcia Campos <carlosgc@gnome.org>
* backend/Makefile.am:
* backend/ev-document-links.[ch]:
* backend/ev-document.[ch]:
* backend/ev-link-action.[ch]:
* backend/ev-link-dest.[ch]:
* backend/ev-link.[ch]:
* pdf/ev-poppler.cc: (pdf_document_find_link_dest),
(ev_link_dest_from_dest), (ev_link_from_action), (build_tree):
* shell/ev-page-action.c: (build_new_tree_cb):
* shell/ev-sidebar-links.c: (get_page_from_dest), (print_section_cb),
(links_page_num_func), (update_page_callback):
* shell/ev-view.[ch]: (ev_view_goto_dest), (ev_view_handle_link),
(tip_from_link):
* shell/ev-jobs.c:
* shell/ev-window.[ch]: (ev_window_open_uri),
(sidebar_links_link_activated_cb), (ev_view_popup_cmd_open_link):
* shell/ev-application.[ch]: (ev_application_open_window),
(ev_application_open_uri):
Rework links system, it adds support for remote links now and it makes
easier to add new kinds of actions and destinations. Fixes bug #317292
Diffstat (limited to 'backend/ev-link.h')
-rw-r--r-- | backend/ev-link.h | 76 |
1 files changed, 11 insertions, 65 deletions
diff --git a/backend/ev-link.h b/backend/ev-link.h index 6ab2811..b7304de 100644 --- a/backend/ev-link.h +++ b/backend/ev-link.h @@ -21,6 +21,7 @@ #define EV_LINK_H #include <glib-object.h> +#include "ev-link-action.h" G_BEGIN_DECLS @@ -28,77 +29,22 @@ typedef struct _EvLink EvLink; typedef struct _EvLinkClass EvLinkClass; typedef struct _EvLinkPrivate EvLinkPrivate; -#define EV_TYPE_LINK (ev_link_get_type()) -#define EV_LINK(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_LINK, EvLink)) -#define EV_LINK_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_LINK, EvLinkClass)) -#define EV_IS_LINK(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_LINK)) -#define EV_IS_LINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LINK)) +#define EV_TYPE_LINK (ev_link_get_type()) +#define EV_LINK(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_LINK, EvLink)) +#define EV_LINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_LINK, EvLinkClass)) +#define EV_IS_LINK(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_LINK)) +#define EV_IS_LINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LINK)) #define EV_LINK_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_LINK, EvLinkClass)) -#define EV_TYPE_LINK_TYPE (ev_link_type_get_type ()) +GType ev_link_get_type (void) G_GNUC_CONST; +EvLink *ev_link_new (const gchar *title, + EvLinkAction *action); - -typedef enum -{ - EV_LINK_TYPE_TITLE, - EV_LINK_TYPE_PAGE, - 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; - -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); -const char *ev_link_get_uri (EvLink *link); -EvLinkType ev_link_get_link_type (EvLink *link); -int ev_link_get_page (EvLink *link); -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); +const gchar *ev_link_get_title (EvLink *self); +EvLinkAction *ev_link_get_action (EvLink *self); /* Link Mapping stuff */ - typedef struct _EvLinkMapping EvLinkMapping; struct _EvLinkMapping { |