diff options
author | Tomeu 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) |
commit | e12e13eb0eabdc8dfbe99e958380df6779473c27 (patch) | |
tree | 3e16808354361740d122203216daeed98abd1978 /libdocument/ev-document.c | |
parent | 9d52040ae91a6cd561bd5acf25c4a725a57b27b8 (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.c | 42 |
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) { |