background: GnomeWpXml to CcBackgroundXml
and into a GObject.
This commit is contained in:
parent
2e9519a57f
commit
415d4c1111
5 changed files with 194 additions and 123 deletions
|
@ -33,12 +33,14 @@ BUILT_SOURCES = \
|
|||
gdesktop-enums-types.h
|
||||
|
||||
libbackground_la_SOURCES = \
|
||||
$(BUILT_SOURCES) \
|
||||
$(BUILT_SOURCES) \
|
||||
background-module.c \
|
||||
cc-background-panel.c \
|
||||
cc-background-panel.h \
|
||||
cc-background-item.c \
|
||||
cc-background-item.h \
|
||||
cc-background-xml.c \
|
||||
cc-background-xml.h \
|
||||
bg-source.c \
|
||||
bg-source.h \
|
||||
bg-pictures-source.c \
|
||||
|
@ -46,9 +48,7 @@ libbackground_la_SOURCES = \
|
|||
bg-wallpapers-source.c \
|
||||
bg-wallpapers-source.h \
|
||||
bg-colors-source.c \
|
||||
bg-colors-source.h \
|
||||
gnome-wp-xml.c \
|
||||
gnome-wp-xml.h
|
||||
bg-colors-source.h
|
||||
|
||||
|
||||
libbackground_la_LIBADD = \
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include "bg-wallpapers-source.h"
|
||||
|
||||
#include "cc-background-item.h"
|
||||
#include "gnome-wp-xml.h"
|
||||
#include "cc-background-xml.h"
|
||||
|
||||
#include <libgnome-desktop/gnome-desktop-thumbnail.h>
|
||||
#include <gio/gio.h>
|
||||
|
@ -38,7 +38,6 @@ struct _BgWallpapersSourcePrivate
|
|||
{
|
||||
GtkListStore *store;
|
||||
GnomeDesktopThumbnailFactory *thumb_factory;
|
||||
guint reload_id;
|
||||
};
|
||||
|
||||
|
||||
|
@ -79,12 +78,6 @@ bg_wallpapers_source_dispose (GObject *object)
|
|||
priv->thumb_factory = NULL;
|
||||
}
|
||||
|
||||
if (priv->reload_id != 0)
|
||||
{
|
||||
g_source_remove (priv->reload_id);
|
||||
priv->reload_id = 0;
|
||||
}
|
||||
|
||||
G_OBJECT_CLASS (bg_wallpapers_source_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
|
@ -114,7 +107,6 @@ load_wallpapers (gchar *key,
|
|||
{
|
||||
BgWallpapersSourcePrivate *priv = source->priv;
|
||||
GtkTreeIter iter;
|
||||
// GtkTreePath *path;
|
||||
GIcon *pixbuf;
|
||||
GtkListStore *store = bg_source_get_liststore (BG_SOURCE (source));
|
||||
gboolean deleted;
|
||||
|
@ -127,11 +119,11 @@ load_wallpapers (gchar *key,
|
|||
gtk_list_store_append (store, &iter);
|
||||
|
||||
pixbuf = cc_background_item_get_thumbnail (item, priv->thumb_factory,
|
||||
THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT);
|
||||
THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT);
|
||||
|
||||
gtk_list_store_set (store, &iter,
|
||||
0, pixbuf,
|
||||
1, item,
|
||||
1, g_object_ref (item),
|
||||
-1);
|
||||
|
||||
if (pixbuf)
|
||||
|
@ -144,32 +136,24 @@ list_load_cb (GObject *source_object,
|
|||
gpointer user_data)
|
||||
{
|
||||
BgWallpapersSource *self = (BgWallpapersSource *) user_data;
|
||||
GnomeWpXml *wp_xml;
|
||||
const GHashTable *ht;
|
||||
|
||||
wp_xml = gnome_wp_xml_load_list_finish (res);
|
||||
g_hash_table_foreach (wp_xml->wp_hash,
|
||||
ht = cc_background_xml_load_list_finish (res);
|
||||
g_hash_table_foreach ((GHashTable *) ht,
|
||||
(GHFunc) load_wallpapers,
|
||||
self);
|
||||
|
||||
g_hash_table_destroy (wp_xml->wp_hash);
|
||||
g_free (wp_xml);
|
||||
g_object_unref (source_object);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
reload_wallpapers (BgWallpapersSource *self)
|
||||
{
|
||||
GnomeWpXml *wp_xml;
|
||||
CcBackgroundXml *wp_xml;
|
||||
|
||||
/* set up wallpaper source */
|
||||
wp_xml = g_new0 (GnomeWpXml, 1);
|
||||
wp_xml->wp_hash = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
wp_xml->wp_model = bg_source_get_liststore (BG_SOURCE (self));
|
||||
wp_xml->thumb_width = THUMBNAIL_WIDTH;
|
||||
wp_xml->thumb_height = THUMBNAIL_HEIGHT;
|
||||
wp_xml->thumb_factory = self->priv->thumb_factory;
|
||||
|
||||
gnome_wp_xml_load_list_async (wp_xml, NULL, list_load_cb, self);
|
||||
self->priv->reload_id = 0;
|
||||
wp_xml = cc_background_xml_new ();
|
||||
cc_background_xml_load_list_async (wp_xml, NULL, list_load_cb, self);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -184,7 +168,7 @@ bg_wallpapers_source_init (BgWallpapersSource *self)
|
|||
priv->thumb_factory =
|
||||
gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL);
|
||||
|
||||
priv->reload_id = g_idle_add ((GSourceFunc)reload_wallpapers, self);
|
||||
reload_wallpapers (self);
|
||||
}
|
||||
|
||||
BgWallpapersSource *
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
/*
|
||||
* Authors: Rodney Dawes <dobey@ximian.com>
|
||||
* Bastien Nocera <hadess@hadess.net>
|
||||
*
|
||||
* Copyright 2003-2006 Novell, Inc. (www.novell.com)
|
||||
* Copyright 2011 Red Hat Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of version 2 of the GNU General Public License
|
||||
|
@ -26,10 +28,25 @@
|
|||
|
||||
#include "gdesktop-enums-types.h"
|
||||
#include "cc-background-item.h"
|
||||
#include "gnome-wp-xml.h"
|
||||
#include "cc-background-xml.h"
|
||||
|
||||
static gboolean gnome_wp_xml_get_bool (const xmlNode * parent,
|
||||
const gchar * prop_name) {
|
||||
struct CcBackgroundXmlPrivate
|
||||
{
|
||||
GHashTable *wp_hash;
|
||||
};
|
||||
|
||||
#define CC_BACKGROUND_XML_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CC_TYPE_BACKGROUND_XML, CcBackgroundXmlPrivate))
|
||||
|
||||
static void cc_background_xml_class_init (CcBackgroundXmlClass *klass);
|
||||
static void cc_background_xml_init (CcBackgroundXml *background_item);
|
||||
static void cc_background_xml_finalize (GObject *object);
|
||||
|
||||
G_DEFINE_TYPE (CcBackgroundXml, cc_background_xml, G_TYPE_OBJECT)
|
||||
|
||||
static gboolean
|
||||
cc_background_xml_get_bool (const xmlNode *parent,
|
||||
const gchar *prop_name)
|
||||
{
|
||||
xmlChar * prop;
|
||||
gboolean ret_val = FALSE;
|
||||
|
||||
|
@ -50,7 +67,7 @@ static gboolean gnome_wp_xml_get_bool (const xmlNode * parent,
|
|||
}
|
||||
|
||||
#if 0
|
||||
static void gnome_wp_xml_set_bool (const xmlNode * parent,
|
||||
static void cc_background_xml_set_bool (const xmlNode * parent,
|
||||
const xmlChar * prop_name, gboolean value) {
|
||||
g_return_if_fail (parent != NULL);
|
||||
g_return_if_fail (prop_name != NULL);
|
||||
|
@ -100,8 +117,10 @@ enum_string_to_value (GType type,
|
|||
#define UNSET_FLAG(flag) G_STMT_START{ (flags&=~(flag)); }G_STMT_END
|
||||
#define SET_FLAG(flag) G_STMT_START{ (flags|=flag); }G_STMT_END
|
||||
|
||||
static void gnome_wp_xml_load_xml (GnomeWpXml *data,
|
||||
const gchar * filename) {
|
||||
static void
|
||||
cc_background_xml_load_xml (CcBackgroundXml *xml,
|
||||
const gchar * filename)
|
||||
{
|
||||
xmlDoc * wplist;
|
||||
xmlNode * root, * list, * wpa;
|
||||
xmlChar * nodelang;
|
||||
|
@ -128,7 +147,7 @@ static void gnome_wp_xml_load_xml (GnomeWpXml *data,
|
|||
item = cc_background_item_new (NULL);
|
||||
|
||||
g_object_set (G_OBJECT (item),
|
||||
"is-deleted", gnome_wp_xml_get_bool (list, "deleted"),
|
||||
"is-deleted", cc_background_xml_get_bool (list, "deleted"),
|
||||
"source-xml", filename,
|
||||
NULL);
|
||||
|
||||
|
@ -221,32 +240,34 @@ static void gnome_wp_xml_load_xml (GnomeWpXml *data,
|
|||
g_free (uri);
|
||||
|
||||
/* Make sure we don't already have this one and that filename exists */
|
||||
if (g_hash_table_lookup (data->wp_hash, id) != NULL) {
|
||||
if (g_hash_table_lookup (xml->priv->wp_hash, id) != NULL) {
|
||||
g_object_unref (item);
|
||||
g_free (id);
|
||||
continue;
|
||||
}
|
||||
|
||||
g_object_set (G_OBJECT (item), "flags", flags, NULL);
|
||||
g_hash_table_insert (data->wp_hash, id, item);
|
||||
g_hash_table_insert (xml->priv->wp_hash, id, item);
|
||||
/* Don't free ID, we added it to the hash table */
|
||||
}
|
||||
}
|
||||
xmlFreeDoc (wplist);
|
||||
}
|
||||
|
||||
static void gnome_wp_file_changed (GFileMonitor *monitor,
|
||||
GFile *file,
|
||||
GFile *other_file,
|
||||
GFileMonitorEvent event_type,
|
||||
GnomeWpXml *data) {
|
||||
gchar * filename;
|
||||
static void
|
||||
gnome_wp_file_changed (GFileMonitor *monitor,
|
||||
GFile *file,
|
||||
GFile *other_file,
|
||||
GFileMonitorEvent event_type,
|
||||
CcBackgroundXml *data)
|
||||
{
|
||||
gchar *filename;
|
||||
|
||||
switch (event_type) {
|
||||
case G_FILE_MONITOR_EVENT_CHANGED:
|
||||
case G_FILE_MONITOR_EVENT_CREATED:
|
||||
filename = g_file_get_path (file);
|
||||
gnome_wp_xml_load_xml (data, filename);
|
||||
cc_background_xml_load_xml (data, filename);
|
||||
g_free (filename);
|
||||
break;
|
||||
default:
|
||||
|
@ -254,8 +275,10 @@ static void gnome_wp_file_changed (GFileMonitor *monitor,
|
|||
}
|
||||
}
|
||||
|
||||
static void gnome_wp_xml_add_monitor (GFile *directory,
|
||||
GnomeWpXml *data) {
|
||||
static void
|
||||
cc_background_xml_add_monitor (GFile *directory,
|
||||
CcBackgroundXml *data)
|
||||
{
|
||||
GFileMonitor *monitor;
|
||||
GError *error = NULL;
|
||||
|
||||
|
@ -279,8 +302,10 @@ static void gnome_wp_xml_add_monitor (GFile *directory,
|
|||
data);
|
||||
}
|
||||
|
||||
static void gnome_wp_xml_load_from_dir (const gchar *path,
|
||||
GnomeWpXml *data) {
|
||||
static void
|
||||
cc_background_xml_load_from_dir (const gchar *path,
|
||||
CcBackgroundXml *data)
|
||||
{
|
||||
GFile *directory;
|
||||
GFileEnumerator *enumerator;
|
||||
GError *error = NULL;
|
||||
|
@ -311,18 +336,20 @@ static void gnome_wp_xml_load_from_dir (const gchar *path,
|
|||
fullpath = g_build_filename (path, filename, NULL);
|
||||
g_object_unref (info);
|
||||
|
||||
gnome_wp_xml_load_xml (data, fullpath);
|
||||
cc_background_xml_load_xml (data, fullpath);
|
||||
g_free (fullpath);
|
||||
}
|
||||
g_file_enumerator_close (enumerator, NULL, NULL);
|
||||
|
||||
gnome_wp_xml_add_monitor (directory, data);
|
||||
cc_background_xml_add_monitor (directory, data);
|
||||
|
||||
g_object_unref (directory);
|
||||
g_object_unref (enumerator);
|
||||
}
|
||||
|
||||
void gnome_wp_xml_load_list (GnomeWpXml *data) {
|
||||
static void
|
||||
cc_background_xml_load_list (CcBackgroundXml *data)
|
||||
{
|
||||
const char * const *system_data_dirs;
|
||||
gchar * datadir;
|
||||
gint i;
|
||||
|
@ -330,7 +357,7 @@ void gnome_wp_xml_load_list (GnomeWpXml *data) {
|
|||
datadir = g_build_filename (g_get_user_data_dir (),
|
||||
"gnome-background-properties",
|
||||
NULL);
|
||||
gnome_wp_xml_load_from_dir (datadir, data);
|
||||
cc_background_xml_load_from_dir (datadir, data);
|
||||
g_free (datadir);
|
||||
|
||||
system_data_dirs = g_get_system_data_dirs ();
|
||||
|
@ -338,20 +365,22 @@ void gnome_wp_xml_load_list (GnomeWpXml *data) {
|
|||
datadir = g_build_filename (system_data_dirs[i],
|
||||
"gnome-background-properties",
|
||||
NULL);
|
||||
gnome_wp_xml_load_from_dir (datadir, data);
|
||||
cc_background_xml_load_from_dir (datadir, data);
|
||||
g_free (datadir);
|
||||
}
|
||||
}
|
||||
|
||||
GnomeWpXml *
|
||||
gnome_wp_xml_load_list_finish (GAsyncResult *async_result)
|
||||
const GHashTable *
|
||||
cc_background_xml_load_list_finish (GAsyncResult *async_result)
|
||||
{
|
||||
GSimpleAsyncResult *result = G_SIMPLE_ASYNC_RESULT (async_result);
|
||||
CcBackgroundXml *data;
|
||||
|
||||
g_return_val_if_fail (G_IS_ASYNC_RESULT (async_result), NULL);
|
||||
g_warn_if_fail (g_simple_async_result_get_source_tag (result) == gnome_wp_xml_load_list_async);
|
||||
g_warn_if_fail (g_simple_async_result_get_source_tag (result) == cc_background_xml_load_list_async);
|
||||
|
||||
return g_simple_async_result_get_op_res_gpointer (result);
|
||||
data = CC_BACKGROUND_XML (g_simple_async_result_get_op_res_gpointer (result));
|
||||
return data->priv->wp_hash;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -359,29 +388,29 @@ load_list_thread (GSimpleAsyncResult *res,
|
|||
GObject *object,
|
||||
GCancellable *cancellable)
|
||||
{
|
||||
GnomeWpXml *data;
|
||||
CcBackgroundXml *data;
|
||||
|
||||
data = g_simple_async_result_get_op_res_gpointer (res);
|
||||
gnome_wp_xml_load_list (data);
|
||||
cc_background_xml_load_list (data);
|
||||
}
|
||||
|
||||
void gnome_wp_xml_load_list_async (GnomeWpXml *data,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data)
|
||||
void cc_background_xml_load_list_async (CcBackgroundXml *data,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data)
|
||||
{
|
||||
GSimpleAsyncResult *result;
|
||||
|
||||
g_return_if_fail (data != NULL);
|
||||
|
||||
result = g_simple_async_result_new (NULL, callback, user_data, gnome_wp_xml_load_list_async);
|
||||
result = g_simple_async_result_new (G_OBJECT (data), callback, user_data, cc_background_xml_load_list_async);
|
||||
g_simple_async_result_set_op_res_gpointer (result, data, NULL);
|
||||
g_simple_async_result_run_in_thread (result, (GSimpleAsyncThreadFunc) load_list_thread, G_PRIORITY_LOW, cancellable);
|
||||
g_object_unref (result);
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void gnome_wp_list_flatten (const gchar * key, CcBackgroundItem * item,
|
||||
static void gnome_wp_list_flatten (const gchar * key, CcBackgroundXml * item,
|
||||
GSList ** list) {
|
||||
g_return_if_fail (key != NULL);
|
||||
g_return_if_fail (item != NULL);
|
||||
|
@ -389,7 +418,7 @@ static void gnome_wp_list_flatten (const gchar * key, CcBackgroundItem * item,
|
|||
*list = g_slist_prepend (*list, item);
|
||||
}
|
||||
#endif
|
||||
void gnome_wp_xml_save_list (GnomeWpXml *data) {
|
||||
void cc_background_xml_save_list (CcBackgroundXml *data) {
|
||||
//FIXME implement save or remove?
|
||||
#if 0
|
||||
xmlDoc * wplist;
|
||||
|
@ -415,7 +444,7 @@ void gnome_wp_xml_save_list (GnomeWpXml *data) {
|
|||
xmlDocSetRootElement (wplist, root);
|
||||
|
||||
while (list != NULL) {
|
||||
CcBackgroundItem * wpitem = list->data;
|
||||
CcBackgroundXml * wpitem = list->data;
|
||||
const char * none = "(none)";
|
||||
gchar * filename;
|
||||
const gchar * scale, * shade;
|
||||
|
@ -434,7 +463,7 @@ void gnome_wp_xml_save_list (GnomeWpXml *data) {
|
|||
shade = wp_item_shading_to_string (wpitem->shade_type);
|
||||
|
||||
wallpaper = xmlNewChild (root, NULL, (xmlChar *)"wallpaper", NULL);
|
||||
gnome_wp_xml_set_bool (wallpaper, (xmlChar *)"deleted", wpitem->deleted);
|
||||
cc_background_xml_set_bool (wallpaper, (xmlChar *)"deleted", wpitem->deleted);
|
||||
item = xmlNewTextChild (wallpaper, NULL, (xmlChar *)"name", (xmlChar *)wpitem->name);
|
||||
item = xmlNewTextChild (wallpaper, NULL, (xmlChar *)"filename", (xmlChar *)filename);
|
||||
item = xmlNewTextChild (wallpaper, NULL, (xmlChar *)"options", (xmlChar *)scale);
|
||||
|
@ -454,3 +483,46 @@ void gnome_wp_xml_save_list (GnomeWpXml *data) {
|
|||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
cc_background_xml_finalize (GObject *object)
|
||||
{
|
||||
CcBackgroundXml *xml;
|
||||
|
||||
g_return_if_fail (object != NULL);
|
||||
g_return_if_fail (CC_IS_BACKGROUND_XML (object));
|
||||
|
||||
xml = CC_BACKGROUND_XML (object);
|
||||
|
||||
g_return_if_fail (xml->priv != NULL);
|
||||
|
||||
if (xml->priv->wp_hash) {
|
||||
g_hash_table_destroy (xml->priv->wp_hash);
|
||||
xml->priv->wp_hash = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
cc_background_xml_class_init (CcBackgroundXmlClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
object_class->finalize = cc_background_xml_finalize;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (CcBackgroundXmlPrivate));
|
||||
}
|
||||
|
||||
static void
|
||||
cc_background_xml_init (CcBackgroundXml *xml)
|
||||
{
|
||||
xml->priv = CC_BACKGROUND_XML_GET_PRIVATE (xml);
|
||||
xml->priv->wp_hash = g_hash_table_new_full (g_str_hash,
|
||||
g_str_equal,
|
||||
(GDestroyNotify) g_free,
|
||||
(GDestroyNotify) g_object_unref);
|
||||
}
|
||||
|
||||
CcBackgroundXml *
|
||||
cc_background_xml_new (void)
|
||||
{
|
||||
return CC_BACKGROUND_XML (g_object_new (CC_TYPE_BACKGROUND_XML, NULL));
|
||||
}
|
67
panels/background/cc-background-xml.h
Normal file
67
panels/background/cc-background-xml.h
Normal file
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
* Authors: Rodney Dawes <dobey@ximian.com>
|
||||
*
|
||||
* Copyright 2003-2006 Novell, Inc. (www.novell.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of version 2 of the GNU General Public License
|
||||
* as published by the Free Software Foundation
|
||||
*
|
||||
* 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., 59 Temple Street #330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _CC_BACKGROUND_XML_H_
|
||||
#define _CC_BACKGROUND_XML_H_
|
||||
|
||||
#include <libgnome-desktop/gnome-desktop-thumbnail.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define CC_TYPE_BACKGROUND_XML (cc_background_xml_get_type ())
|
||||
#define CC_BACKGROUND_XML(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CC_TYPE_BACKGROUND_XML, CcBackgroundXml))
|
||||
#define CC_BACKGROUND_XML_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), CC_TYPE_BACKGROUND_XML, CcBackgroundXmlClass))
|
||||
#define CC_IS_BACKGROUND_XML(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CC_TYPE_BACKGROUND_XML))
|
||||
#define CC_IS_BACKGROUND_XML_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CC_TYPE_BACKGROUND_XML))
|
||||
#define CC_BACKGROUND_XML_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CC_TYPE_BACKGROUND_XML, CcBackgroundXmlClass))
|
||||
|
||||
typedef struct CcBackgroundXmlPrivate CcBackgroundXmlPrivate;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
} CcBackgroundXmlClass;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GObject parent;
|
||||
CcBackgroundXmlPrivate *priv;
|
||||
} CcBackgroundXml;
|
||||
|
||||
GType cc_background_xml_get_type (void);
|
||||
|
||||
CcBackgroundXml *cc_background_xml_new (void);
|
||||
void cc_background_xml_save_list (CcBackgroundXml *data);
|
||||
/* FIXME this should be an iterator instead, so the bg
|
||||
* pops up as soon as a new one is available */
|
||||
void cc_background_xml_load_list_async (CcBackgroundXml *data,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
/* FIXME, this is ugly API, which wouldn't be
|
||||
* needed if this was an object */
|
||||
const GHashTable *cc_background_xml_load_list_finish (GAsyncResult *async_result);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
/*
|
||||
* Authors: Rodney Dawes <dobey@ximian.com>
|
||||
*
|
||||
* Copyright 2003-2006 Novell, Inc. (www.novell.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of version 2 of the GNU General Public License
|
||||
* as published by the Free Software Foundation
|
||||
*
|
||||
* 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., 59 Temple Street #330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _GNOME_WP_XML_H_
|
||||
#define _GNOME_WP_XML_H_
|
||||
|
||||
#include <libgnome-desktop/gnome-desktop-thumbnail.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gio/gio.h>
|
||||
|
||||
typedef struct _GnomeWpXml GnomeWpXml;
|
||||
|
||||
struct _GnomeWpXml
|
||||
{
|
||||
GHashTable *wp_hash;
|
||||
GnomeDesktopThumbnailFactory *thumb_factory;
|
||||
gint thumb_height;
|
||||
gint thumb_width;
|
||||
GtkListStore *wp_model;
|
||||
};
|
||||
|
||||
void gnome_wp_xml_load_list (GnomeWpXml *data);
|
||||
void gnome_wp_xml_save_list (GnomeWpXml *data);
|
||||
/* FIXME this should be an iterator instead, so the bg
|
||||
* pops up as soon as a new one is available */
|
||||
void gnome_wp_xml_load_list_async (GnomeWpXml *data,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
/* FIXME, this is ugly API, which wouldn't be
|
||||
* needed if this was an object */
|
||||
GnomeWpXml *gnome_wp_xml_load_list_finish (GAsyncResult *async_result);
|
||||
|
||||
#endif
|
||||
|
Loading…
Add table
Reference in a new issue