diff options
Diffstat (limited to 'libdocument')
-rw-r--r-- | libdocument/ev-document.c | 13 | ||||
-rw-r--r-- | libdocument/ev-document.h | 11 |
2 files changed, 24 insertions, 0 deletions
diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c index c126293..edebe37 100644 --- a/libdocument/ev-document.c +++ b/libdocument/ev-document.c @@ -141,6 +141,7 @@ ev_document_class_init (EvDocumentClass *klass) klass->get_page = ev_document_impl_get_page; klass->get_info = ev_document_impl_get_info; + klass->get_backend_info = NULL; g_object_class->finalize = ev_document_finalize; } @@ -423,6 +424,18 @@ ev_document_get_info (EvDocument *document) return document->priv->info; } +gboolean +ev_document_get_backend_info (EvDocument *document, EvDocumentBackendInfo *info) +{ + g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE); + + EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document); + if (klass->get_backend_info == NULL) + return FALSE; + + return klass->get_backend_info (document, info); +} + cairo_surface_t * ev_document_render (EvDocument *document, EvRenderContext *rc) diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h index 89acbe6..f905377 100644 --- a/libdocument/ev-document.h +++ b/libdocument/ev-document.h @@ -66,6 +66,13 @@ typedef struct { typedef struct _EvRectangle EvRectangle; +typedef struct _EvDocumentBackendInfo EvDocumentBackendInfo; +struct _EvDocumentBackendInfo +{ + const gchar *name; + const gchar *version; +}; + struct _EvDocument { GObject base; @@ -96,6 +103,8 @@ struct _EvDocumentClass cairo_surface_t * (* render) (EvDocument *document, EvRenderContext *rc); EvDocumentInfo * (* get_info) (EvDocument *document); + gboolean (* get_backend_info)(EvDocument *document, + EvDocumentBackendInfo *info); }; GType ev_document_get_type (void) G_GNUC_CONST; @@ -114,6 +123,8 @@ void ev_document_fc_mutex_unlock (void); gboolean ev_document_fc_mutex_trylock (void); EvDocumentInfo *ev_document_get_info (EvDocument *document); +gboolean ev_document_get_backend_info (EvDocument *document, + EvDocumentBackendInfo *info); gboolean ev_document_load (EvDocument *document, const char *uri, GError **error); |