From 79986dda7231d1ef1c530909bde8e18a507a2a2a Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Tue, 14 Jun 2005 21:04:23 +0000 Subject: Add orientation api. Currently poppler api is not optimal, we need to set 2005-06-14 Marco Pesenti Gritti * backend/ev-document.c: (ev_document_set_orientation): * backend/ev-document.h: * pdf/ev-poppler.cc: Add orientation api. Currently poppler api is not optimal, we need to set orientation every time we _get a page * data/evince-ui.xml: * shell/ev-window.c: (ev_window_cmd_edit_landscape), (ev_window_cmd_edit_portrait), (ev_window_cmd_edit_flip): Add orientation menu items * shell/ev-page-cache.c: (ev_page_cache_clear): * shell/ev-page-cache.h: Add api to clear the cache * shell/ev-view.c: (setup_caches), (clear_caches), (ev_view_set_document), (ev_view_zoom_out), (ev_view_set_orientation): * shell/ev-view.h: Implement orientation changing --- (limited to 'backend') diff --git a/backend/ev-document.c b/backend/ev-document.c index d413083..4513df5 100644 --- a/backend/ev-document.c +++ b/backend/ev-document.c @@ -219,6 +219,15 @@ ev_document_render_pixbuf (EvDocument *document, } void +ev_document_set_orientation (EvDocument *document, + EvOrientation orientation) +{ + EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); + + iface->set_orientation (document, orientation); +} + +void ev_document_info_free (EvDocumentInfo *info) { if (info == NULL) diff --git a/backend/ev-document.h b/backend/ev-document.h index ffc9c2e..1fd8fe3 100644 --- a/backend/ev-document.h +++ b/backend/ev-document.h @@ -55,6 +55,15 @@ typedef enum EV_DOCUMENT_ERROR_ENCRYPTED } EvDocumentError; +typedef enum +{ + EV_ORIENTATION_DOCUMENT, + EV_ORIENTATION_PORTRAIT, + EV_ORIENTATION_LANDSCAPE, + EV_ORIENTATION_UPSIDEDOWN, + EV_ORIENTATION_SEASCAPE +} EvOrientation; + typedef struct { double x1; double y1; @@ -67,29 +76,31 @@ struct _EvDocumentIface GTypeInterface base_iface; /* 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 (* 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, - int page, - double scale); - EvDocumentInfo *(* get_info) (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, + int page, + double scale); + void (* set_orientation) (EvDocument *document, + EvOrientation orientation); + EvDocumentInfo * (* get_info) (EvDocument *document); }; GType ev_document_get_type (void); @@ -98,29 +109,31 @@ 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, - int page, - double scale); +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, + int page, + double scale); +void ev_document_set_orientation (EvDocument *document, + EvOrientation orientation); G_END_DECLS -- cgit v0.9.1