[evince/wip/annotation_support: 1/7] libdocument: Add EvAnnotationTextMarkup GObject.



commit 67432b0f2c886862ed64b8efcd794ad56dad1666
Author: Josà Aliste <jaliste gnome org>
Date:   Mon Jun 25 21:34:58 2012 -0400

    libdocument: Add EvAnnotationTextMarkup GObject.
    
    Add EvAnnotationTextMarkup GObject. This object is a wrapper
    for PopplerAnnotTextMarkup GObject, which manages Highlight, Underline,
    Squiggly and Strike Out PDF annotations.

 libdocument/ev-annotation.c |   37 +++++++++++++++++++++++++++++++++++++
 libdocument/ev-annotation.h |   19 ++++++++++++++++++-
 2 files changed, 55 insertions(+), 1 deletions(-)
---
diff --git a/libdocument/ev-annotation.c b/libdocument/ev-annotation.c
index 843a156..e0ecc80 100644
--- a/libdocument/ev-annotation.c
+++ b/libdocument/ev-annotation.c
@@ -57,6 +57,14 @@ struct _EvAnnotationTextClass {
 	EvAnnotationClass parent_class;
 };
 
+struct _EvAnnotationTextMarkup {
+        EvAnnotation parent;
+};
+
+struct _EvAnnotationTextMarkupClass {
+        EvAnnotationClass parent_class;
+};
+
 struct _EvAnnotationAttachment {
 	EvAnnotation parent;
 
@@ -109,6 +117,13 @@ G_DEFINE_TYPE_WITH_CODE (EvAnnotationText, ev_annotation_text, EV_TYPE_ANNOTATIO
 		 G_IMPLEMENT_INTERFACE (EV_TYPE_ANNOTATION_MARKUP,
 					ev_annotation_text_markup_iface_init);
 	 });
+
+G_DEFINE_TYPE_WITH_CODE (EvAnnotationTextMarkup, ev_annotation_text_markup, EV_TYPE_ANNOTATION,
+	 {
+		G_IMPLEMENT_INTERFACE (EV_TYPE_ANNOTATION_MARKUP,
+				       ev_annotation_text_markup_iface_init);
+	 });
+
 G_DEFINE_TYPE_WITH_CODE (EvAnnotationAttachment, ev_annotation_attachment, EV_TYPE_ANNOTATION,
 	 {
 		 G_IMPLEMENT_INTERFACE (EV_TYPE_ANNOTATION_MARKUP,
@@ -991,6 +1006,28 @@ ev_annotation_text_set_is_open (EvAnnotationText *text,
 	return TRUE;
 }
 
+/* EvAnnotationTextMarkup */
+static void
+ev_annotation_text_markup_init (EvAnnotationTextMarkup *annot)
+{
+        EV_ANNOTATION (annot)->type = EV_ANNOTATION_TYPE_TEXT_MARKUP;
+}
+static void
+ev_annotation_text_markup_class_init (EvAnnotationTextMarkupClass *klass)
+{
+       GObjectClass *g_object_class = G_OBJECT_CLASS (klass);
+
+        ev_annotation_markup_class_install_properties (g_object_class);
+}
+
+EvAnnotation *
+ev_annotation_text_markup_new (EvPage *page)
+{
+	return EV_ANNOTATION (g_object_new (EV_TYPE_ANNOTATION_TEXT_MARKUP,
+					   "page", page,
+					   NULL));
+}
+
 /* EvAnnotationAttachment */
 static void
 ev_annotation_attachment_finalize (GObject *object)
diff --git a/libdocument/ev-annotation.h b/libdocument/ev-annotation.h
index 554523c..3b824fa 100644
--- a/libdocument/ev-annotation.h
+++ b/libdocument/ev-annotation.h
@@ -57,6 +57,15 @@ 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))
 
+/* EvAnnotationTextMarkup */
+#define EV_TYPE_ANNOTATION_TEXT_MARKUP              (ev_annotation_text_markup_get_type())
+#define EV_ANNOTATION_TEXT_MARKUP(object)           (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_ANNOTATION_TEXT_MARKUP, EvAnnotationTextMarkup))
+#define EV_ANNOTATION_TEXT_MARKUP_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_ANNOTATION_TEXT_MARKUP, EvAnnotationTextMarkupClass))
+#define EV_IS_ANNOTATION_TEXT_MARKUP(object)        (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_ANNOTATION_TEXT_MARKUP))
+#define EV_IS_ANNOTATION_TEXT_MARKUP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_ANNOTATION_TEXT_MARKUP))
+#define EV_ANNOTATION_TEXT_MARKUP_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_ANNOTATION_TEXT_MARKUP, EvAnnotationTextMarkupClass))
+
+
 /* 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))
@@ -74,13 +83,17 @@ typedef struct _EvAnnotationMarkupInterface EvAnnotationMarkupInterface;
 typedef struct _EvAnnotationText            EvAnnotationText;
 typedef struct _EvAnnotationTextClass       EvAnnotationTextClass;
 
+typedef struct _EvAnnotationTextMarkup      EvAnnotationTextMarkup;
+typedef struct _EvAnnotationTextMarkupClass EvAnnotationTextMarkupClass;
+
 typedef struct _EvAnnotationAttachment      EvAnnotationAttachment;
 typedef struct _EvAnnotationAttachmentClass EvAnnotationAttachmentClass;
 
 typedef enum {
 	EV_ANNOTATION_TYPE_UNKNOWN,
 	EV_ANNOTATION_TYPE_TEXT,
-	EV_ANNOTATION_TYPE_ATTACHMENT
+	EV_ANNOTATION_TYPE_ATTACHMENT,
+	EV_ANNOTATION_TYPE_TEXT_MARKUP
 } EvAnnotationType;
 
 typedef enum {
@@ -148,6 +161,10 @@ gboolean             ev_annotation_text_get_is_open          (EvAnnotationText
 gboolean             ev_annotation_text_set_is_open          (EvAnnotationText       *text,
 							      gboolean                is_open);
 
+/* EvAnnotationTextMarkup */
+GType                ev_annotation_text_markup_get_type      (void) G_GNUC_CONST;
+EvAnnotation        *ev_annotation_text_markup_new           (EvPage                 *page);
+
 /* EvAnnotationAttachment */
 GType                ev_annotation_attachment_get_type       (void) G_GNUC_CONST;
 EvAnnotation        *ev_annotation_attachment_new            (EvPage                 *page,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]