[evince] libdocument: Add ev_document_get_thumbnail_surface()
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince] libdocument: Add ev_document_get_thumbnail_surface()
- Date: Sat, 22 Mar 2014 11:54:48 +0000 (UTC)
commit f8736ab169775428f99a1e1b1096b79edc1f95a3
Author: Carlos Garcia Campos <carlosgc gnome org>
Date: Sat Mar 22 12:44:28 2014 +0100
libdocument: Add ev_document_get_thumbnail_surface()
To allow backends render thumbnails to a cairo surface instead of a
GdkPixbuf.
.../libdocument/libevdocument-sections.txt | 1 +
libdocument/ev-document.c | 22 ++++++
libdocument/ev-document.h | 70 ++++++++++---------
3 files changed, 60 insertions(+), 33 deletions(-)
---
diff --git a/help/reference/libdocument/libevdocument-sections.txt
b/help/reference/libdocument/libevdocument-sections.txt
index 674248e..f21c798 100644
--- a/help/reference/libdocument/libevdocument-sections.txt
+++ b/help/reference/libdocument/libevdocument-sections.txt
@@ -380,6 +380,7 @@ ev_document_get_max_label_len
ev_document_has_text_page_labels
ev_document_find_page_by_label
ev_document_get_thumbnail
+ev_document_get_thumbnail_surface
ev_document_has_synctex
ev_document_synctex_backward_search
ev_document_synctex_forward_search
diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c
index 5907748..244365e 100644
--- a/libdocument/ev-document.c
+++ b/libdocument/ev-document.c
@@ -721,6 +721,28 @@ ev_document_get_thumbnail (EvDocument *document,
return _ev_document_get_thumbnail (document, rc);
}
+/**
+ * ev_document_get_thumbnail_surface:
+ * @document: an #EvDocument
+ * @rc: an #EvRenderContext
+ *
+ * Returns: (transfer full): a #cairo_surface_t
+ *
+ * Since: 3.14
+ */
+cairo_surface_t *
+ev_document_get_thumbnail_surface (EvDocument *document,
+ EvRenderContext *rc)
+{
+ EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document);
+
+ if (klass->get_thumbnail_surface)
+ return klass->get_thumbnail_surface (document, rc);
+
+ return ev_document_render (document, rc);
+}
+
+
const gchar *
ev_document_get_uri (EvDocument *document)
{
diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h
index 1857dfa..2ffc130 100644
--- a/libdocument/ev-document.h
+++ b/libdocument/ev-document.h
@@ -93,41 +93,43 @@ struct _EvDocumentClass
GObjectClass base_class;
/* Virtual Methods */
- gboolean (* load) (EvDocument *document,
- const char *uri,
- GError **error);
- gboolean (* save) (EvDocument *document,
- const char *uri,
- GError **error);
- gint (* get_n_pages) (EvDocument *document);
- EvPage * (* get_page) (EvDocument *document,
- gint index);
- void (* get_page_size) (EvDocument *document,
- EvPage *page,
- double *width,
- double *height);
- gchar * (* get_page_label) (EvDocument *document,
- EvPage *page);
- cairo_surface_t * (* render) (EvDocument *document,
- EvRenderContext *rc);
- GdkPixbuf * (* get_thumbnail) (EvDocument *document,
- EvRenderContext *rc);
- EvDocumentInfo * (* get_info) (EvDocument *document);
- gboolean (* get_backend_info)(EvDocument *document,
- EvDocumentBackendInfo *info);
- gboolean (* support_synctex) (EvDocument *document);
+ gboolean (* load) (EvDocument *document,
+ const char *uri,
+ GError **error);
+ gboolean (* save) (EvDocument *document,
+ const char *uri,
+ GError **error);
+ gint (* get_n_pages) (EvDocument *document);
+ EvPage * (* get_page) (EvDocument *document,
+ gint index);
+ void (* get_page_size) (EvDocument *document,
+ EvPage *page,
+ double *width,
+ double *height);
+ gchar * (* get_page_label) (EvDocument *document,
+ EvPage *page);
+ cairo_surface_t * (* render) (EvDocument *document,
+ EvRenderContext *rc);
+ GdkPixbuf * (* get_thumbnail) (EvDocument *document,
+ EvRenderContext *rc);
+ EvDocumentInfo * (* get_info) (EvDocument *document);
+ gboolean (* get_backend_info) (EvDocument *document,
+ EvDocumentBackendInfo *info);
+ gboolean (* support_synctex) (EvDocument *document);
/* GIO streams */
- gboolean (* load_stream) (EvDocument *document,
- GInputStream *stream,
- EvDocumentLoadFlags flags,
- GCancellable *cancellable,
- GError **error);
- gboolean (* load_gfile) (EvDocument *document,
- GFile *file,
- EvDocumentLoadFlags flags,
- GCancellable *cancellable,
- GError **error);
+ gboolean (* load_stream) (EvDocument *document,
+ GInputStream *stream,
+ EvDocumentLoadFlags flags,
+ GCancellable *cancellable,
+ GError **error);
+ gboolean (* load_gfile) (EvDocument *document,
+ GFile *file,
+ EvDocumentLoadFlags flags,
+ GCancellable *cancellable,
+ GError **error);
+ cairo_surface_t * (* get_thumbnail_surface) (EvDocument *document,
+ EvRenderContext *rc);
};
GType ev_document_get_type (void) G_GNUC_CONST;
@@ -177,6 +179,8 @@ cairo_surface_t *ev_document_render (EvDocument *document,
EvRenderContext *rc);
GdkPixbuf *ev_document_get_thumbnail (EvDocument *document,
EvRenderContext *rc);
+cairo_surface_t *ev_document_get_thumbnail_surface (EvDocument *document,
+ EvRenderContext *rc);
const gchar *ev_document_get_uri (EvDocument *document);
const gchar *ev_document_get_title (EvDocument *document);
gboolean ev_document_is_page_size_uniform (EvDocument *document);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]