Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/libdocument
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2007-02-16 17:27:12 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2007-02-16 17:27:12 (GMT)
commit1d6150237848b4c1fede94ce23baa4fd8870fd93 (patch)
tree7a607e0263e6b40591b31885b561f2192b7b6695 /libdocument
parent76f055907e4eab82025f28cd0e813eb39713bf5b (diff)
Use an EvRenderContext for rendering thumbnails instead of a suggested
2007-02-16 Carlos Garcia Campos <carlosgc@gnome.org> * backend/dvi/dvi-document.c: (dvi_document_thumbnails_get_dimensions), (dvi_document_thumbnails_get_thumbnail): * backend/impress/impress-document.c: (impress_document_thumbnails_get_thumbnail), (impress_document_thumbnails_get_dimensions): * backend/ps/ps-document.c: (ps_document_thumbnails_get_thumbnail), (ps_document_thumbnails_get_dimensions): * backend/djvu/djvu-document.c: (djvu_document_thumbnails_get_dimensions), (djvu_document_thumbnails_get_thumbnail): * backend/tiff/tiff-document.c: (tiff_document_thumbnails_get_thumbnail), (tiff_document_thumbnails_get_dimensions): * backend/pdf/ev-poppler.cc: (make_thumbnail_for_page), (pdf_document_thumbnails_get_thumbnail), (pdf_document_thumbnails_get_dimensions): * backend/comics/comics-document.c: (comics_document_thumbnails_get_thumbnail), (comics_document_thumbnails_get_dimensions): * backend/pixbuf/pixbuf-document.c: (pixbuf_document_thumbnails_get_thumbnail), (pixbuf_document_thumbnails_get_dimensions): * libdocument/ev-document-thumbnails.[ch]: (ev_document_thumbnails_get_thumbnail), (ev_document_thumbnails_get_dimensions): * libdocument/ev-document-misc.[ch]: (ev_document_misc_get_thumbnail_frame): * shell/ev-jobs.[ch]: (ev_job_thumbnail_dispose), (ev_job_thumbnail_new), (ev_job_thumbnail_run): * shell/ev-sidebar-thumbnails.c: (get_scale_for_page), (add_range), (ev_sidebar_thumbnails_set_loading_icon), (refresh), (ev_sidebar_thumbnails_refresh): * shell/ev-window.c: (ev_window_setup_document): * thumbnailer/evince-thumbnailer.c: (evince_thumbnail_pngenc_get): Use an EvRenderContext for rendering thumbnails instead of a suggested width, so that different sized pages get sized proportionally. svn path=/trunk/; revision=2332
Diffstat (limited to 'libdocument')
-rw-r--r--libdocument/ev-document-misc.c15
-rw-r--r--libdocument/ev-document-misc.h1
-rw-r--r--libdocument/ev-document-thumbnails.c19
-rw-r--r--libdocument/ev-document-thumbnails.h46
4 files changed, 27 insertions, 54 deletions
diff --git a/libdocument/ev-document-misc.c b/libdocument/ev-document-misc.c
index fd6f449..89ff5fa 100644
--- a/libdocument/ev-document-misc.c
+++ b/libdocument/ev-document-misc.c
@@ -12,7 +12,6 @@
GdkPixbuf *
ev_document_misc_get_thumbnail_frame (int width,
int height,
- int rotation,
GdkPixbuf *source_pixbuf)
{
GdkPixbuf *retval;
@@ -21,9 +20,6 @@ ev_document_misc_get_thumbnail_frame (int width,
int i;
int width_r, height_r;
- rotation = rotation % 360;
-
-
if (source_pixbuf)
g_return_val_if_fail (GDK_IS_PIXBUF (source_pixbuf), NULL);
@@ -31,15 +27,8 @@ ev_document_misc_get_thumbnail_frame (int width,
width_r = gdk_pixbuf_get_width (source_pixbuf);
height_r = gdk_pixbuf_get_height (source_pixbuf);
} else {
- if (rotation == 0 || rotation == 180) {
- width_r = width;
- height_r = height;
- } else if (rotation == 90 || rotation == 270) {
- width_r = height;
- height_r = width;
- } else {
- g_assert_not_reached ();
- }
+ width_r = width;
+ height_r = height;
}
/* make sure no one is passing us garbage */
diff --git a/libdocument/ev-document-misc.h b/libdocument/ev-document-misc.h
index 41f1cae..5d84671 100644
--- a/libdocument/ev-document-misc.h
+++ b/libdocument/ev-document-misc.h
@@ -31,7 +31,6 @@ G_BEGIN_DECLS
GdkPixbuf *ev_document_misc_get_thumbnail_frame (int width,
int height,
- int rotation,
GdkPixbuf *source_pixbuf);
void ev_document_misc_get_page_border_size (gint page_width,
gint page_height,
diff --git a/libdocument/ev-document-thumbnails.c b/libdocument/ev-document-thumbnails.c
index c560cec..1ed1974 100644
--- a/libdocument/ev-document-thumbnails.c
+++ b/libdocument/ev-document-thumbnails.c
@@ -18,8 +18,6 @@
*
*/
-#include "config.h"
-
#include "ev-document-thumbnails.h"
GType
@@ -45,35 +43,34 @@ ev_document_thumbnails_get_type (void)
}
GdkPixbuf *
-ev_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document,
- gint page,
- int rotation,
- gint size,
- gboolean border)
+ev_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document,
+ EvRenderContext *rc,
+ gboolean border)
{
EvDocumentThumbnailsIface *iface;
g_return_val_if_fail (EV_IS_DOCUMENT_THUMBNAILS (document), NULL);
+ g_return_val_if_fail (EV_IS_RENDER_CONTEXT (rc), NULL);
iface = EV_DOCUMENT_THUMBNAILS_GET_IFACE (document);
- return iface->get_thumbnail (document, page, rotation, size, border);
+ return iface->get_thumbnail (document, rc, border);
}
void
ev_document_thumbnails_get_dimensions (EvDocumentThumbnails *document,
- gint page,
- gint suggested_width,
+ EvRenderContext *rc,
gint *width,
gint *height)
{
EvDocumentThumbnailsIface *iface;
g_return_if_fail (EV_IS_DOCUMENT_THUMBNAILS (document));
+ g_return_if_fail (EV_IS_RENDER_CONTEXT (rc));
g_return_if_fail (width != NULL);
g_return_if_fail (height != NULL);
iface = EV_DOCUMENT_THUMBNAILS_GET_IFACE (document);
- iface->get_dimensions (document, page, suggested_width, width, height);
+ iface->get_dimensions (document, rc, width, height);
}
diff --git a/libdocument/ev-document-thumbnails.h b/libdocument/ev-document-thumbnails.h
index 6e15a32..648c0eb 100644
--- a/libdocument/ev-document-thumbnails.h
+++ b/libdocument/ev-document-thumbnails.h
@@ -27,51 +27,39 @@
G_BEGIN_DECLS
-#define EV_TYPE_DOCUMENT_THUMBNAILS (ev_document_thumbnails_get_type ())
-#define EV_DOCUMENT_THUMBNAILS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnails))
-#define EV_DOCUMENT_THUMBNAILS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnailsIface))
-#define EV_IS_DOCUMENT_THUMBNAILS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_THUMBNAILS))
-#define EV_IS_DOCUMENT_THUMBNAILS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_THUMBNAILS))
+#define EV_TYPE_DOCUMENT_THUMBNAILS (ev_document_thumbnails_get_type ())
+#define EV_DOCUMENT_THUMBNAILS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnails))
+#define EV_DOCUMENT_THUMBNAILS_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnailsIface))
+#define EV_IS_DOCUMENT_THUMBNAILS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_DOCUMENT_THUMBNAILS))
+#define EV_IS_DOCUMENT_THUMBNAILS_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_DOCUMENT_THUMBNAILS))
#define EV_DOCUMENT_THUMBNAILS_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_DOCUMENT_THUMBNAILS, EvDocumentThumbnailsIface))
-typedef struct _EvDocumentThumbnails EvDocumentThumbnails;
-typedef struct _EvDocumentThumbnailsIface EvDocumentThumbnailsIface;
+typedef struct _EvDocumentThumbnails EvDocumentThumbnails;
+typedef struct _EvDocumentThumbnailsIface EvDocumentThumbnailsIface;
-struct _EvDocumentThumbnailsIface
-{
+struct _EvDocumentThumbnailsIface {
GTypeInterface base_iface;
/* Methods */
GdkPixbuf * (* get_thumbnail) (EvDocumentThumbnails *document,
- gint page,
- gint rotation,
- gint size,
- gboolean border);
+ EvRenderContext *rc,
+ gboolean border);
void (* get_dimensions) (EvDocumentThumbnails *document,
- gint page,
- gint suggested_width,
- gint *width,
- gint *height);
+ EvRenderContext *rc,
+ gint *width,
+ gint *height);
};
-GType ev_document_thumbnails_get_type (void);
-
-/* FIXME: This is a little bit busted. We call get_thumbnail w/ a suggested
- * width, but we should call it with a scale so that different sized pages get
- * sized proportionally.
- */
+GType ev_document_thumbnails_get_type (void) G_GNUC_CONST;
GdkPixbuf *ev_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document,
- gint page,
- gint rotation,
- gint size,
+ EvRenderContext *rc,
gboolean border);
void ev_document_thumbnails_get_dimensions (EvDocumentThumbnails *document,
- gint page,
- gint size,
+ EvRenderContext *rc,
gint *width,
gint *height);
G_END_DECLS
-#endif
+#endif /* EV_DOCUMENT_THUMBNAILS_H */