]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-annotation.h
[libdocument] Add EvAnnotationAttachment to support attachment annotations
[evince.git] / libdocument / ev-annotation.h
index 06dd1efd8129d082b0692bf037956cb2f0f7f7db..159dc2c8f4e9a9d73a48798b01f935c57ca4209a 100644 (file)
@@ -29,6 +29,7 @@
 #include <glib-object.h>
 
 #include "ev-document.h"
+#include "ev-attachment.h"
 
 G_BEGIN_DECLS
 
@@ -56,14 +57,25 @@ G_BEGIN_DECLS
 #define EV_IS_ANNOTATION_TEXT_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ANNOTATION_TEXT))
 #define EV_ANNOTATION_TEXT_GET_CLASS(object)    (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ANNOTATION_TEXT, EvAnnotationTextClass))
 
-typedef struct _EvAnnotation             EvAnnotation;
-typedef struct _EvAnnotationClass        EvAnnotationClass;
+/* EvAnnotationText */
+#define EV_TYPE_ANNOTATION_ATTACHMENT              (ev_annotation_attachment_get_type())
+#define EV_ANNOTATION_ATTACHMENT(object)           (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ANNOTATION_ATTACHMENT, EvAnnotationAttachment))
+#define EV_ANNOTATION_ATTACHMENT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ANNOTATION_ATTACHMENT, EvAnnotationAttachmentClass))
+#define EV_IS_ANNOTATION_ATTACHMENT(object)        (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ANNOTATION_ATTACHMENT))
+#define EV_IS_ANNOTATION_ATTACHMENT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ANNOTATION_ATTACHMENT))
+#define EV_ANNOTATION_ATTACHMENT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ANNOTATION_ATTACHMENT, EvAnnotationAttachmentClass))
+
+typedef struct _EvAnnotation                EvAnnotation;
+typedef struct _EvAnnotationClass           EvAnnotationClass;
 
-typedef struct _EvAnnotationMarkup       EvAnnotationMarkup;
-typedef struct _EvAnnotationMarkupIface  EvAnnotationMarkupIface;
+typedef struct _EvAnnotationMarkup          EvAnnotationMarkup;
+typedef struct _EvAnnotationMarkupIface     EvAnnotationMarkupIface;
 
-typedef struct _EvAnnotationText         EvAnnotationText;
-typedef struct _EvAnnotationTextClass    EvAnnotationTextClass;
+typedef struct _EvAnnotationText            EvAnnotationText;
+typedef struct _EvAnnotationTextClass       EvAnnotationTextClass;
+
+typedef struct _EvAnnotationAttachment      EvAnnotationAttachment;
+typedef struct _EvAnnotationAttachmentClass EvAnnotationAttachmentClass;
 
 struct _EvAnnotation
 {
@@ -101,6 +113,18 @@ struct _EvAnnotationTextClass
        EvAnnotationClass parent_class;
 };
 
+struct _EvAnnotationAttachment
+{
+       EvAnnotation parent;
+
+       EvAttachment *attachment;
+};
+
+struct _EvAnnotationAttachmentClass
+{
+       EvAnnotationClass parent_class;
+};
+
 /* EvAnnotation */
 GType         ev_annotation_get_type             (void) G_GNUC_CONST;
 
@@ -123,6 +147,11 @@ void          ev_annotation_markup_set_is_open   (EvAnnotationMarkup *markup,
 GType         ev_annotation_text_get_type        (void) G_GNUC_CONST;
 EvAnnotation *ev_annotation_text_new             (EvPage             *page);
 
+/* EvAnnotationText */
+GType         ev_annotation_attachment_get_type  (void) G_GNUC_CONST;
+EvAnnotation *ev_annotation_attachment_new       (EvPage             *page,
+                                                 EvAttachment       *attachment);
+
 G_END_DECLS
 
 #endif /* EV_ANNOTATION_H */