#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;
+EvLink *ev_link_new (const gchar *title,
+ EvLinkAction *action);
-
-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;
-
-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_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);
+const gchar *ev_link_get_title (EvLink *self);
+EvLinkAction *ev_link_get_action (EvLink *self);
/* Link Mapping stuff */
-
typedef struct _EvLinkMapping EvLinkMapping;
struct _EvLinkMapping
{