]> www.fi.muni.cz Git - evince.git/blobdiff - backend/ev-document.h
Make frontends depend on just libev. Rework and group CFLAGS/LIBS
[evince.git] / backend / ev-document.h
index 15b2cc95447e776bdee357694a251a94ab6990ae..e95ce96f277c080ddc8191a37392ead2fe25a05d 100644 (file)
@@ -27,6 +27,8 @@
 #include <gdk/gdk.h>
 
 #include "ev-link.h"
+#include "ev-document-info.h"
+#include "ev-render-context.h"
 
 G_BEGIN_DECLS
 
@@ -42,11 +44,11 @@ typedef struct _EvDocumentIface   EvDocumentIface;
 typedef struct _EvPageCache       EvPageCache;
 typedef struct _EvPageCacheClass  EvPageCacheClass;
 
-#include "ev-page-cache.h"
 
 
 #define EV_DOCUMENT_ERROR ev_document_error_quark ()
-#define EV_DOC_MUTEX (ev_document_get_doc_mutex ())
+#define EV_DOC_MUTEX_LOCK (ev_document_doc_mutex_lock ())
+#define EV_DOC_MUTEX_UNLOCK (ev_document_doc_mutex_unlock ())
 
 typedef enum
 {
@@ -54,70 +56,80 @@ typedef enum
        EV_DOCUMENT_ERROR_ENCRYPTED
 } EvDocumentError;
 
+typedef struct {
+       double x1;
+       double y1;
+       double x2;
+       double y2;
+} EvRectangle;
+
 struct _EvDocumentIface
 {
        GTypeInterface base_iface;
 
-       /* Signals */
-       void        (* page_changed)    (EvDocument *document);
-       void        (* scale_changed)    (EvDocument *document);
-
        /* Methods  */
-       gboolean    (* load)            (EvDocument   *document,
-                                        const char   *uri,
-                                        GError      **error);
-       gboolean    (* save)            (EvDocument   *document,
-                                        const char   *uri,
-                                        GError      **error);
-       int         (* get_n_pages)     (EvDocument   *document);
-       void        (* set_page)        (EvDocument   *document,
-                                        int           page);
-       int         (* get_page)        (EvDocument   *document);
-       void        (* set_scale)       (EvDocument   *document,
-                                        double        scale);
-       void        (* get_page_size)   (EvDocument   *document,
-                                        int           page,
-                                        int          *width,
-                                        int          *height);
-       char      * (* get_text)        (EvDocument   *document,
-                                        GdkRectangle *rect);
-       EvLink    * (* get_link)        (EvDocument   *document,
-                                        int           x,
-                                        int           y);
-       GList     * (* get_links)       (EvDocument   *document);
-       GdkPixbuf * (* render_pixbuf)   (EvDocument   *document);
+       gboolean         (* load)            (EvDocument   *document,
+                                             const char   *uri,
+                                             GError      **error);
+       gboolean         (* save)            (EvDocument   *document,
+                                             const char   *uri,
+                                             GError      **error);
+       int              (* get_n_pages)     (EvDocument   *document);
+       void             (* get_page_size)   (EvDocument   *document,
+                                             int           page,
+                                             double       *width,
+                                             double       *height);
+       char           * (* get_page_label)  (EvDocument   *document,
+                                             int           page);
+       gboolean         (* can_get_text)    (EvDocument   *document);
+       char           * (* get_text)        (EvDocument   *document,
+                                             int           page,
+                                             EvRectangle  *rect);
+       GList          * (* get_links)       (EvDocument   *document,
+                                             int           page);
+       GdkPixbuf      * (* render_pixbuf)   (EvDocument      *document,
+                                             EvRenderContext *rc);
+       EvOrientation    (* get_orientation) (EvDocument   *document);
+       void             (* set_orientation) (EvDocument   *document,
+                                             EvOrientation orientation);
+       EvDocumentInfo * (* get_info)        (EvDocument   *document);
 };
 
-GType        ev_document_get_type       (void);
-GQuark       ev_document_error_quark    (void);
-EvPageCache *ev_document_get_page_cache (EvDocument *document);
-GMutex      *ev_document_get_doc_mutex  (void);
-
-
-gboolean   ev_document_load          (EvDocument    *document,
-                                     const char    *uri,
-                                     GError       **error);
-gboolean   ev_document_save          (EvDocument    *document,
-                                     const char    *uri,
-                                     GError       **error);
-char      *ev_document_get_title     (EvDocument    *document);
-int        ev_document_get_n_pages   (EvDocument    *document);
-void       ev_document_set_page      (EvDocument    *document,
-                                     int            page);
-int        ev_document_get_page      (EvDocument    *document);
-void       ev_document_set_scale     (EvDocument    *document,
-                                     double         scale);
-void       ev_document_get_page_size (EvDocument    *document,
-                                     int            page,
-                                     int           *width,
-                                     int           *height);
-char      *ev_document_get_text      (EvDocument    *document,
-                                     GdkRectangle  *rect);
-EvLink    *ev_document_get_link      (EvDocument    *document,
-                                     int            x,
-                                     int            y);
-GList     *ev_document_get_links     (EvDocument    *document);
-GdkPixbuf *ev_document_render_pixbuf (EvDocument    *document);
+GType          ev_document_get_type       (void);
+GQuark         ev_document_error_quark    (void);
+GMutex        *ev_document_get_doc_mutex  (void);
+void            ev_document_doc_mutex_lock (void);
+void            ev_document_doc_mutex_unlock (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);
+int            ev_document_get_n_pages     (EvDocument     *document);
+void           ev_document_get_page_size   (EvDocument     *document,
+                                            int             page,
+                                            double         *width,
+                                            double         *height);
+char          *ev_document_get_page_label  (EvDocument     *document,
+                                            int             page);
+gboolean       ev_document_can_get_text    (EvDocument     *document);
+char          *ev_document_get_text        (EvDocument     *document,
+                                            int             page,
+                                            EvRectangle    *rect);
+GList         *ev_document_get_links       (EvDocument     *document,
+                                            int             page);
+GdkPixbuf      *ev_document_render_pixbuf   (EvDocument     *document,
+                                            EvRenderContext *rc);
+EvOrientation   ev_document_get_orientation (EvDocument     *document);
+void           ev_document_set_orientation (EvDocument     *document,
+                                            EvOrientation   orientation);
+
+
+gint            ev_rect_cmp                 (EvRectangle    *a,
+                                            EvRectangle    *b);
 
 
 G_END_DECLS