X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=backend%2Fev-document.h;h=be0d1dbfedb70d2e6e912e9f674f79d5b2a51b8b;hb=1c0d19bd22598eca159c3febdcdaf4168891cb8f;hp=84b9e979ace66501dc580e5d9f1786251fdb0e5e;hpb=f53f3523ebc7a082eb8a1c046cee836b67696912;p=evince.git diff --git a/backend/ev-document.h b/backend/ev-document.h index 84b9e979..be0d1dbf 100644 --- a/backend/ev-document.h +++ b/backend/ev-document.h @@ -26,6 +26,8 @@ #include #include +#include "ev-link.h" + G_BEGIN_DECLS #define EV_TYPE_DOCUMENT (ev_document_get_type ()) @@ -35,46 +37,81 @@ G_BEGIN_DECLS #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, - 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_target) (EvDocument *document, - GdkDrawable *target); - void (* set_scale) (EvDocument *document, - double scale); - void (* set_page_offset) (EvDocument *document, - int x, - int y); - void (* get_page_size) (EvDocument *document, - int *width, - int *height); - void (* render) (EvDocument *document, - int clip_x, - int clip_y, - int clip_width, - int clip_height); + 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_target) (EvDocument *document, + GdkDrawable *target); + void (* set_scale) (EvDocument *document, + double scale); + void (* set_page_offset) (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, 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, @@ -88,14 +125,23 @@ void ev_document_set_page_offset (EvDocument *document, 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