X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=backend%2Fimpress%2Fimpress-document.c;h=5c2e160a82b2732849a1f7ea1cd4295799d56ac4;hb=0526caefb3e35fe432e40fb9503d370907c9ef28;hp=687972be294c01770c2b6c299ce138b35ebd8a95;hpb=31e16bd8f386dc292e60489d4a17227804bdc2e6;p=evince.git diff --git a/backend/impress/impress-document.c b/backend/impress/impress-document.c index 687972be..5c2e160a 100644 --- a/backend/impress/impress-document.c +++ b/backend/impress/impress-document.c @@ -20,23 +20,25 @@ #include "config.h" -#include -#include #include +#include +#include + #include "imposter.h" #include "impress-document.h" -#include "ev-document-thumbnails.h" + #include "ev-document-misc.h" +#include "ev-document-thumbnails.h" struct _ImpressDocumentClass { - GObjectClass parent_class; + EvDocumentClass parent_class; }; struct _ImpressDocument { - GObject parent_instance; + EvDocument parent_instance; ImpDoc *imp; ImpRenderCtx *ctx; @@ -57,13 +59,12 @@ struct _ImpressDocument typedef struct _ImpressDocumentClass ImpressDocumentClass; -static void impress_document_document_iface_init (EvDocumentIface *iface); static void impress_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface); EV_BACKEND_REGISTER_WITH_CODE (ImpressDocument, impress_document, { - G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, - impress_document_document_thumbnails_iface_init); + EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, + impress_document_document_thumbnails_iface_init); }); /* Renderer */ @@ -288,23 +289,17 @@ impress_document_load (EvDocument *document, /* FIXME: Could we actually load uris ? */ filename = g_filename_from_uri (uri, NULL, error); if (!filename) - { - g_set_error (error, - EV_DOCUMENT_ERROR, - EV_DOCUMENT_ERROR_INVALID, - _("Remote files aren't supported")); - return FALSE; - } + return FALSE; imp = imp_open (filename, &err); + g_free (filename); if (!imp) { - g_set_error (error, - EV_DOCUMENT_ERROR, - EV_DOCUMENT_ERROR_INVALID, - _("Invalid document")); - g_free (filename); + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + _("Invalid document")); return FALSE; } impress_document->imp = imp; @@ -314,9 +309,13 @@ impress_document_load (EvDocument *document, static gboolean impress_document_save (EvDocument *document, - const char *uri, - GError **error) + const char *uri, + GError **error) { + g_set_error_literal (error, + EV_DOCUMENT_ERROR, + EV_DOCUMENT_ERROR_INVALID, + "Not supported"); return FALSE; } @@ -333,9 +332,9 @@ impress_document_get_n_pages (EvDocument *document) static void impress_document_get_page_size (EvDocument *document, - int page, - double *width, - double *height) + EvPage *page, + double *width, + double *height) { ImpressDocument *impress_document = IMPRESS_DOCUMENT (document); @@ -382,7 +381,7 @@ impress_document_render_pixbuf (EvDocument *document, g_return_val_if_fail (IMPRESS_IS_DOCUMENT (document), NULL); g_return_val_if_fail (impress_document->imp != NULL, NULL); - impress_document->pagenum = rc->page; + impress_document->pagenum = rc->page->index; g_mutex_lock (impress_document->mutex); impress_document->cond = g_cond_new (); @@ -454,31 +453,16 @@ impress_document_finalize (GObject *object) static void impress_document_class_init (ImpressDocumentClass *klass) { - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass); gobject_class->finalize = impress_document_finalize; -} - -static EvDocumentInfo * -impress_document_get_info (EvDocument *document) -{ - EvDocumentInfo *info; - - info = g_new0 (EvDocumentInfo, 1); - info->fields_mask = 0; - return info; -} - -static void -impress_document_document_iface_init (EvDocumentIface *iface) -{ - iface->load = impress_document_load; - iface->save = impress_document_save; - iface->get_n_pages = impress_document_get_n_pages; - iface->get_page_size = impress_document_get_page_size; - iface->render = impress_document_render; - iface->get_info = impress_document_get_info; + ev_document_class->load = impress_document_load; + ev_document_class->save = impress_document_save; + ev_document_class->get_n_pages = impress_document_get_n_pages; + ev_document_class->get_page_size = impress_document_get_page_size; + ev_document_class->render = impress_document_render; } static GdkPixbuf * @@ -488,7 +472,6 @@ impress_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, { GdkPixbuf *pixbuf; GdkPixbuf *scaled_pixbuf; - gdouble w, h; pixbuf = impress_document_render_pixbuf (EV_DOCUMENT (document), rc); scaled_pixbuf = gdk_pixbuf_scale_simple (pixbuf,