summaryrefslogtreecommitdiff
path: root/glib
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@redhat.com>2005-05-23 04:23:53 +0000
committerJonathan Blandford <jrb@redhat.com>2005-05-23 04:23:53 +0000
commit4d8224819da7a85e4d99f96c9bbb047ece58130a (patch)
treee796faf28774678224c4c0e10a0b7e0211dc3000 /glib
parent1f677e2f60634a7d0c5e0e0d2125ab15c2722979 (diff)
Mon May 23 00:22:41 2005 Jonathan Blandford <jrb@redhat.com>
* glib/poppler-document.h: Add a permissions flag to the glib bindings.
Diffstat (limited to 'glib')
-rw-r--r--glib/poppler-document.cc24
-rw-r--r--glib/poppler-document.h16
2 files changed, 33 insertions, 7 deletions
diff --git a/glib/poppler-document.cc b/glib/poppler-document.cc
index 7f8370de..b6399fd8 100644
--- a/glib/poppler-document.cc
+++ b/glib/poppler-document.cc
@@ -41,6 +41,7 @@ enum {
PROP_PAGE_LAYOUT,
PROP_PAGE_MODE,
PROP_VIEWER_PREFERENCES,
+ PROP_PERMISSIONS,
};
typedef struct _PopplerDocumentClass PopplerDocumentClass;
@@ -274,6 +275,7 @@ poppler_document_get_property (GObject *object,
Object obj;
Catalog *catalog;
gchar *str;
+ guint flag;
switch (prop_id)
{
@@ -323,6 +325,18 @@ poppler_document_get_property (GObject *object,
/* FIXME: write... */
g_value_set_flags (value, POPPLER_VIEWER_PREFERENCES_UNSET);
break;
+ case PROP_PERMISSIONS:
+ flag = 0;
+ if (document->doc->okToPrint ())
+ flag |= POPPLER_PERMISSIONS_OK_TO_PRINT;
+ if (document->doc->okToChange ())
+ flag |= POPPLER_PERMISSIONS_OK_TO_MODIFY;
+ if (document->doc->okToCopy ())
+ flag |= POPPLER_PERMISSIONS_OK_TO_COPY;
+ if (document->doc->okToAddNotes ())
+ flag |= POPPLER_PERMISSIONS_OK_TO_ADD_NOTES;
+ g_value_set_flags (value, flag);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -410,6 +424,16 @@ poppler_document_class_init (PopplerDocumentClass *klass)
POPPLER_TYPE_VIEWER_PREFERENCES,
POPPLER_VIEWER_PREFERENCES_UNSET,
G_PARAM_READABLE));
+
+ g_object_class_install_property
+ (G_OBJECT_CLASS (klass),
+ PROP_PERMISSIONS,
+ g_param_spec_flags ("permissions",
+ "Permissions",
+ "Permissions",
+ POPPLER_TYPE_PERMISSIONS,
+ POPPLER_PERMISSIONS_FULL,
+ G_PARAM_READABLE));
}
static void
diff --git a/glib/poppler-document.h b/glib/poppler-document.h
index ff4ce5e4..18fdf27c 100644
--- a/glib/poppler-document.h
+++ b/glib/poppler-document.h
@@ -66,13 +66,15 @@ typedef enum /*< flags >*/
typedef enum /*< flags >*/
{
- POPPLER_PERMISSIONS_PRINT = 1 << 0,
- POPPLER_PERMISSIONS_MODIFY = 1 << 1,
- POPPLER_PERMISSIONS_COPY = 1 << 2,
- POPPLER_PERMISSIONS_EXTRACT_TEXT = 1 << 3,
- POPPLER_PERMISSIONS_ANNOTATIONS_AND_FORMS = 1 << 4,
- POPPLER_PERMISSIONS_FORMS = 1 << 5,
- POPPLER_PERMISSIONS_PRINT_LOW_QUALITY = 1 << 6,
+ POPPLER_PERMISSIONS_OK_TO_PRINT = 1 << 0,
+ POPPLER_PERMISSIONS_OK_TO_MODIFY = 1 << 1,
+ POPPLER_PERMISSIONS_OK_TO_COPY = 1 << 2,
+ POPPLER_PERMISSIONS_OK_TO_ADD_NOTES = 1 << 3,
+ POPPLER_PERMISSIONS_FULL = (POPPLER_PERMISSIONS_OK_TO_PRINT
+ | POPPLER_PERMISSIONS_OK_TO_MODIFY
+ | POPPLER_PERMISSIONS_OK_TO_COPY
+ | POPPLER_PERMISSIONS_OK_TO_ADD_NOTES),
+
} PopplerPermissions;