Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-06-14 21:04:23 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-06-14 21:04:23 (GMT)
commit79986dda7231d1ef1c530909bde8e18a507a2a2a (patch)
tree4da2836164c375d4fc17c3bc3dfbc67441b2a1b3 /backend
parentc7d050d9ac60d8711e8dd6369a1991296bde282f (diff)
Add orientation api. Currently poppler api is not optimal, we need to set
2005-06-14 Marco Pesenti Gritti <mpg@redhat.com> * 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
Diffstat (limited to 'backend')
-rw-r--r--backend/ev-document.c9
-rw-r--r--backend/ev-document.h105
2 files changed, 68 insertions, 46 deletions
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