Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/libdocument/ev-document.c
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-01-18 19:43:07 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2009-01-18 19:43:07 (GMT)
commite12e13eb0eabdc8dfbe99e958380df6779473c27 (patch)
tree3e16808354361740d122203216daeed98abd1978 /libdocument/ev-document.c
parent9d52040ae91a6cd561bd5acf25c4a725a57b27b8 (diff)
Make EvDocumentInfo and enums definded in ev-document-info.h GTypes. Fixes
2009-01-18 Tomeu Vizoso <tomeu@sugarlabs.org> * libdocument/Makefile.am: * libdocument/ev-document-info.h: * libdocument/ev-document-type-builtins.c.template: * libdocument/ev-document-type-builtins.h.template: * libdocument/ev-document.c: (ev_document_info_get_type), (ev_document_info_copy): Make EvDocumentInfo and enums definded in ev-document-info.h GTypes. Fixes bug #567789. svn path=/trunk/; revision=3356
Diffstat (limited to 'libdocument/ev-document.c')
-rw-r--r--libdocument/ev-document.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c
index 4ffd41c..1ca362e 100644
--- a/libdocument/ev-document.c
+++ b/libdocument/ev-document.c
@@ -243,6 +243,48 @@ ev_document_render (EvDocument *document,
return retval;
}
+/* EvDocumentInfo */
+GType
+ev_document_info_get_type (void)
+{
+ static GType type = 0;
+ if (type == 0)
+ type = g_boxed_type_register_static ("EvDocumentInfo",
+ (GBoxedCopyFunc)ev_document_info_copy,
+ (GBoxedFreeFunc)ev_document_info_free);
+ return type;
+}
+
+EvDocumentInfo *
+ev_document_info_copy (EvDocumentInfo *info)
+{
+ EvDocumentInfo *copy;
+
+ g_return_val_if_fail (info != NULL, NULL);
+
+ copy = g_new0 (EvDocumentInfo, 1);
+ copy->title = info->title ? g_strdup (info->title) : NULL;
+ copy->format = info->format ? g_strdup (info->format) : NULL;
+ copy->author = info->author ? g_strdup (info->author) : NULL;
+ copy->subject = info->subject ? g_strdup (info->subject) : NULL;
+ copy->keywords = info->keywords ? g_strdup (info->keywords) : NULL;
+ copy->security = info->security ? g_strdup (info->security) : NULL;
+ copy->creator = info->creator ? g_strdup (info->creator) : NULL;
+ copy->producer = info->producer ? g_strdup (info->producer) : NULL;
+ copy->linearized = info->linearized ? g_strdup (info->linearized) : NULL;
+
+ copy->creation_date = info->creation_date;
+ copy->modified_date = info->modified_date;
+ copy->layout = info->layout;
+ copy->mode = info->mode;
+ copy->ui_hints = info->ui_hints;
+ copy->permissions = info->permissions;
+ copy->n_pages = info->n_pages;
+ copy->fields_mask = info->fields_mask;
+
+ return copy;
+}
+
void
ev_document_info_free (EvDocumentInfo *info)
{