diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/Makefile.am | 2 | ||||
-rw-r--r-- | backend/ev-document-links.h | 2 | ||||
-rw-r--r-- | backend/ev-document-security.c | 63 | ||||
-rw-r--r-- | backend/ev-document-security.h | 63 | ||||
-rw-r--r-- | backend/ev-document.c | 10 | ||||
-rw-r--r-- | backend/ev-document.h | 13 |
6 files changed, 151 insertions, 2 deletions
diff --git a/backend/Makefile.am b/backend/Makefile.am index ea599fd..9030333 100644 --- a/backend/Makefile.am +++ b/backend/Makefile.am @@ -19,6 +19,8 @@ libevbackend_la_SOURCES= \ ev-document-thumbnails.h \ ev-document-links.c \ ev-document-links.h \ + ev-document-security.c \ + ev-document-security.h \ ev-document-find.c \ ev-document-find.h \ ev-ps-exporter.c \ diff --git a/backend/ev-document-links.h b/backend/ev-document-links.h index 4576e8c..59e638b 100644 --- a/backend/ev-document-links.h +++ b/backend/ev-document-links.h @@ -1,5 +1,5 @@ /* ev-document-links.h - * this file is part of evince, a gnome document_links viewer + * this file is part of evince, a gnome document viewer * * Copyright (C) 2004 Red Hat, Inc. * diff --git a/backend/ev-document-security.c b/backend/ev-document-security.c new file mode 100644 index 0000000..5458ccc --- /dev/null +++ b/backend/ev-document-security.c @@ -0,0 +1,63 @@ +/* ev-document-links.h + * this file is part of evince, a gnome document_links viewer + * + * Copyright (C) 2004 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 of the License, or + * (at your option) any later version. + * + * Evince 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 "config.h" + +#include "ev-document-security.h" + +GType +ev_document_security_get_type (void) +{ + static GType type = 0; + + if (G_UNLIKELY (type == 0)) + { + static const GTypeInfo our_info = + { + sizeof (EvDocumentSecurityIface), + NULL, + NULL, + }; + + type = g_type_register_static (G_TYPE_INTERFACE, + "EvDocumentSecurity", + &our_info, (GTypeFlags)0); + } + + return type; +} + +gboolean +ev_document_security_has_document_security (EvDocumentSecurity *document_security) +{ + EvDocumentSecurityIface *iface = EV_DOCUMENT_SECURITY_GET_IFACE (document_security); + return iface->has_document_security (document_security); +} + +void +ev_document_security_set_password (EvDocumentSecurity *document_security, + const char *password) +{ + EvDocumentSecurityIface *iface = EV_DOCUMENT_SECURITY_GET_IFACE (document_security); + iface->set_password (document_security, password); +} diff --git a/backend/ev-document-security.h b/backend/ev-document-security.h new file mode 100644 index 0000000..154a3b1 --- /dev/null +++ b/backend/ev-document-security.h @@ -0,0 +1,63 @@ +/* ev-document-security.h + * this file is part of evince, a gnome pdf viewer + * + * Copyright (C) 2005 Red Hat, Inc. + * + * Author: + * Jonathan Blandford <jrb@alum.mit.edu> + * + * Evince 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 of the License, or + * (at your option) any later version. + * + * Evince 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. + */ + +#ifndef EV_DOCUMENT_SECURITY_H +#define EV_DOCUMENT_SECURITY_H + +#include <glib-object.h> +#include <glib.h> +#include <gdk/gdk.h> + +#include "ev-document.h" + +G_BEGIN_DECLS + + +#define EV_TYPE_DOCUMENT_SECURITY (ev_document_security_get_type ()) +#define EV_DOCUMENT_SECURITY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_SECURITY, EvDocumentSecurity)) +#define EV_DOCUMENT_SECURITY_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_SECURITY, EvDocumentSecurityIface)) +#define EV_IS_DOCUMENT_SECURITY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_SECURITY)) +#define EV_IS_DOCUMENT_SECURITY_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_SECURITY)) +#define EV_DOCUMENT_SECURITY_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_SECURITY, EvDocumentSecurityIface)) + +typedef struct _EvDocumentSecurity EvDocumentSecurity; +typedef struct _EvDocumentSecurityIface EvDocumentSecurityIface; + +struct _EvDocumentSecurityIface +{ + GTypeInterface base_iface; + + /* Methods */ + gboolean (* has_document_security) (EvDocumentSecurity *document_security); + void (* set_password) (EvDocumentSecurity *document_security, + const char *password); +}; + +GType ev_document_security_get_type (void); +gboolean ev_document_security_has_document_security (EvDocumentSecurity *document_security); +void ev_document_security_set_password (EvDocumentSecurity *document_security, + const char *password); + +G_END_DECLS + +#endif diff --git a/backend/ev-document.c b/backend/ev-document.c index a8de9a5..6f6a687 100644 --- a/backend/ev-document.c +++ b/backend/ev-document.c @@ -56,6 +56,16 @@ ev_document_get_type (void) return type; } +GQuark +ev_document_error_quark (void) +{ + static GQuark q = 0; + if (q == 0) + q = g_quark_from_static_string ("ev-document-error-quark"); + + return q; +} + static void ev_document_class_init (gpointer g_class) { diff --git a/backend/ev-document.h b/backend/ev-document.h index 3616e43..5581cd7 100644 --- a/backend/ev-document.h +++ b/backend/ev-document.h @@ -40,6 +40,14 @@ G_BEGIN_DECLS typedef struct _EvDocument EvDocument; typedef struct _EvDocumentIface EvDocumentIface; +#define EV_DOCUMENT_ERROR ev_document_error_quark () + +typedef enum +{ + EV_DOCUMENT_ERROR_INVALID, + EV_DOCUMENT_ERROR_ENCRYPTED +} EvDocumentError; + struct _EvDocumentIface { GTypeInterface base_iface; @@ -78,9 +86,12 @@ struct _EvDocumentIface int clip_y, int clip_width, int clip_height); + + }; -GType ev_document_get_type (void); +GType ev_document_get_type (void); +GQuark ev_document_error_quark (void); gboolean ev_document_load (EvDocument *document, const char *uri, |