#include <glib.h>
#include <gdk/gdk.h>
+#include "ev-link.h"
+
G_BEGIN_DECLS
#define EV_TYPE_DOCUMENT (ev_document_get_type ())
#define EV_IS_DOCUMENT_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT))
#define EV_DOCUMENT_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT, EvDocumentIface))
-typedef struct _EvDocument EvDocument;
-typedef struct _EvDocumentIface EvDocumentIface;
+typedef struct _EvDocument EvDocument;
+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 ())
+
+typedef enum
+{
+ EV_DOCUMENT_ERROR_INVALID,
+ EV_DOCUMENT_ERROR_ENCRYPTED
+} EvDocumentError;
struct _EvDocumentIface
{
GTypeInterface base_iface;
/* Signals */
- void (* changed) (EvDocument *document);
+ void (* page_changed) (EvDocument *document);
+ void (* scale_changed) (EvDocument *document);
/* Methods */
gboolean (* load) (EvDocument *document,
int x,
int y);
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);
void (* render) (EvDocument *document,
int clip_x,
int clip_y,
int clip_width,
int clip_height);
+ GdkPixbuf *(* render_pixbuf) (EvDocument *document);
+
+
+
};
-GType ev_document_get_type (void);
+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,
int x,
int y);
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);
void ev_document_render (EvDocument *document,
int clip_x,
int clip_y,
int clip_width,
int clip_height);
-void ev_document_changed (EvDocument *document);
+/* Quick hack to test threaded rendering */
+GdkPixbuf *ev_document_render_pixbuf (EvDocument *document);
+void ev_document_page_changed (EvDocument *document);
+void ev_document_scale_changed (EvDocument *document);
G_END_DECLS