#define EV_LINK_H
#include <glib-object.h>
+#include "ev-link-action.h"
G_BEGIN_DECLS
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;
-typedef enum
-{
- EV_LINK_TYPE_TITLE,
- EV_LINK_TYPE_PAGE,
- EV_LINK_TYPE_EXTERNAL_URI,
- /* We'll probably fill this in more as we support the other types of
- * links */
-} EvLinkType;
+EvLink *ev_link_new (const gchar *title,
+ EvLinkAction *action);
-GType ev_link_type_get_type (void);
-GType ev_link_get_type (void);
+const gchar *ev_link_get_title (EvLink *self);
+EvLinkAction *ev_link_get_action (EvLink *self);
-EvLink *ev_link_new_title (const char *title);
-EvLink *ev_link_new_page (const char *title,
- int page);
-EvLink *ev_link_new_external (const char *title,
- const char *uri);
-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);
+/* 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 */