Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-01-14 19:15:17 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-01-14 19:15:17 (GMT)
commit9c7bad43011ee2f9a8e0837bd2372dea3b710244 (patch)
tree3ce46ba70c4abcc7dc6ef35e19557c1cec6d7025
parentf5dfbe80287407a6fe9c7ef4e2c7fa1d08942440 (diff)
Make EvDocumentInfo and friends GTypes
-rw-r--r--libdocument/Makefile.am1
-rw-r--r--libdocument/ev-document-info.c200
-rw-r--r--libdocument/ev-document-info.h15
3 files changed, 216 insertions, 0 deletions
diff --git a/libdocument/Makefile.am b/libdocument/Makefile.am
index 3f32f1a..57c27a6 100644
--- a/libdocument/Makefile.am
+++ b/libdocument/Makefile.am
@@ -61,6 +61,7 @@ libevbackend_la_SOURCES= \
ev-image.c \
ev-document.c \
ev-document-factory.c \
+ ev-document-info.c \
ev-document-thumbnails.c \
ev-document-fonts.c \
ev-document-layers.c \
diff --git a/libdocument/ev-document-info.c b/libdocument/ev-document-info.c
new file mode 100644
index 0000000..387b1af
--- /dev/null
+++ b/libdocument/ev-document-info.c
@@ -0,0 +1,200 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
+/*
+ * Copyright (C) 2000-2003 Marco Pesenti Gritti
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "ev-document-info.h"
+
+GType
+ev_document_info_get_type (void)
+{
+ static GType type = 0;
+
+ if (G_UNLIKELY (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);
+ if (info->title)
+ copy->title = g_strdup (info->title);
+ if (info->format)
+ copy->format = g_strdup (info->format);
+ if (info->author)
+ copy->author = g_strdup (info->author);
+ if (info->subject)
+ copy->subject = g_strdup (info->subject);
+ if (info->keywords)
+ copy->keywords = g_strdup (info->keywords);
+ if (info->security)
+ copy->security = g_strdup (info->security);
+ if (info->creator)
+ copy->creator = g_strdup (info->creator);
+ if (info->producer)
+ copy->producer = g_strdup (info->producer);
+ if (info->linearized)
+ copy->linearized = g_strdup (info->linearized);
+
+ 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;
+}
+
+/* Already in ev-document.c
+void
+ev_document_info_free (EvDocumentInfo *info)
+{
+ if (info == NULL)
+ return;
+
+ g_free (info->title);
+ g_free (info->format);
+ g_free (info->author);
+ g_free (info->subject);
+ g_free (info->keywords);
+ g_free (info->security);
+ g_free (info->creator);
+ g_free (info->producer);
+ g_free (info->linearized);
+
+ g_free (info);
+}
+*/
+
+GType
+ev_document_layout_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { EV_DOCUMENT_LAYOUT_SINGLE_PAGE, "EV_DOCUMENT_LAYOUT_SINGLE_PAGE", "single-page" },
+ { EV_DOCUMENT_LAYOUT_ONE_COLUMN, "EV_DOCUMENT_LAYOUT_ONE_COLUMN", "one-column" },
+ { EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT, "EV_DOCUMENT_LAYOUT_TWO_COLUMN_LEFT", "two-column-left" },
+ { EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT, "EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT", "two-column-right" },
+ { EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT, "EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT", "two-page-left" },
+ { EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT, "EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT", "two-page-right" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("EvDocumentLayout", values);
+ }
+ return etype;
+}
+
+GType
+ev_document_mode_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { EV_DOCUMENT_MODE_NONE, "EV_DOCUMENT_MODE_NONE", "none" },
+ { EV_DOCUMENT_MODE_USE_OC, "EV_DOCUMENT_MODE_USE_OC", "use-oc" },
+ { EV_DOCUMENT_MODE_USE_THUMBS, "EV_DOCUMENT_MODE_USE_THUMBS", "use-thumbs" },
+ { EV_DOCUMENT_MODE_FULL_SCREEN, "EV_DOCUMENT_MODE_FULL_SCREEN", "full-screen" },
+ { EV_DOCUMENT_MODE_USE_ATTACHMENTS, "EV_DOCUMENT_MODE_USE_ATTACHMENTS", "use-attachments" },
+ { EV_DOCUMENT_MODE_PRESENTATION, "EV_DOCUMENT_MODE_PRESENTATION", "presentation" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("EvDocumentMode", values);
+ }
+ return etype;
+}
+
+GType
+ev_document_ui_hints_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR, "EV_DOCUMENT_UI_HINT_HIDE_TOOLBAR", "hide-toolbar" },
+ { EV_DOCUMENT_UI_HINT_HIDE_MENUBAR, "EV_DOCUMENT_UI_HINT_HIDE_MENUBAR", "hide-menubar" },
+ { EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI, "EV_DOCUMENT_UI_HINT_HIDE_WINDOWUI", "hide-windowui" },
+ { EV_DOCUMENT_UI_HINT_FIT_WINDOW, "EV_DOCUMENT_UI_HINT_FIT_WINDOW", "fit-window" },
+ { EV_DOCUMENT_UI_HINT_CENTER_WINDOW, "EV_DOCUMENT_UI_HINT_CENTER_WINDOW", "center-window" },
+ { EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE, "EV_DOCUMENT_UI_HINT_DISPLAY_DOC_TITLE", "display-doc-title" },
+ { EV_DOCUMENT_UI_HINT_DIRECTION_RTL, "EV_DOCUMENT_UI_HINT_DIRECTION_RTL", "direction-rtl" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("EvDocumentUIHints", values);
+ }
+ return etype;
+}
+
+GType
+ev_document_permissions_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT, "EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT", "ok-to-print" },
+ { EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY, "EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY", "ok-to-modify" },
+ { EV_DOCUMENT_PERMISSIONS_OK_TO_COPY, "EV_DOCUMENT_PERMISSIONS_OK_TO_COPY", "ok-to-copy" },
+ { EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES, "EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES", "ok-to-add-notes" },
+ { EV_DOCUMENT_PERMISSIONS_FULL, "EV_DOCUMENT_PERMISSIONS_FULL", "full" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("EvDocumentPermissions", values);
+ }
+ return etype;
+}
+
+GType
+ev_document_info_fields_get_type (void)
+{
+ static GType etype = 0;
+ if (etype == 0) {
+ static const GEnumValue values[] = {
+ { EV_DOCUMENT_INFO_TITLE, "EV_DOCUMENT_INFO_TITLE", "title" },
+ { EV_DOCUMENT_INFO_FORMAT, "EV_DOCUMENT_INFO_FORMAT", "format" },
+ { EV_DOCUMENT_INFO_AUTHOR, "EV_DOCUMENT_INFO_AUTHOR", "author" },
+ { EV_DOCUMENT_INFO_SUBJECT, "EV_DOCUMENT_INFO_SUBJECT", "subject" },
+ { EV_DOCUMENT_INFO_KEYWORDS, "EV_DOCUMENT_INFO_KEYWORDS", "keywords" },
+ { EV_DOCUMENT_INFO_LAYOUT, "EV_DOCUMENT_INFO_LAYOUT", "layout" },
+ { EV_DOCUMENT_INFO_CREATOR, "EV_DOCUMENT_INFO_CREATOR", "creator" },
+ { EV_DOCUMENT_INFO_PRODUCER, "EV_DOCUMENT_INFO_PRODUCER", "producer" },
+ { EV_DOCUMENT_INFO_CREATION_DATE, "EV_DOCUMENT_INFO_CREATION_DATE", "creation-date" },
+ { EV_DOCUMENT_INFO_MOD_DATE, "EV_DOCUMENT_INFO_MOD_DATE", "mod-date" },
+ { EV_DOCUMENT_INFO_LINEARIZED, "EV_DOCUMENT_INFO_LINEARIZED", "linearized" },
+ { EV_DOCUMENT_INFO_START_MODE, "EV_DOCUMENT_INFO_START_MODE", "start-mode" },
+ { EV_DOCUMENT_INFO_UI_HINTS, "EV_DOCUMENT_INFO_UI_HINTS", "ui-hints" },
+ { EV_DOCUMENT_INFO_PERMISSIONS, "EV_DOCUMENT_INFO_PERMISSIONS", "permissions" },
+ { EV_DOCUMENT_INFO_N_PAGES, "EV_DOCUMENT_INFO_N_PAGES", "n-pages" },
+ { EV_DOCUMENT_INFO_SECURITY, "EV_DOCUMENT_INFO_SECURITY", "security" },
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("EvDocumentInfoFields", values);
+ }
+ return etype;
+}
diff --git a/libdocument/ev-document-info.h b/libdocument/ev-document-info.h
index b5e8654..95f2771 100644
--- a/libdocument/ev-document-info.h
+++ b/libdocument/ev-document-info.h
@@ -26,6 +26,19 @@
G_BEGIN_DECLS
+GType ev_document_info_get_type (void);
+GType ev_document_layout_get_type (void);
+GType ev_document_mode_get_type (void);
+GType ev_document_ui_hints_get_type (void);
+GType ev_document_info_fields_get_type (void);
+
+#define EV_TYPE_DOCUMENT_INFO (ev_document_info_get_type())
+#define EV_TYPE_DOCUMENT_LAYOUT (ev_document_layout_get_type())
+#define EV_TYPE_DOCUMENT_MODE (ev_document_mode_get_type())
+#define EV_TYPE_DOCUMENT_UI_HINTS (ev_document_ui_hints_get_type())
+#define EV_TYPE_DOCUMENT_PERMISSIONS (ev_document_permissions_get_type())
+#define EV_TYPE_DOCUMENT_INFO_FIELDS (ev_document_info_fields_get_type())
+
typedef struct _EvDocumentInfo EvDocumentInfo;
typedef enum
@@ -118,6 +131,8 @@ struct _EvDocumentInfo
guint fields_mask;
};
+GType ev_document_info_get_type (void) G_GNUC_CONST;
+EvDocumentInfo *ev_document_info_copy (EvDocumentInfo *info);
void ev_document_info_free (EvDocumentInfo *info);
G_END_DECLS