From b8aebf2e1ba5b4f9ff1e1256b28acb3e23947c51 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Mon, 14 Apr 2008 17:07:39 +0000 Subject: Add EvPage so that we can hold a reference to the backend page. Form 2008-04-14 Carlos Garcia Campos * libdocument/Makefile.am: * libdocument/ev-page.[ch]: * libdocument/ev-render-context.[ch]: (ev_render_context_dispose), (ev_render_context_new), (ev_render_context_set_page): * libdocument/ev-form-field.[ch]: (ev_form_field_init), (ev_form_field_finalize), (ev_form_field_class_init): * libdocument/ev-document-forms.[ch]: (ev_document_forms_get_form_fields): * libdocument/ev-document.[ch]: (ev_document_get_page), (ev_document_get_page_size), (ev_document_get_page_label): * shell/ev-jobs.[ch]: (ev_job_thumbnail_dispose), (ev_job_render_run), (ev_job_thumbnail_new), (ev_job_thumbnail_run), (ev_job_print_run): * shell/ev-page-cache.c: (ev_page_cache_new): * shell/ev-pixbuf-cache.c: (job_page_ready_cb), (job_finished_cb), (check_job_size_and_unref), (add_job): * shell/ev-sidebar-thumbnails.c: (add_range): * shell/ev-view.c: (ev_view_form_field_get_region), (ev_view_form_field_button_create_widget), (ev_view_form_field_text_save), (ev_view_form_field_choice_save), (ev_view_handle_form_field), (ev_view_size_allocate), (get_selected_text): * shell/ev-window.c: (ev_window_refresh_window_thumbnail): * backend/pdf/ev-poppler.cc: (pdf_document_get_page_size), (pdf_document_get_page), (pdf_document_get_page_label), (pdf_document_render), (pdf_document_get_info), (pdf_document_document_iface_init), (pdf_document_thumbnails_get_thumbnail), (pdf_document_thumbnails_get_dimensions), (pdf_document_file_exporter_do_page), (pdf_selection_render_selection), (pdf_selection_get_selected_text), (pdf_selection_get_selection_region), (pdf_selection_get_selection_map), (pdf_document_forms_get_form_fields), (pdf_document_forms_form_field_text_get_text), (pdf_document_forms_form_field_text_set_text), (pdf_document_forms_form_field_button_set_state), (pdf_document_forms_form_field_button_get_state), (pdf_document_forms_form_field_choice_get_item), (pdf_document_forms_form_field_choice_get_n_items), (pdf_document_forms_form_field_choice_is_item_selected), (pdf_document_forms_form_field_choice_select_item), (pdf_document_forms_form_field_choice_toggle_item), (pdf_document_forms_form_field_choice_unselect_all), (pdf_document_forms_form_field_choice_set_text), (pdf_document_forms_form_field_choice_get_text): * backend/ps/ev-spectre.c: (ps_document_get_page), (ps_document_get_page_size), (ps_document_get_page_label), (ps_document_render), (ps_document_document_iface_init), (ps_document_file_exporter_do_page): * backend/tiff/tiff-document.c: (tiff_document_get_page_size), (tiff_document_render), (tiff_document_render_pixbuf), (tiff_document_file_exporter_do_page): * backend/pixbuf/pixbuf-document.c: (pixbuf_document_get_page_size): * backend/comics/comics-document.c: (comics_document_get_page_size), (comics_document_render_pixbuf): * backend/djvu/djvu-document.c: (djvu_document_get_page_size), (djvu_document_render), (djvu_selection_get_selected_text), (djvu_document_thumbnails_get_thumbnail), (djvu_document_file_exporter_do_page), (djvu_document_find_get_result): * backend/dvi/dvi-document.c: (dvi_document_get_page_size), (dvi_document_render), (dvi_document_thumbnails_get_dimensions), (dvi_document_thumbnails_get_thumbnail), (dvi_document_file_exporter_do_page): * backend/impress/impress-document.c: (impress_document_get_page_size), (impress_document_render_pixbuf): * thumbnailer/evince-thumbnailer.c: (evince_thumbnail_pngenc_get): Add EvPage so that we can hold a reference to the backend page. Form fields keep now a reference to the poppler page improving performance since we don't have to create/destroy the poppler field for every form operation. This will be needed for annotations too. svn path=/trunk/; revision=3004 --- (limited to 'libdocument/ev-render-context.h') diff --git a/libdocument/ev-render-context.h b/libdocument/ev-render-context.h index 636f02f..eb324e8 100644 --- a/libdocument/ev-render-context.h +++ b/libdocument/ev-render-context.h @@ -22,14 +22,16 @@ #include +#include "ev-page.h" + G_BEGIN_DECLS typedef struct _EvRenderContext EvRenderContext; typedef struct _EvRenderContextClass EvRenderContextClass; #define EV_TYPE_RENDER_CONTEXT (ev_render_context_get_type()) -#define EV_RENDER_CONTEXT(context) ((EvRenderContext *) (context)) -#define EV_RENDER_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_RENDER_CONTEXT, EvRenderContext)) +#define EV_RENDER_CONTEXT(context) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_RENDER_CONTEXT, EvRenderContext) +#define EV_RENDER_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_RENDER_CONTEXT, EvRenderContextClass)) #define EV_IS_RENDER_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_RENDER_CONTEXT)) struct _EvRenderContextClass @@ -40,23 +42,21 @@ struct _EvRenderContextClass struct _EvRenderContext { GObject parent; - int rotation; - gint page; + + EvPage *page; + gint rotation; gdouble scale; - - gpointer data; - GDestroyNotify destroy; }; GType ev_render_context_get_type (void) G_GNUC_CONST; -EvRenderContext *ev_render_context_new (int rotation, - gint page, +EvRenderContext *ev_render_context_new (EvPage *page, + gint rotation, gdouble scale); void ev_render_context_set_page (EvRenderContext *rc, - gint page); + EvPage *page); void ev_render_context_set_rotation (EvRenderContext *rc, - int rotation); + gint rotation); void ev_render_context_set_scale (EvRenderContext *rc, gdouble scale); -- cgit v0.9.1