]> www.fi.muni.cz Git - evince.git/blobdiff - backend/pixbuf/pixbuf-document.c
Remove EvDocumentThumbnails interface
[evince.git] / backend / pixbuf / pixbuf-document.c
index b9b98a66e27af1613be18356d130744136f5fe10..ae7b4376cb27c116da0d8558bd6ddac1981a7667 100644 (file)
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
  */
 
+#include <config.h>
+#include <glib/gi18n-lib.h>
+
 #include "pixbuf-document.h"
 #include "pixbuf-document.h"
-#include "ev-document-thumbnails.h"
+#include "ev-document-misc.h"
+#include "ev-file-helpers.h"
 
 struct _PixbufDocumentClass
 {
 
 struct _PixbufDocumentClass
 {
-       GObjectClass parent_class;
+       EvDocumentClass parent_class;
 };
 
 struct _PixbufDocument
 {
 };
 
 struct _PixbufDocument
 {
-       GObject parent_instance;
+       EvDocument parent_instance;
 
        GdkPixbuf *pixbuf;
        
 
        GdkPixbuf *pixbuf;
        
@@ -36,15 +40,7 @@ struct _PixbufDocument
 
 typedef struct _PixbufDocumentClass PixbufDocumentClass;
 
 
 typedef struct _PixbufDocumentClass PixbufDocumentClass;
 
-static void pixbuf_document_document_iface_init (EvDocumentIface *iface);
-static void pixbuf_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (PixbufDocument, pixbuf_document, G_TYPE_OBJECT,
-                         { G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT,
-                                                 pixbuf_document_document_iface_init);
-                        G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS,
-                                               pixbuf_document_document_thumbnails_iface_init)                            
-                                  });
+EV_BACKEND_REGISTER (PixbufDocument, pixbuf_document)
 
 static gboolean
 pixbuf_document_load (EvDocument  *document,
 
 static gboolean
 pixbuf_document_load (EvDocument  *document,
@@ -91,7 +87,7 @@ pixbuf_document_get_n_pages (EvDocument  *document)
 
 static void
 pixbuf_document_get_page_size (EvDocument   *document,
 
 static void
 pixbuf_document_get_page_size (EvDocument   *document,
-                              int           page,
+                              EvPage       *page,
                               double       *width,
                               double       *height)
 {
                               double       *width,
                               double       *height)
 {
@@ -124,51 +120,9 @@ pixbuf_document_render (EvDocument      *document,
        return surface;
 }
 
        return surface;
 }
 
-static void
-pixbuf_document_finalize (GObject *object)
-{
-       PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (object);
-
-       g_object_unref (pixbuf_document->pixbuf);
-       g_free (pixbuf_document->uri);
-       
-       G_OBJECT_CLASS (pixbuf_document_parent_class)->finalize (object);
-}
-
-static void
-pixbuf_document_class_init (PixbufDocumentClass *klass)
-{
-       GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-       gobject_class->finalize = pixbuf_document_finalize;
-}
-
-static EvDocumentInfo *
-pixbuf_document_get_info (EvDocument *document)
-{
-       EvDocumentInfo *info;
-
-       info = g_new0 (EvDocumentInfo, 1);
-       info->fields_mask = 0;
-
-       return info;
-}
-
-static void
-pixbuf_document_document_iface_init (EvDocumentIface *iface)
-{
-       iface->load = pixbuf_document_load;
-       iface->save = pixbuf_document_save;
-       iface->get_n_pages = pixbuf_document_get_n_pages;
-       iface->get_page_size = pixbuf_document_get_page_size;
-       iface->render = pixbuf_document_render;
-       iface->get_info = pixbuf_document_get_info;
-}
-
 static GdkPixbuf *
 static GdkPixbuf *
-pixbuf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document,
-                                         EvRenderContext      *rc,
-                                         gboolean              border)
+pixbuf_document_get_thumbnail (EvDocument      *document,
+                              EvRenderContext *rc)
 {
        PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document);
        GdkPixbuf *pixbuf, *rotated_pixbuf;
 {
        PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document);
        GdkPixbuf *pixbuf, *rotated_pixbuf;
@@ -188,31 +142,31 @@ pixbuf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document,
 }
 
 static void
 }
 
 static void
-pixbuf_document_thumbnails_get_dimensions (EvDocumentThumbnails *document,
-                                          EvRenderContext      *rc, 
-                                          gint                 *width,
-                                          gint                 *height)
+pixbuf_document_finalize (GObject *object)
 {
 {
-       PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (document);
-       gint p_width = gdk_pixbuf_get_width (pixbuf_document->pixbuf);
-       gint p_height = gdk_pixbuf_get_height (pixbuf_document->pixbuf);
-
-       if (rc->rotation == 90 || rc->rotation == 270) {
-               *width = (gint) (p_height * rc->scale);
-               *height = (gint) (p_width * rc->scale);
-       } else {
-               *width = (gint) (p_width * rc->scale);
-               *height = (gint) (p_height * rc->scale);
-       }
+       PixbufDocument *pixbuf_document = PIXBUF_DOCUMENT (object);
+
+       g_object_unref (pixbuf_document->pixbuf);
+       g_free (pixbuf_document->uri);
+       
+       G_OBJECT_CLASS (pixbuf_document_parent_class)->finalize (object);
 }
 
 static void
 }
 
 static void
-pixbuf_document_document_thumbnails_iface_init (EvDocumentThumbnailsIface *iface)
+pixbuf_document_class_init (PixbufDocumentClass *klass)
 {
 {
-       iface->get_thumbnail = pixbuf_document_thumbnails_get_thumbnail;
-       iface->get_dimensions = pixbuf_document_thumbnails_get_dimensions;
-}
+       GObjectClass    *gobject_class = G_OBJECT_CLASS (klass);
+       EvDocumentClass *ev_document_class = EV_DOCUMENT_CLASS (klass);
 
 
+       gobject_class->finalize = pixbuf_document_finalize;
+
+       ev_document_class->load = pixbuf_document_load;
+       ev_document_class->save = pixbuf_document_save;
+       ev_document_class->get_n_pages = pixbuf_document_get_n_pages;
+       ev_document_class->get_page_size = pixbuf_document_get_page_size;
+       ev_document_class->render = pixbuf_document_render;
+       ev_document_class->get_thumbnail = pixbuf_document_get_thumbnail;
+}
 
 static void
 pixbuf_document_init (PixbufDocument *pixbuf_document)
 
 static void
 pixbuf_document_init (PixbufDocument *pixbuf_document)