+static EvOrientation
+pixbuf_document_get_orientation (EvDocument *document)
+{
+ PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document);
+
+ return pixbuf_document->orientation;
+}
+
+static void
+pixbuf_document_set_orientation (EvDocument *document,
+ EvOrientation orientation)
+{
+ PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document);
+
+ pixbuf_document->orientation = orientation;
+}
+
+static GdkPixbuf *
+rotate_pixbuf (EvDocument *document, GdkPixbuf *pixbuf)
+{
+ PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document);
+
+ switch (pixbuf_document->orientation)
+ {
+ case EV_ORIENTATION_LANDSCAPE:
+ return gdk_pixbuf_rotate_simple (pixbuf, 90);
+ case EV_ORIENTATION_UPSIDEDOWN:
+ return gdk_pixbuf_rotate_simple (pixbuf, 180);
+ case EV_ORIENTATION_SEASCAPE:
+ return gdk_pixbuf_rotate_simple (pixbuf, 270);
+ default:
+ return g_object_ref (pixbuf);
+ }
+}
+