]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-document.h
[shell] Do not link to poppler directly
[evince.git] / libdocument / ev-document.h
index 74bd3bb7ebb0268bd652aff046e62ed1463c1742..f9053772907fb0b5a9993894c0f76701ef153463 100644 (file)
@@ -47,8 +47,7 @@ G_BEGIN_DECLS
 
 typedef struct _EvDocument        EvDocument;
 typedef struct _EvDocumentClass   EvDocumentClass;
-typedef struct _EvPageCache       EvPageCache;
-typedef struct _EvPageCacheClass  EvPageCacheClass;
+typedef struct _EvDocumentPrivate EvDocumentPrivate;
 
 #define EV_DOCUMENT_ERROR ev_document_error_quark ()
 #define EV_DOC_MUTEX_LOCK (ev_document_doc_mutex_lock ())
@@ -67,9 +66,18 @@ typedef struct {
 
 typedef struct _EvRectangle EvRectangle;
 
+typedef struct _EvDocumentBackendInfo EvDocumentBackendInfo;
+struct _EvDocumentBackendInfo
+{
+       const gchar *name;
+       const gchar *version;
+};
+
 struct _EvDocument
 {
        GObject base;
+
+       EvDocumentPrivate *priv;
 };
 
 struct _EvDocumentClass
@@ -95,44 +103,60 @@ 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;
-GQuark           ev_document_error_quark      (void);
+GType            ev_document_get_type             (void) G_GNUC_CONST;
+GQuark           ev_document_error_quark          (void);
 
 /* Document mutex */
-GMutex          *ev_document_get_doc_mutex    (void);
-void             ev_document_doc_mutex_lock   (void);
-void             ev_document_doc_mutex_unlock (void);
-gboolean         ev_document_doc_mutex_trylock(void);
+GMutex          *ev_document_get_doc_mutex        (void);
+void             ev_document_doc_mutex_lock       (void);
+void             ev_document_doc_mutex_unlock     (void);
+gboolean         ev_document_doc_mutex_trylock    (void);
 
 /* FontConfig mutex */
-GMutex          *ev_document_get_fc_mutex     (void);
-void             ev_document_fc_mutex_lock    (void);
-void             ev_document_fc_mutex_unlock  (void);
-gboolean         ev_document_fc_mutex_trylock (void);
+GMutex          *ev_document_get_fc_mutex         (void);
+void             ev_document_fc_mutex_lock        (void);
+void             ev_document_fc_mutex_unlock      (void);
+gboolean         ev_document_fc_mutex_trylock     (void);
 
-EvDocumentInfo  *ev_document_get_info         (EvDocument      *document);
-gboolean         ev_document_load             (EvDocument      *document,
-                                               const char      *uri,
-                                               GError         **error);
-gboolean         ev_document_save             (EvDocument      *document,
-                                               const char      *uri,
-                                               GError         **error);
-gint             ev_document_get_n_pages      (EvDocument      *document);
-EvPage          *ev_document_get_page         (EvDocument      *document,
-                                              gint             index);
-void             ev_document_get_page_size    (EvDocument      *document,
-                                               EvPage          *page,
-                                               double          *width,
-                                               double          *height);
-gchar           *ev_document_get_page_label   (EvDocument      *document,
-                                               EvPage          *page);
-cairo_surface_t *ev_document_render           (EvDocument      *document,
-                                               EvRenderContext *rc);
+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);
+gboolean         ev_document_save                 (EvDocument      *document,
+                                                  const char      *uri,
+                                                  GError         **error);
+gint             ev_document_get_n_pages          (EvDocument      *document);
+EvPage          *ev_document_get_page             (EvDocument      *document,
+                                                  gint             index);
+void             ev_document_get_page_size        (EvDocument      *document,
+                                                  gint             page_index,
+                                                  double          *width,
+                                                  double          *height);
+gchar           *ev_document_get_page_label       (EvDocument      *document,
+                                                  gint             page_index);
+cairo_surface_t *ev_document_render               (EvDocument      *document,
+                                                  EvRenderContext *rc);
+const gchar     *ev_document_get_uri              (EvDocument      *document);
+const gchar     *ev_document_get_title            (EvDocument      *document);
+gboolean         ev_document_is_page_size_uniform (EvDocument      *document);
+void             ev_document_get_max_page_size    (EvDocument      *document,
+                                                  gdouble         *width,
+                                                  gdouble         *height);
+gboolean         ev_document_check_dimensions     (EvDocument      *document);
+gint             ev_document_get_max_label_len    (EvDocument      *document);
+gboolean         ev_document_has_text_page_labels (EvDocument      *document);
+gboolean         ev_document_find_page_by_label   (EvDocument      *document,
+                                                  const gchar     *page_label,
+                                                  gint            *page_index);
 
-gint            ev_rect_cmp                   (EvRectangle     *a,
-                                               EvRectangle     *b);
+gint             ev_rect_cmp                      (EvRectangle     *a,
+                                                  EvRectangle     *b);
 
 #define EV_TYPE_RECTANGLE (ev_rectangle_get_type ())
 struct _EvRectangle