Author: jannis Date: 2009-05-15 01:00:30 +0000 (Fri, 15 May 2009) New Revision: 29961
Added: libexo/branches/exo-thumbnailers/docs/reference/tmpl/exo-thumbnailer.sgml libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.c libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.h Modified: libexo/branches/exo-thumbnailers/ChangeLog libexo/branches/exo-thumbnailers/docs/reference/exo-docs.sgml libexo/branches/exo-thumbnailers/docs/reference/exo-sections.txt libexo/branches/exo-thumbnailers/docs/reference/exo.types libexo/branches/exo-thumbnailers/exo/Makefile.am libexo/branches/exo-thumbnailers/exo/exo.h Log: * docs/reference/exo-docs.sgml, docs/reference/exo-sections.txt, docs/reference/exo.types, docs/reference/tmpl/exo-thumbnailer.sgml: Add API docs section for ExoThumbnailer. * exo/Makefile.am, exo/exo-thumbnailer.{c,h}, exo/exo.h: Add client-side implementation of the thumbnail management D-Bus specification. Just as the server side, it doesn't do anything yet. Modified: libexo/branches/exo-thumbnailers/ChangeLog =================================================================== --- libexo/branches/exo-thumbnailers/ChangeLog 2009-05-14 20:08:45 UTC (rev 29960) +++ libexo/branches/exo-thumbnailers/ChangeLog 2009-05-15 01:00:30 UTC (rev 29961) @@ -1,3 +1,12 @@ +2009-05-15 Jannis Pohlmann <jan...@xfce.org> + + * docs/reference/exo-docs.sgml, docs/reference/exo-sections.txt, + docs/reference/exo.types, docs/reference/tmpl/exo-thumbnailer.sgml: + Add API docs section for ExoThumbnailer. + * exo/Makefile.am, exo/exo-thumbnailer.{c,h}, exo/exo.h: Add + client-side implementation of the thumbnail management D-Bus + specification. Just as the server side, it doesn't do anything yet. + 2009-05-14 Jannis Pohlmann <jan...@xfce.org> * exo-thumbnailers/Makefile.am: Add the missing Makefile.am. Modified: libexo/branches/exo-thumbnailers/docs/reference/exo-docs.sgml =================================================================== --- libexo/branches/exo-thumbnailers/docs/reference/exo-docs.sgml 2009-05-14 20:08:45 UTC (rev 29960) +++ libexo/branches/exo-thumbnailers/docs/reference/exo-docs.sgml 2009-05-15 01:00:30 UTC (rev 29961) @@ -14,6 +14,7 @@ <!ENTITY exo-cell-renderer-icon SYSTEM "xml/exo-cell-renderer-icon.xml"> <!ENTITY exo-job SYSTEM "xml/exo-job.xml"> <!ENTITY exo-simple-job SYSTEM "xml/exo-simple-job.xml"> +<!ENTITY exo-thumbnailer SYSTEM "xml/exo-thumbnailer.xml"> <!ENTITY exo-gdk-pixbuf-extensions SYSTEM "xml/exo-gdk-pixbuf-extensions.xml"> <!ENTITY exo-gobject-extensions SYSTEM "xml/exo-gobject-extensions.xml"> <!ENTITY exo-gtk-extensions SYSTEM "xml/exo-gtk-extensions.xml"> @@ -105,6 +106,24 @@ <variablelist> <varlistentry> + <term>D-Bus</term> + <listitem> + <para> + TODO + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>D-Bus GLib Bindings</term> + <listitem> + <para> + TODO + </para> + </listitem> + </varlistentry> + + <varlistentry> <term>GLib</term> <listitem> <para> @@ -284,6 +303,16 @@ &exo-simple-job; </part> + <part id="exo-thumbnailers"> + <title>Thumbnail Management</title> + + <para> + TODO + </para> + + &exo-thumbnailer; + </part> + <part id="exo-extensions"> <title>Extensions to existing frameworks</title> Modified: libexo/branches/exo-thumbnailers/docs/reference/exo-sections.txt =================================================================== --- libexo/branches/exo-thumbnailers/docs/reference/exo-sections.txt 2009-05-14 20:08:45 UTC (rev 29960) +++ libexo/branches/exo-thumbnailers/docs/reference/exo-sections.txt 2009-05-15 01:00:30 UTC (rev 29961) @@ -375,6 +375,37 @@ <SECTION> +<FILE>exo-thumbnailer</FILE> +<TITLE>ExoThumbnailer</TITLE> +ExoThumbnailer +exo_thumbnailer_get_default +exo_thumbnailer_queue +exo_thumbnailer_queue_uri +exo_thumbnailer_unqueue +exo_thumbnailer_unqueue_list +exo_thumbnailer_move +exo_thumbnailer_move_uri +exo_thumbnailer_copy +exo_thumbnailer_copy_uri +exo_thumbnailer_delete +exo_thumbnailer_delete_uri +exo_thumbnailer_cleanup +<SUBSECTION Standard> +ExoThumbnailerPrivate +ExoThumbnailerClass +EXO_TYPE_THUMBNAILER +EXO_THUMBNAILER +EXO_THUMBNAILER_CLASS +EXO_IS_THUMBNAILER +EXO_IS_THUMBNAILER_CLASS +EXO_THUMBNAILER_GET_CLASS +<SUBSECTION Private> +exo_thumbnailer_get_type +</SECTION> + + + +<SECTION> <FILE>exo-gdk-pixbuf-extensions</FILE> <TITLE>Extensions to gdk-pixbuf</TITLE> exo_gdk_pixbuf_colorize Modified: libexo/branches/exo-thumbnailers/docs/reference/exo.types =================================================================== --- libexo/branches/exo-thumbnailers/docs/reference/exo.types 2009-05-14 20:08:45 UTC (rev 29960) +++ libexo/branches/exo-thumbnailers/docs/reference/exo.types 2009-05-15 01:00:30 UTC (rev 29961) @@ -17,6 +17,8 @@ exo_job_get_type exo_simple_job_get_type +exo_thumbnailer_get_type + exo_xsession_client_get_type exo_md5_digest_get_type exo_mount_point_get_type Added: libexo/branches/exo-thumbnailers/docs/reference/tmpl/exo-thumbnailer.sgml =================================================================== --- libexo/branches/exo-thumbnailers/docs/reference/tmpl/exo-thumbnailer.sgml (rev 0) +++ libexo/branches/exo-thumbnailers/docs/reference/tmpl/exo-thumbnailer.sgml 2009-05-15 01:00:30 UTC (rev 29961) @@ -0,0 +1,142 @@ +<!-- ##### SECTION Title ##### --> +ExoThumbnailer + +<!-- ##### SECTION Short_Description ##### --> + + +<!-- ##### SECTION Long_Description ##### --> +<para> + +</para> + +<!-- ##### SECTION See_Also ##### --> +<para> + +</para> + +<!-- ##### SECTION Stability_Level ##### --> + + +<!-- ##### STRUCT ExoThumbnailer ##### --> +<para> + +</para> + + +<!-- ##### FUNCTION exo_thumbnailer_get_default ##### --> +<para> + +</para> + +...@error: +...@returns: + + +<!-- ##### FUNCTION exo_thumbnailer_queue ##### --> +<para> + +</para> + +...@thumbnailer: +...@uris: +...@mime_hints: +...@returns: + + +<!-- ##### FUNCTION exo_thumbnailer_queue_uri ##### --> +<para> + +</para> + +...@thumbnailer: +...@uri: +...@mime_hint: +...@returns: + + +<!-- ##### FUNCTION exo_thumbnailer_unqueue ##### --> +<para> + +</para> + +...@thumbnailer: +...@handle: + + +<!-- ##### FUNCTION exo_thumbnailer_unqueue_list ##### --> +<para> + +</para> + +...@thumbnailer: +...@handles: + + +<!-- ##### FUNCTION exo_thumbnailer_move ##### --> +<para> + +</para> + +...@thumbnailer: +...@from_uris: +...@to_uris: + + +<!-- ##### FUNCTION exo_thumbnailer_move_uri ##### --> +<para> + +</para> + +...@thumbnailer: +...@from_uri: +...@to_uri: + + +<!-- ##### FUNCTION exo_thumbnailer_copy ##### --> +<para> + +</para> + +...@thumbnailer: +...@from_uris: +...@to_uris: + + +<!-- ##### FUNCTION exo_thumbnailer_copy_uri ##### --> +<para> + +</para> + +...@thumbnailer: +...@from_uri: +...@to_uri: + + +<!-- ##### FUNCTION exo_thumbnailer_delete ##### --> +<para> + +</para> + +...@thumbnailer: +...@uris: + + +<!-- ##### FUNCTION exo_thumbnailer_delete_uri ##### --> +<para> + +</para> + +...@thumbnailer: +...@uris: + + +<!-- ##### FUNCTION exo_thumbnailer_cleanup ##### --> +<para> + +</para> + +...@thumbnailer: +...@uri_prefix: +...@since: + + Modified: libexo/branches/exo-thumbnailers/exo/Makefile.am =================================================================== --- libexo/branches/exo-thumbnailers/exo/Makefile.am 2009-05-14 20:08:45 UTC (rev 29960) +++ libexo/branches/exo-thumbnailers/exo/Makefile.am 2009-05-15 01:00:30 UTC (rev 29961) @@ -29,6 +29,7 @@ exo-mount-point.h \ exo-pango-extensions.h \ exo-string.h \ + exo-thumbnailer.h \ exo-toolbars-editor-dialog.h \ exo-toolbars-editor.h \ exo-toolbars-model.h \ @@ -48,7 +49,8 @@ exo-aliasdef.c \ exo-enum-types.c \ exo-marshal.c \ - exo-marshal.h + exo-marshal.h \ + exo-thumbnailer-dbus-bindings.h libexoincludedir = $(includedir)/exo-0.3/exo @@ -88,6 +90,8 @@ exo-thumbnail-preview.h \ exo-thumbnail.c \ exo-thumbnail.h \ + exo-thumbnailer.c \ + exo-thumbnailer.h \ exo-toolbars-editor-dialog.c \ exo-toolbars-editor.c \ exo-toolbars-model.c \ @@ -101,7 +105,10 @@ exo-xsession-client.c libexo_0_3_la_CFLAGS = \ + $(DBUS_CFLAGS) \ + $(DBUS_GLIB_CFLAGS) \ $(GIO_CFLAGS) \ + $(GTHREAD_CFLAGS) \ $(GTK_CFLAGS) \ $(LIBXFCE4UTIL_CFLAGS) @@ -112,7 +119,10 @@ -no-undefined libexo_0_3_la_LIBADD = \ + $(DBUS_LIBS) \ + $(DBUS_GLIB_LIBS) \ $(GIO_LIBS) \ + $(GTHREAD_LIBS) \ $(GTK_LIBS) \ $(LIBXFCE4UTIL_LIBS) @@ -198,6 +208,9 @@ --body exo-marshal.list ) >> xgen-emc \ && cp xgen-emc exo-marshal.c \ && rm -f xgen-emc + +exo-thumbnailer-dbus-bindings.h: $(top_srcdir)/exo-thumbnailers/exo-thumbnailer-service-dbus.xml Makefile + dbus-binding-tool --mode=glib-client $< > $@ endif Added: libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.c =================================================================== --- libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.c (rev 0) +++ libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.c 2009-05-15 01:00:30 UTC (rev 29961) @@ -0,0 +1,495 @@ +/* vi:set et ai sw=2 sts=2 ts=2: */ +/*- + * Copyright (c) 2009 Jannis Pohlmann <jan...@xfce.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 Library General Public License for more details. + * + * You should have received a copy of the GNU Library General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <glib.h> +#include <glib-object.h> + +#include <dbus/dbus.h> +#include <dbus/dbus-glib.h> + +#include <exo/exo-thumbnailer.h> +#include <exo/exo-thumbnailer-dbus-bindings.h> +#include <exo/exo-private.h> + + + +#define EXO_THUMBNAILER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EXO_TYPE_THUMBNAILER, ExoThumbnailerPrivate)) + + + +/* Property identifiers */ +enum +{ + PROP_0, +}; + + + +static void exo_thumbnailer_class_init (ExoThumbnailerClass *klass); +static void exo_thumbnailer_init (ExoThumbnailer *thumbnailer); +static void exo_thumbnailer_constructed (GObject *object); +static void exo_thumbnailer_finalize (GObject *object); +static void exo_thumbnailer_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); +static void exo_thumbnailer_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static gboolean exo_thumbnailer_ensure_dbus_ready (GError **error); +static void exo_thumbnailer_ensure_dbus_down (void); +static void exo_thumbnailer_handle_unqueue (guint32 handle, + ExoThumbnailer *thumbnailer); +static void exo_thumbnailer_service_ready (DBusGProxy *proxy, + const gchar **uris, + ExoThumbnailer *thumbnailer); + + + +struct _ExoThumbnailerClass +{ + GObjectClass __parent__; +}; + +struct _ExoThumbnailer +{ + GObject __parent__; + + ExoThumbnailerPrivate *priv; +}; + +struct _ExoThumbnailerPrivate +{ + DBusGConnection *connection; + DBusGProxy *proxy; + GMutex *mutex; + GList *handles; +}; + + + +static GObjectClass *exo_thumbnailer_parent_class = NULL; + +static DBusGConnection *exo_thumbnailer_dbus_connection = NULL; +static DBusGProxy *exo_thumbnailer_dbus_proxy = NULL; +static gboolean exo_thumbnailer_dbus_initialized = FALSE; +static gint exo_thumbnailer_dbus_refcount = 0; + + + +GType +exo_thumbnailer_get_type (void) +{ + static GType type = G_TYPE_INVALID; + + if (G_UNLIKELY (type == G_TYPE_INVALID)) + { + type = g_type_register_static_simple (G_TYPE_OBJECT, + "ExoThumbnailer", + sizeof (ExoThumbnailerClass), + (GClassInitFunc) exo_thumbnailer_class_init, + sizeof (ExoThumbnailer), + (GInstanceInitFunc) exo_thumbnailer_init, + 0); + } + + return type; +} + + + +static void +exo_thumbnailer_class_init (ExoThumbnailerClass *klass) +{ + GObjectClass *gobject_class; + + g_type_class_add_private (klass, sizeof (ExoThumbnailerPrivate)); + + /* Determine the parent type class */ + exo_thumbnailer_parent_class = g_type_class_peek_parent (klass); + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->constructed = exo_thumbnailer_constructed; + gobject_class->finalize = exo_thumbnailer_finalize; + gobject_class->get_property = exo_thumbnailer_get_property; + gobject_class->set_property = exo_thumbnailer_set_property; +} + + + +static void +exo_thumbnailer_init (ExoThumbnailer *thumbnailer) +{ + thumbnailer->priv = EXO_THUMBNAILER_GET_PRIVATE (thumbnailer); + + thumbnailer->priv->mutex = g_mutex_new (); + + thumbnailer->priv->connection = dbus_g_connection_ref (exo_thumbnailer_dbus_connection); + thumbnailer->priv->proxy = g_object_ref (exo_thumbnailer_dbus_proxy); + + dbus_g_proxy_connect_signal (thumbnailer->priv->proxy, "Ready", + G_CALLBACK (exo_thumbnailer_service_ready), + thumbnailer, NULL); + + thumbnailer->priv->handles = NULL; +} + + + +static void +exo_thumbnailer_constructed (GObject *object) +{ +} + + + +static void +exo_thumbnailer_finalize (GObject *object) +{ + ExoThumbnailer *thumbnailer = EXO_THUMBNAILER (object); + + exo_thumbnailer_unqueue_list (thumbnailer, thumbnailer->priv->handles); + + g_mutex_lock (thumbnailer->priv->mutex); + + g_list_free (thumbnailer->priv->handles); + thumbnailer->priv->handles = NULL; + + g_mutex_unlock (thumbnailer->priv->mutex); + + g_mutex_free (thumbnailer->priv->mutex); + + g_signal_handlers_disconnect_matched (thumbnailer->priv->proxy, G_SIGNAL_MATCH_DATA, + 0, 0, NULL, NULL, thumbnailer); + g_object_unref (thumbnailer->priv->proxy); + + dbus_g_connection_unref (thumbnailer->priv->connection); + + exo_thumbnailer_ensure_dbus_down (); + + + (*G_OBJECT_CLASS (exo_thumbnailer_parent_class)->finalize) (object); +} + + + +static void +exo_thumbnailer_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + switch (prop_id) + { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + + +static void +exo_thumbnailer_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (prop_id) + { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + + +static gboolean +exo_thumbnailer_ensure_dbus_ready (GError **error) +{ + gboolean success = TRUE; + + if (!exo_thumbnailer_dbus_initialized) + { + if (!g_thread_supported ()) + g_thread_init (NULL); + + /* Register error domain and marshallers */ + + exo_thumbnailer_dbus_initialized = TRUE; + } + + if (exo_thumbnailer_dbus_refcount <= 0) + { + _exo_assert (exo_thumbnailer_dbus_connection == NULL); + _exo_assert (exo_thumbnailer_dbus_proxy == NULL); + + exo_thumbnailer_dbus_connection = dbus_g_bus_get (DBUS_BUS_SESSION, error); + + if (exo_thumbnailer_dbus_connection != NULL) + { + exo_thumbnailer_dbus_proxy = dbus_g_proxy_new_for_name (exo_thumbnailer_dbus_connection, + "org.freedesktop.thumbnailer.Generic", + "/org/freedesktop/Thumbnailer", + "org.freedesktop.thumbnailer.Generic"); + + dbus_g_proxy_add_signal (exo_thumbnailer_dbus_proxy, "Ready", + G_TYPE_STRV, G_TYPE_INVALID); + + g_object_add_weak_pointer (G_OBJECT (exo_thumbnailer_dbus_proxy), + (gpointer) &exo_thumbnailer_dbus_proxy); + } + else + { + success = FALSE; + } + } + + exo_thumbnailer_dbus_refcount += 1; + + return TRUE; +} + + + +static void +exo_thumbnailer_ensure_dbus_down (void) +{ + if (exo_thumbnailer_dbus_refcount >= 0) + { + if (exo_thumbnailer_dbus_refcount == 1) + { + g_object_unref (exo_thumbnailer_dbus_proxy); + + dbus_g_connection_unref (exo_thumbnailer_dbus_connection); + exo_thumbnailer_dbus_connection = NULL; + } + + exo_thumbnailer_dbus_refcount -= 1; + } +} + + + +static void +exo_thumbnailer_handle_unqueue (guint32 handle, + ExoThumbnailer *thumbnailer) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + + exo_thumbnailer_unqueue (thumbnailer, handle); +} + + + +static void +exo_thumbnailer_service_ready (DBusGProxy *proxy, + const gchar **uris, + ExoThumbnailer *thumbnailer) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + _exo_return_if_fail (uris != NULL); +} + + + +ExoThumbnailer * +exo_thumbnailer_get_default (GError **error) +{ + static ExoThumbnailer *thumbnailer = NULL; + + _exo_return_val_if_fail (error == NULL || *error == NULL, NULL); + + if (G_UNLIKELY (thumbnailer == NULL)) + { + if (!exo_thumbnailer_ensure_dbus_ready (error)) + return NULL; + + thumbnailer = g_object_new (EXO_TYPE_THUMBNAILER, NULL); + g_object_add_weak_pointer (G_OBJECT (thumbnailer), (gpointer) &thumbnailer); + } + else + { + g_object_ref (thumbnailer); + } + + return thumbnailer; +} + + + +guint32 +exo_thumbnailer_queue (ExoThumbnailer *thumbnailer, + const gchar **uris, + const gchar **mime_hints) +{ + guint32 handle = 0; + + _exo_return_val_if_fail (EXO_IS_THUMBNAILER (thumbnailer), 0); + _exo_return_val_if_fail (uris != NULL, 0); + + g_mutex_lock (thumbnailer->priv->mutex); + + if (exo_thumbnailer_proxy_queue (thumbnailer->priv->proxy, uris, mime_hints, 0, &handle, NULL)) + { + thumbnailer->priv->handles = g_list_prepend (thumbnailer->priv->handles, + GUINT_TO_POINTER (handle)); + } + + g_mutex_unlock (thumbnailer->priv->mutex); + + return handle; +} + + + +guint32 +exo_thumbnailer_queue_uri (ExoThumbnailer *thumbnailer, + const gchar *uri, + const gchar *mime_hint) +{ + const gchar *uris[] = { NULL, NULL }; + const gchar *mime_hints[] = { NULL, NULL }; + guint32 handle = 0; + + _exo_return_val_if_fail (EXO_IS_THUMBNAILER (thumbnailer), 0); + _exo_return_val_if_fail (uris != NULL, 0); + + uris[0] = uri; + mime_hints[0] = mime_hint; + + handle = exo_thumbnailer_queue (thumbnailer, uris, mime_hints); + + return handle; +} + + + +void +exo_thumbnailer_unqueue (ExoThumbnailer *thumbnailer, + guint32 handle) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + + g_mutex_lock (thumbnailer->priv->mutex); + + if (exo_thumbnailer_proxy_unqueue (thumbnailer->priv->proxy, handle, NULL)) + { + thumbnailer->priv->handles = g_list_remove_all (thumbnailer->priv->handles, + GUINT_TO_POINTER (handle)); + } + + g_mutex_unlock (thumbnailer->priv->mutex); +} + + + +void +exo_thumbnailer_unqueue_list (ExoThumbnailer *thumbnailer, + GList *handles) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + + g_list_foreach (handles, (GFunc) exo_thumbnailer_handle_unqueue, thumbnailer); +} + + + +void +exo_thumbnailer_move (ExoThumbnailer *thumbnailer, + const gchar **from_uris, + const gchar **to_uris) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + _exo_return_if_fail (from_uris != NULL); + _exo_return_if_fail (to_uris != NULL); +} + + + +void +exo_thumbnailer_move_uri (ExoThumbnailer *thumbnailer, + const gchar *from_uri, + const gchar *to_uri) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + _exo_return_if_fail (from_uri != NULL); + _exo_return_if_fail (to_uri != NULL); +} + + + +void +exo_thumbnailer_copy (ExoThumbnailer *thumbnailer, + const gchar **from_uris, + const gchar **to_uris) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + _exo_return_if_fail (from_uris != NULL); + _exo_return_if_fail (to_uris != NULL); +} + + + +void +exo_thumbnailer_copy_uri (ExoThumbnailer *thumbnailer, + const gchar *from_uri, + const gchar *to_uri) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + _exo_return_if_fail (from_uri != NULL); + _exo_return_if_fail (to_uri != NULL); +} + + + +void +exo_thumbnailer_delete (ExoThumbnailer *thumbnailer, + const gchar **uris) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + _exo_return_if_fail (uris != NULL); +} + + + +void +exo_thumbnailer_delete_uri (ExoThumbnailer *thumbnailer, + const gchar **uri) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); + _exo_return_if_fail (uri != NULL); +} + + + +void +exo_thumbnailer_cleanup (ExoThumbnailer *thumbnailer, + const gchar *uri_prefix, + guint32 since) +{ + _exo_return_if_fail (EXO_IS_THUMBNAILER (thumbnailer)); +} Added: libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.h =================================================================== --- libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.h (rev 0) +++ libexo/branches/exo-thumbnailers/exo/exo-thumbnailer.h 2009-05-15 01:00:30 UTC (rev 29961) @@ -0,0 +1,74 @@ +/* vi:set et ai sw=2 sts=2 ts=2: */ +/*- + * Copyright (c) 2009 Jannis Pohlmann <jan...@xfce.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 Library General Public License for more details. + * + * You should have received a copy of the GNU Library General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __EXO_THUMBNAILER_H__ +#define __EXO_THUMBNAILER_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS; + +#define EXO_TYPE_THUMBNAILER (exo_thumbnailer_get_type ()) +#define EXO_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXO_TYPE_THUMBNAILER, ExoThumbnailer)) +#define EXO_THUMBNAILER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EXO_TYPE_THUMBNAILER, ExoThumbnailerClass)) +#define EXO_IS_THUMBNAILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EXO_TYPE_THUMBNAILER)) +#define EXO_IS_THUMBNAILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EXO_TYPE_THUMBNAILER) +#define EXO_THUMBNAILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EXO_TYPE_THUMBNAILER, ExoThumbnailerClass)) + +typedef struct _ExoThumbnailerPrivate ExoThumbnailerPrivate; +typedef struct _ExoThumbnailerClass ExoThumbnailerClass; +typedef struct _ExoThumbnailer ExoThumbnailer; + +GType exo_thumbnailer_get_type (void) G_GNUC_CONST; + +ExoThumbnailer *exo_thumbnailer_get_default (GError **error) G_GNUC_WARN_UNUSED_RESULT; +guint32 exo_thumbnailer_queue (ExoThumbnailer *thumbnailer, + const gchar **uris, + const gchar **mime_hints); +guint32 exo_thumbnailer_queue_uri (ExoThumbnailer *thumbnailer, + const gchar *uri, + const gchar *mime_hint); +void exo_thumbnailer_unqueue (ExoThumbnailer *thumbnailer, + guint32 handle); +void exo_thumbnailer_unqueue_list (ExoThumbnailer *thumbnailer, + GList *handles); +void exo_thumbnailer_move (ExoThumbnailer *thumbnailer, + const gchar **from_uris, + const gchar **to_uris); +void exo_thumbnailer_move_uri (ExoThumbnailer *thumbnailer, + const gchar *from_uri, + const gchar *to_uri); +void exo_thumbnailer_copy (ExoThumbnailer *thumbnailer, + const gchar **from_uris, + const gchar **to_uris); +void exo_thumbnailer_copy_uri (ExoThumbnailer *thumbnailer, + const gchar *from_uri, + const gchar *to_uri); +void exo_thumbnailer_delete (ExoThumbnailer *thumbnailer, + const gchar **uris); +void exo_thumbnailer_delete_uri (ExoThumbnailer *thumbnailer, + const gchar *uris); +void exo_thumbnailer_cleanup (ExoThumbnailer *thumbnailer, + const gchar *uri_prefix, + guint32 since); + +G_END_DECLS; + +#endif /* !__EXO_THUMBNAILER_H__ */ Modified: libexo/branches/exo-thumbnailers/exo/exo.h =================================================================== --- libexo/branches/exo-thumbnailers/exo/exo.h 2009-05-14 20:08:45 UTC (rev 29960) +++ libexo/branches/exo-thumbnailers/exo/exo.h 2009-05-15 01:00:30 UTC (rev 29961) @@ -54,6 +54,7 @@ #include <exo/exo-pango-extensions.h> #include <exo/exo-simple-job.h> #include <exo/exo-string.h> +#include <exo/exo-thumbnailer.h> #include <exo/exo-toolbars-editor.h> #include <exo/exo-toolbars-editor-dialog.h> #include <exo/exo-toolbars-model.h> _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits