[evince/wip/annotation_support: 1/7] libdocument: Add EvAnnotationTextMarkup GObject.
- From: Jose Aliste <jaliste src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince/wip/annotation_support: 1/7] libdocument: Add EvAnnotationTextMarkup GObject.
- Date: Wed, 27 Jun 2012 13:00:36 +0000 (UTC)
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]