diff options
author | Claudio Saavedra <csaavedra@igalia.com> | 2012-01-24 20:25:29 +0800 |
---|---|---|
committer | Claudio Saavedra <csaavedra@igalia.com> | 2012-09-01 02:33:59 +0800 |
commit | fb5f322406068fb9e514d204f9ba999bc40e2c55 (patch) | |
tree | b969557a1b9c2672e03f63f6d7aa5f34b1f2df5b /lib/ephy-snapshot-service.h | |
parent | 95b305ef37cacc0d1e96ae07cd24f39f040fbc27 (diff) | |
download | gsoc2013-epiphany-fb5f322406068fb9e514d204f9ba999bc40e2c55.tar gsoc2013-epiphany-fb5f322406068fb9e514d204f9ba999bc40e2c55.tar.gz gsoc2013-epiphany-fb5f322406068fb9e514d204f9ba999bc40e2c55.tar.bz2 gsoc2013-epiphany-fb5f322406068fb9e514d204f9ba999bc40e2c55.tar.lz gsoc2013-epiphany-fb5f322406068fb9e514d204f9ba999bc40e2c55.tar.xz gsoc2013-epiphany-fb5f322406068fb9e514d204f9ba999bc40e2c55.tar.zst gsoc2013-epiphany-fb5f322406068fb9e514d204f9ba999bc40e2c55.zip |
Add a service for snapshotting webpages
This service provides pixbufs for URLs while caching these locally as
thumbnails. gnome-desktop-thumbnail is used to handle caching.
https://bugzilla.gnome.org/show_bug.cgi?id=668578
Diffstat (limited to 'lib/ephy-snapshot-service.h')
-rw-r--r-- | lib/ephy-snapshot-service.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/lib/ephy-snapshot-service.h b/lib/ephy-snapshot-service.h new file mode 100644 index 000000000..4de9745aa --- /dev/null +++ b/lib/ephy-snapshot-service.h @@ -0,0 +1,94 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * Copyright © 2012 Igalia S.L. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef _EPHY_SNAPSHOT_SERVICE_H +#define _EPHY_SNAPSHOT_SERVICE_H + +#include <gtk/gtk.h> +#ifdef HAVE_WEBKIT2 +#include <webkit2/webkit2.h> +#else +#include <webkit/webkit.h> +#endif + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EPHY_TYPE_SNAPSHOT_SERVICE (ephy_snapshot_service_get_type()) +#define EPHY_SNAPSHOT_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EPHY_TYPE_SNAPSHOT_SERVICE, EphySnapshotService)) +#define EPHY_SNAPSHOT_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EPHY_TYPE_SNAPSHOT_SERVICE, EphySnapshotServiceClass)) +#define EPHY_IS_SNAPSHOT_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EPHY_TYPE_SNAPSHOT_SERVICE)) +#define EPHY_IS_SNAPSHOT_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EPHY_TYPE_SNAPSHOT_SERVICE)) +#define EPHY_SNAPSHOT_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EPHY_TYPE_SNAPSHOT_SERVICE, EphySnapshotServiceClass)) + +typedef struct _EphySnapshotService EphySnapshotService; +typedef struct _EphySnapshotServiceClass EphySnapshotServiceClass; +typedef struct _EphySnapshotServicePrivate EphySnapshotServicePrivate; + +struct _EphySnapshotService +{ + GObject parent; + + /*< private >*/ + EphySnapshotServicePrivate *priv; +}; + +struct _EphySnapshotServiceClass +{ + GObjectClass parent_class; +}; + +/* Values taken from the Web mockups. */ +#define EPHY_THUMBNAIL_WIDTH 172 +#define EPHY_THUMBNAIL_HEIGHT 172 + +typedef void (* EphySnapshotServiceCallback) (GdkPixbuf *snapshot, + gpointer user_data); + +GType ephy_snapshot_service_get_type (void) G_GNUC_CONST; + +EphySnapshotService *ephy_snapshot_service_get_default (void); + +void ephy_snapshot_service_get_snapshot_async (EphySnapshotService *service, + WebKitWebView *webview, + const char *url, + const time_t mtime, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GdkPixbuf * ephy_snapshot_service_get_snapshot_finish (EphySnapshotService *service, + GAsyncResult *result, + GError **error); + +void ephy_snapshot_service_save_snapshot_async (EphySnapshotService *service, + GdkPixbuf *snapshot, + const char *url, + time_t mtime, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GdkPixbuf* ephy_snapshot_service_crop_snapshot (cairo_surface_t *surface); + +G_END_DECLS + +#endif /* _EPHY_SNAPSHOT_SERVICE_H */ |