katze.h \
katze-throbber.c katze-throbber.h \
katze-utils.c katze-utils.h \
- katze-webitem.c katze-webitem.h \
+ katze-item.c katze-item.h \
katze-weblist.c katze-weblist.h \
katze-xbel.c katze-xbel.h
--- /dev/null
+/*
+ Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ See the file COPYING for the full license text.
+*/
+
+#include "katze-item.h"
+
+#include "katze-utils.h"
+
+#include <glib/gi18n.h>
+
+/**
+ * SECTION:katze-item
+ * @short_description: A useful item
+ * @see_also: #MidoriWebList
+ *
+ * #KatzeItem is a particularly useful item that provides
+ * several commonly needed properties.
+ */
+
+G_DEFINE_TYPE (KatzeItem, katze_item, G_TYPE_OBJECT)
+
+enum
+{
+ PROP_0,
+
+ PROP_NAME,
+ PROP_TEXT,
+ PROP_URI,
+ PROP_ICON,
+ PROP_TOKEN
+};
+
+static void
+katze_item_finalize (GObject* object);
+
+static void
+katze_item_set_property (GObject* object,
+ guint prop_id,
+ const GValue* value,
+ GParamSpec* pspec);
+
+static void
+katze_item_get_property (GObject* object,
+ guint prop_id,
+ GValue* value,
+ GParamSpec* pspec);
+
+static void
+katze_item_class_init (KatzeItemClass* class)
+{
+ GObjectClass* gobject_class;
+ GParamFlags flags;
+
+ gobject_class = G_OBJECT_CLASS (class);
+ gobject_class->finalize = katze_item_finalize;
+ gobject_class->set_property = katze_item_set_property;
+ gobject_class->get_property = katze_item_get_property;
+
+ flags = G_PARAM_READWRITE | G_PARAM_CONSTRUCT;
+
+ g_object_class_install_property (gobject_class,
+ PROP_NAME,
+ g_param_spec_string (
+ "name",
+ _("Name"),
+ _("The name of the item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_TEXT,
+ g_param_spec_string (
+ "text",
+ _("Text"),
+ _("The descriptive text of the item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_URI,
+ g_param_spec_string (
+ "uri",
+ _("URI"),
+ _("The URI of the item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_ICON,
+ g_param_spec_string (
+ "icon",
+ _("Icon"),
+ _("The icon of the item"),
+ NULL,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_TOKEN,
+ g_param_spec_string (
+ "token",
+ _("Token"),
+ _("The token of the item"),
+ NULL,
+ flags));
+}
+
+
+
+static void
+katze_item_init (KatzeItem* item)
+{
+ /* Nothing to do here */
+}
+
+static void
+katze_item_finalize (GObject* object)
+{
+ KatzeItem* item = KATZE_ITEM (object);
+
+ g_free (item->name);
+ g_free (item->text);
+ g_free (item->uri);
+ g_free (item->icon);
+ g_free (item->token);
+
+ G_OBJECT_CLASS (katze_item_parent_class)->finalize (object);
+}
+
+static void
+katze_item_set_property (GObject* object,
+ guint prop_id,
+ const GValue* value,
+ GParamSpec* pspec)
+{
+ KatzeItem* item = KATZE_ITEM (object);
+
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ item->name = g_value_dup_string (value);
+ break;
+ case PROP_TEXT:
+ item->text = g_value_dup_string (value);
+ break;
+ case PROP_URI:
+ item->uri = g_value_dup_string (value);
+ break;
+ case PROP_ICON:
+ item->icon = g_value_dup_string (value);
+ break;
+ case PROP_TOKEN:
+ item->token = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+katze_item_get_property (GObject* object,
+ guint prop_id,
+ GValue* value,
+ GParamSpec* pspec)
+{
+ KatzeItem* item = KATZE_ITEM (object);
+
+ switch (prop_id)
+ {
+ case PROP_NAME:
+ g_value_set_string (value, item->name);
+ break;
+ case PROP_TEXT:
+ g_value_set_string (value, item->text);
+ break;
+ case PROP_URI:
+ g_value_set_string (value, item->uri);
+ break;
+ case PROP_ICON:
+ g_value_set_string (value, item->icon);
+ break;
+ case PROP_TOKEN:
+ g_value_set_string (value, item->token);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * katze_item_new:
+ *
+ * Creates a new #KatzeItem.
+ *
+ * Return value: a new #KatzeItem
+ **/
+KatzeItem*
+katze_item_new (void)
+{
+ KatzeItem* item = g_object_new (KATZE_TYPE_ITEM, NULL);
+
+ return item;
+}
+
+/**
+ * katze_item_get_name:
+ * @item: a #KatzeItem
+ *
+ * Retrieves the name of @item.
+ *
+ * Return value: the name of the item
+ **/
+const gchar*
+katze_item_get_name (KatzeItem* item)
+{
+ g_return_val_if_fail (KATZE_IS_ITEM (item), NULL);
+
+ return item->name;
+}
+
+/**
+ * katze_item_set_name:
+ * @item: a #KatzeItem
+ * @name: a string
+ *
+ * Sets the name of @item.
+ **/
+void
+katze_item_set_name (KatzeItem* item,
+ const gchar* name)
+{
+ g_return_if_fail (KATZE_IS_ITEM (item));
+
+ katze_assign (item->name, g_strdup (name));
+ g_object_notify (G_OBJECT (item), "name");
+}
+
+/**
+ * katze_item_get_text:
+ * @item: a #KatzeItem
+ *
+ * Retrieves the descriptive text of @item.
+ *
+ * Return value: the text of the item
+ **/
+const gchar*
+katze_item_get_text (KatzeItem* item)
+{
+ g_return_val_if_fail (KATZE_IS_ITEM (item), NULL);
+
+ return item->text;
+}
+
+/**
+ * katze_item_set_text:
+ * @item: a #KatzeItem
+ * @description: a string
+ *
+ * Sets the descriptive text of @item.
+ **/
+void
+katze_item_set_text (KatzeItem* item,
+ const gchar* text)
+{
+ g_return_if_fail (KATZE_IS_ITEM (item));
+
+ katze_assign (item->text, g_strdup (text));
+ g_object_notify (G_OBJECT (item), "text");
+}
+
+/**
+ * katze_item_get_uri:
+ * @item: a #KatzeItem
+ *
+ * Retrieves the URI of @item.
+ *
+ * Return value: the URI of the item
+ **/
+const gchar*
+katze_item_get_uri (KatzeItem* item)
+{
+ g_return_val_if_fail (KATZE_IS_ITEM (item), NULL);
+
+ return item->uri;
+}
+
+/**
+ * katze_item_set_uri:
+ * @item: a #KatzeItem
+ * @uri: a string
+ *
+ * Sets the URI of @item.
+ **/
+void
+katze_item_set_uri (KatzeItem* item,
+ const gchar* uri)
+{
+ g_return_if_fail (KATZE_IS_ITEM (item));
+
+ katze_assign (item->uri, g_strdup (uri));
+ g_object_notify (G_OBJECT (item), "uri");
+}
+
+/**
+ * katze_item_get_icon:
+ * @item: a #KatzeItem
+ *
+ * Retrieves the icon of @item.
+ *
+ * Return value: the icon of the item
+ **/
+const gchar*
+katze_item_get_icon (KatzeItem* item)
+{
+ g_return_val_if_fail (KATZE_IS_ITEM (item), NULL);
+
+ return item->icon;
+}
+
+/**
+ * katze_item_set_icon:
+ * @item: a #KatzeItem
+ * @icon: a string
+ *
+ * Sets the icon of @item.
+ **/
+void
+katze_item_set_icon (KatzeItem* item,
+ const gchar* icon)
+{
+ g_return_if_fail (KATZE_IS_ITEM (item));
+
+ katze_assign (item->icon, g_strdup (icon));
+ g_object_notify (G_OBJECT (item), "icon");
+}
+
+/**
+ * katze_item_get_token:
+ * @item: a #KatzeItem
+ *
+ * Retrieves the token of @item.
+ *
+ * Return value: the token of the item
+ **/
+const gchar*
+katze_item_get_token (KatzeItem* item)
+{
+ g_return_val_if_fail (KATZE_IS_ITEM (item), NULL);
+
+ return item->token;
+}
+
+/**
+ * katze_item_set_token:
+ * @item: a #KatzeItem
+ * @token: a string
+ *
+ * Sets the token of @item.
+ **/
+void
+katze_item_set_token (KatzeItem* item,
+ const gchar* token)
+{
+ g_return_if_fail (KATZE_IS_ITEM (item));
+
+ katze_assign (item->token, g_strdup (token));
+ g_object_notify (G_OBJECT (item), "token");
+}
--- /dev/null
+/*
+ Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ See the file COPYING for the full license text.
+*/
+
+#ifndef __MIDORI_WEB_ITEM_H__
+#define __MIDORI_WEB_ITEM_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define KATZE_TYPE_ITEM \
+ (katze_item_get_type ())
+#define KATZE_ITEM(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), KATZE_TYPE_ITEM, KatzeItem))
+#define KATZE_ITEM_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), KATZE_TYPE_ITEM, KatzeItemClass))
+#define KATZE_IS_ITEM(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KATZE_TYPE_ITEM))
+#define KATZE_IS_ITEM_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), KATZE_TYPE_ITEM))
+#define KATZE_ITEM_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), KATZE_TYPE_ITEM, KatzeItemClass))
+
+typedef struct _KatzeItem KatzeItem;
+typedef struct _KatzeItemClass KatzeItemClass;
+
+struct _KatzeItem
+{
+ GObject parent_instance;
+
+ gchar* name;
+ gchar* text;
+ gchar* uri;
+ gchar* icon;
+ gchar* token;
+};
+
+struct _KatzeItemClass
+{
+ GObjectClass parent_class;
+};
+
+GType
+katze_item_get_type (void);
+
+KatzeItem*
+katze_item_new (void);
+
+const gchar*
+katze_item_get_name (KatzeItem* item);
+
+void
+katze_item_set_name (KatzeItem* item,
+ const gchar* name);
+
+const gchar*
+katze_item_get_text (KatzeItem* item);
+
+void
+katze_item_set_text (KatzeItem* item,
+ const gchar* text);
+
+const gchar*
+katze_item_get_uri (KatzeItem* item);
+
+void
+katze_item_set_uri (KatzeItem* item,
+ const gchar* uri);
+
+const gchar*
+katze_item_get_icon (KatzeItem* item);
+
+void
+katze_item_set_icon (KatzeItem* item,
+ const gchar* icon);
+
+const gchar*
+katze_item_get_token (KatzeItem* item);
+
+void
+katze_item_set_token (KatzeItem* item,
+ const gchar* token);
+
+G_END_DECLS
+
+#endif /* __MIDORI_WEB_ITEM_H__ */
+++ /dev/null
-/*
- Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#include "katze-webitem.h"
-
-#include "katze-utils.h"
-
-#include <glib/gi18n.h>
-
-struct _MidoriWebItem
-{
- GObject parent_instance;
-
- gchar* name;
- gchar* description;
- gchar* uri;
- gchar* icon;
- gchar* token;
-};
-
-G_DEFINE_TYPE (MidoriWebItem, midori_web_item, G_TYPE_OBJECT)
-
-enum
-{
- PROP_0,
-
- PROP_NAME,
- PROP_DESCRIPTION,
- PROP_URI,
- PROP_ICON,
- PROP_TOKEN
-};
-
-static void
-midori_web_item_finalize (GObject* object);
-
-static void
-midori_web_item_set_property (GObject* object,
- guint prop_id,
- const GValue* value,
- GParamSpec* pspec);
-
-static void
-midori_web_item_get_property (GObject* object,
- guint prop_id,
- GValue* value,
- GParamSpec* pspec);
-
-static void
-midori_web_item_class_init (MidoriWebItemClass* class)
-{
- GObjectClass* gobject_class = G_OBJECT_CLASS (class);
- gobject_class->finalize = midori_web_item_finalize;
- gobject_class->set_property = midori_web_item_set_property;
- gobject_class->get_property = midori_web_item_get_property;
-
- GParamFlags flags = G_PARAM_READWRITE | G_PARAM_CONSTRUCT;
-
- g_object_class_install_property (gobject_class,
- PROP_NAME,
- g_param_spec_string (
- "name",
- _("Name"),
- _("The name of the web item"),
- NULL,
- flags));
-
- g_object_class_install_property (gobject_class,
- PROP_DESCRIPTION,
- g_param_spec_string (
- "description",
- _("Description"),
- _("The description of the web item"),
- NULL,
- flags));
-
- g_object_class_install_property (gobject_class,
- PROP_URI,
- g_param_spec_string (
- "uri",
- _("URI"),
- _("The URI of the web item"),
- NULL,
- flags));
-
- g_object_class_install_property (gobject_class,
- PROP_ICON,
- g_param_spec_string (
- "icon",
- _("Icon"),
- _("The icon of the web item"),
- NULL,
- flags));
-
- g_object_class_install_property (gobject_class,
- PROP_TOKEN,
- g_param_spec_string (
- "token",
- _("Token"),
- _("The token of the web item"),
- NULL,
- flags));
-}
-
-
-
-static void
-midori_web_item_init (MidoriWebItem* web_item)
-{
- /* Nothing to do here */
-}
-
-static void
-midori_web_item_finalize (GObject* object)
-{
- MidoriWebItem* web_item = MIDORI_WEB_ITEM (object);
-
- g_free (web_item->name);
- g_free (web_item->description);
- g_free (web_item->uri);
- g_free (web_item->icon);
- g_free (web_item->token);
-
- G_OBJECT_CLASS (midori_web_item_parent_class)->finalize (object);
-}
-
-static void
-midori_web_item_set_property (GObject* object,
- guint prop_id,
- const GValue* value,
- GParamSpec* pspec)
-{
- MidoriWebItem* web_item = MIDORI_WEB_ITEM (object);
-
- switch (prop_id)
- {
- case PROP_NAME:
- web_item->name = g_value_dup_string (value);
- break;
- case PROP_DESCRIPTION:
- web_item->description = g_value_dup_string (value);
- break;
- case PROP_URI:
- web_item->uri = g_value_dup_string (value);
- break;
- case PROP_ICON:
- web_item->icon = g_value_dup_string (value);
- break;
- case PROP_TOKEN:
- web_item->token = g_value_dup_string (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-midori_web_item_get_property (GObject* object,
- guint prop_id,
- GValue* value,
- GParamSpec* pspec)
-{
- MidoriWebItem* web_item = MIDORI_WEB_ITEM (object);
-
- switch (prop_id)
- {
- case PROP_NAME:
- g_value_set_string (value, web_item->name);
- break;
- case PROP_DESCRIPTION:
- g_value_set_string (value, web_item->description);
- break;
- case PROP_URI:
- g_value_set_string (value, web_item->uri);
- break;
- case PROP_ICON:
- g_value_set_string (value, web_item->icon);
- break;
- case PROP_TOKEN:
- g_value_set_string (value, web_item->token);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-/**
- * midori_web_item_new:
- *
- * Creates a new #MidoriWebItem.
- *
- * Return value: a new #MidoriWebItem
- **/
-MidoriWebItem*
-midori_web_item_new (void)
-{
- MidoriWebItem* web_item = g_object_new (MIDORI_TYPE_WEB_ITEM,
- NULL);
-
- return web_item;
-}
-
-/**
- * midori_web_item_get_name:
- * @web_item: a #MidoriWebItem
- *
- * Retrieves the name of @web_item.
- *
- * Return value: the name of the web item
- **/
-const gchar*
-midori_web_item_get_name (MidoriWebItem* web_item)
-{
- g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
-
- return web_item->name;
-}
-
-/**
- * midori_web_item_set_name:
- * @web_item: a #MidoriWebItem
- * @name: a string
- *
- * Sets the name of @web_item.
- **/
-void
-midori_web_item_set_name (MidoriWebItem* web_item,
- const gchar* name)
-{
- g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
-
- katze_assign (web_item->name, g_strdup (name));
- g_object_notify (G_OBJECT (web_item), "name");
-}
-
-/**
- * midori_web_item_get_description:
- * @web_item: a #MidoriWebItem
- *
- * Retrieves the description of @web_item.
- *
- * Return value: the description of the web item
- **/
-const gchar*
-midori_web_item_get_description (MidoriWebItem* web_item)
-{
- g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
-
- return web_item->description;
-}
-
-/**
- * midori_web_item_set_description:
- * @web_item: a #MidoriWebItem
- * @description: a string
- *
- * Sets the description of @web_item.
- **/
-void
-midori_web_item_set_description (MidoriWebItem* web_item,
- const gchar* description)
-{
- g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
-
- katze_assign (web_item->description, g_strdup (description));
- g_object_notify (G_OBJECT (web_item), "description");
-}
-
-/**
- * midori_web_item_get_uri:
- * @web_item: a #MidoriWebItem
- *
- * Retrieves the URI of @web_item.
- *
- * Return value: the URI of the web item
- **/
-const gchar*
-midori_web_item_get_uri (MidoriWebItem* web_item)
-{
- g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
-
- return web_item->uri;
-}
-
-/**
- * midori_web_item_set_uri:
- * @web_item: a #MidoriWebItem
- * @uri: a string
- *
- * Sets the URI of @web_item.
- **/
-void
-midori_web_item_set_uri (MidoriWebItem* web_item,
- const gchar* uri)
-{
- g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
-
- katze_assign (web_item->uri, g_strdup (uri));
- g_object_notify (G_OBJECT (web_item), "uri");
-}
-
-/**
- * midori_web_item_get_icon:
- * @web_item: a #MidoriWebItem
- *
- * Retrieves the icon of @web_item.
- *
- * Return value: the icon of the web item
- **/
-const gchar*
-midori_web_item_get_icon (MidoriWebItem* web_item)
-{
- g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
-
- return web_item->icon;
-}
-
-/**
- * midori_web_item_set_icon:
- * @web_item: a #MidoriWebItem
- * @icon: a string
- *
- * Sets the icon of @web_item.
- **/
-void
-midori_web_item_set_icon (MidoriWebItem* web_item,
- const gchar* icon)
-{
- g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
-
- katze_assign (web_item->icon, g_strdup (icon));
- g_object_notify (G_OBJECT (web_item), "icon");
-}
-
-/**
- * midori_web_item_get_token:
- * @web_item: a #MidoriWebItem
- *
- * Retrieves the token of @web_item.
- *
- * Return value: the token of the web item
- **/
-const gchar*
-midori_web_item_get_token (MidoriWebItem* web_item)
-{
- g_return_val_if_fail (MIDORI_IS_WEB_ITEM (web_item), NULL);
-
- return web_item->token;
-}
-
-/**
- * midori_web_item_set_token:
- * @web_item: a #MidoriWebItem
- * @token: a string
- *
- * Sets the token of @web_item.
- **/
-void
-midori_web_item_set_token (MidoriWebItem* web_item,
- const gchar* token)
-{
- g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
-
- katze_assign (web_item->token, g_strdup (token));
- g_object_notify (G_OBJECT (web_item), "token");
-}
+++ /dev/null
-/*
- Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#ifndef __MIDORI_WEB_ITEM_H__
-#define __MIDORI_WEB_ITEM_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define MIDORI_TYPE_WEB_ITEM \
- (midori_web_item_get_type ())
-#define MIDORI_WEB_ITEM(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIDORI_TYPE_WEB_ITEM, MidoriWebItem))
-#define MIDORI_WEB_ITEM_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST ((klass), MIDORI_TYPE_WEB_ITEM, MidoriWebItemClass))
-#define MIDORI_IS_WEB_ITEM(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIDORI_TYPE_WEB_ITEM))
-#define MIDORI_IS_WEB_ITEM_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE ((klass), MIDORI_TYPE_WEB_ITEM))
-#define MIDORI_WEB_ITEM_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS ((obj), MIDORI_TYPE_WEB_ITEM, MidoriWebItemClass))
-
-typedef struct _MidoriWebItem MidoriWebItem;
-typedef struct _MidoriWebItemClass MidoriWebItemClass;
-
-struct _MidoriWebItemClass
-{
- GObjectClass parent_class;
-};
-
-GType
-midori_web_item_get_type (void);
-
-MidoriWebItem*
-midori_web_item_new (void);
-
-const gchar*
-midori_web_item_get_name (MidoriWebItem* web_item);
-
-void
-midori_web_item_set_name (MidoriWebItem* web_item,
- const gchar* name);
-
-const gchar*
-midori_web_item_get_description (MidoriWebItem* web_item);
-
-void
-midori_web_item_set_description (MidoriWebItem* web_item,
- const gchar* description);
-
-const gchar*
-midori_web_item_get_uri (MidoriWebItem* web_item);
-
-void
-midori_web_item_set_uri (MidoriWebItem* web_item,
- const gchar* uri);
-
-const gchar*
-midori_web_item_get_icon (MidoriWebItem* web_item);
-
-void
-midori_web_item_set_icon (MidoriWebItem* web_item,
- const gchar* icon);
-
-const gchar*
-midori_web_item_get_token (MidoriWebItem* web_item);
-
-void
-midori_web_item_set_token (MidoriWebItem* web_item,
- const gchar* token);
-
-G_END_DECLS
-
-#endif /* __MIDORI_WEB_ITEM_H__ */
/**
* SECTION:midori-weblist
* @short_description: A versatile object container
- * @see_also: #MidoriWebItem
+ * @see_also: #KatzeItem
*
- * #MidoriWebList is a versatile container for objects with
- * explicit support for #MidoriWebList and #MidoriWebItem children.
+ * #MidoriWebList is a versatile container for objects.
*/
struct _MidoriWebList
{
- GObject parent_instance;
+ KatzeItem parent_instance;
GList* items;
};
-G_DEFINE_TYPE (MidoriWebList, midori_web_list, G_TYPE_OBJECT)
+struct _MidoriWebListClass
+{
+ KatzeItemClass parent_class;
+
+ /* Signals */
+ void
+ (*add_item) (MidoriWebList* web_list,
+ GObject* item);
+ void
+ (*remove_item) (MidoriWebList* web_list,
+ GObject* item);
+};
+
+G_DEFINE_TYPE (MidoriWebList, midori_web_list, KATZE_TYPE_ITEM)
enum {
ADD_ITEM,
*
* Looks up an item in the list which has the specified token.
*
- * Supported is #MidoriWebItem.
+ * Currently only #KatzeItem is supported.
*
* Note that @token is by definition unique to one item.
*
const gchar* token)
{
guint n, i;
- GObject* item;
- MidoriWebItem* web_item;
+ gpointer item;
+ const gchar* found_token;
g_return_val_if_fail (MIDORI_IS_WEB_LIST (web_list), NULL);
n = g_list_length (web_list->items);
for (i = 0; i < n; i++)
{
- item = (GObject*)g_list_nth_data (web_list->items, i);
- if (!MIDORI_IS_WEB_ITEM (item))
+ item = g_list_nth_data (web_list->items, i);
+ if (!KATZE_IS_ITEM (item))
continue;
- web_item = (MidoriWebItem*)item;
- if (!strcmp (midori_web_item_get_token (web_item), token))
+ found_token = katze_item_get_token ((KatzeItem*)item);
+ if (found_token && !strcmp (found_token, token))
return item;
}
return NULL;
#ifndef __MIDORI_WEB_LIST_H__
#define __MIDORI_WEB_LIST_H__
-#include "katze-webitem.h"
+#include "katze-item.h"
G_BEGIN_DECLS
typedef struct _MidoriWebList MidoriWebList;
typedef struct _MidoriWebListClass MidoriWebListClass;
-struct _MidoriWebListClass
-{
- GObjectClass parent_class;
-
- /* Signals */
- void
- (*add_item) (MidoriWebList* web_list,
- GObject* item);
- void
- (*remove_item) (MidoriWebList* web_list,
- GObject* item);
-};
-
GType
midori_web_list_get_type (void);
#include "katze-throbber.h"
#include "katze-utils.h"
-#include "katze-webitem.h"
+#include "katze-item.h"
#include "katze-weblist.h"
#include "katze-xbel.h"
GKeyFile* key_file;
gchar** engines;
guint i, j, n_properties;
- MidoriWebItem* web_item;
+ KatzeItem* item;
GParamSpec** pspecs;
const gchar* property;
gchar* value;
/*g_key_file_load_from_data_dirs(keyFile, sFilename, NULL
, G_KEY_FILE_KEEP_COMMENTS, error);*/
engines = g_key_file_get_groups (key_file, NULL);
+ pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (search_engines),
+ &n_properties);
for (i = 0; engines[i] != NULL; i++)
{
- web_item = midori_web_item_new ();
- pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (web_item),
- &n_properties);
+ item = katze_item_new ();
for (j = 0; j < n_properties; j++)
{
property = g_param_spec_get_name (pspecs[j]);
value = g_key_file_get_string (key_file, engines[i],
property, NULL);
- g_object_set (web_item, property, value, NULL);
+ g_object_set (item, property, value, NULL);
g_free (value);
}
- midori_web_list_add_item (search_engines, web_item);
+ midori_web_list_add_item (search_engines, item);
}
g_strfreev (engines);
g_key_file_free (key_file);
{
GKeyFile* key_file;
guint n, i, j, n_properties;
- MidoriWebItem* web_item;
+ KatzeItem* item;
const gchar* name;
GParamSpec** pspecs;
const gchar* property;
key_file = g_key_file_new ();
n = midori_web_list_get_length (search_engines);
+ pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (search_engines),
+ &n_properties);
for (i = 0; i < n; i++)
{
- web_item = midori_web_list_get_nth_item (search_engines, i);
- name = midori_web_item_get_name (web_item);
- pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (web_item),
- &n_properties);
+ item = midori_web_list_get_nth_item (search_engines, i);
+ name = katze_item_get_name (item);
for (j = 0; j < n_properties; j++)
{
property = g_param_spec_get_name (pspecs[j]);
- g_object_get (web_item, property, &value, NULL);
+ g_object_get (item, property, &value, NULL);
if (value)
g_key_file_set_string (key_file, name, property, value);
g_free (value);
MidoriWebList* search_engines;
const gchar* keywords;
guint last_web_search;
- MidoriWebItem* web_item;
+ KatzeItem* item;
const gchar* url;
gchar* location_entry_search;
+ gchar* search;
search_engines = browser->search_engines;
keywords = gtk_entry_get_text (GTK_ENTRY (widget));
g_object_get (browser->settings, "last-web-search", &last_web_search, NULL);
- web_item = midori_web_list_get_nth_item (search_engines, last_web_search);
- if (web_item)
+ item = midori_web_list_get_nth_item (search_engines, last_web_search);
+ if (item)
{
location_entry_search = NULL;
- url = midori_web_item_get_uri (web_item);
+ url = katze_item_get_uri (item);
}
else /* The location entry search is our fallback */
{
&location_entry_search, NULL);
url = location_entry_search;
}
- gchar* search;
if (strstr (url, "%s"))
search = g_strdup_printf (url, keywords);
else
MidoriBrowser* browser)
{
MidoriSearchEntry* search_entry;
- MidoriWebItem* web_item;
+ KatzeItem* item;
guint index;
search_entry = MIDORI_SEARCH_ENTRY (browser->search);
- web_item = midori_search_entry_get_current_item (search_entry);
- if (web_item)
- index = midori_web_list_get_item_index (browser->search_engines,
- web_item);
+ item = midori_search_entry_get_current_item (search_entry);
+ if (item)
+ index = midori_web_list_get_item_index (browser->search_engines, item);
else
index = 0;
static void
_midori_browser_update_settings (MidoriBrowser* browser)
{
- MidoriWebItem* web_item;
+ KatzeItem* item;
gboolean remember_last_window_size;
gint last_window_width, last_window_height;
if (browser->search_engines)
{
- web_item = midori_web_list_get_nth_item (browser->search_engines,
- last_web_search);
- if (web_item)
- midori_search_entry_set_current_item (MIDORI_SEARCH_ENTRY (browser->search),
- web_item);
+ item = midori_web_list_get_nth_item (browser->search_engines,
+ last_web_search);
+ if (item)
+ midori_search_entry_set_current_item (
+ MIDORI_SEARCH_ENTRY (browser->search), item);
}
gtk_paned_set_position (GTK_PANED (gtk_widget_get_parent (browser->panel)),
{
MidoriBrowser* browser = MIDORI_BROWSER (object);
guint last_web_search;
- MidoriWebItem* web_item;
+ KatzeItem* item;
switch (prop_id)
{
{
g_object_get (browser->settings, "last-web-search",
&last_web_search, NULL);
- web_item = midori_web_list_get_nth_item (browser->search_engines,
- last_web_search);
- if (web_item)
- g_object_set (browser->search, "current-item", web_item, NULL);
+ item = midori_web_list_get_nth_item (browser->search_engines,
+ last_web_search);
+ if (item)
+ g_object_set (browser->search, "current-item", item, NULL);
}
break;
default:
GtkIconEntry parent_instance;
MidoriWebList* search_engines;
- MidoriWebItem* current_item;
+ KatzeItem* current_item;
};
G_DEFINE_TYPE (MidoriSearchEntry, midori_search_entry, GTK_TYPE_ICON_ENTRY)
"current-item",
_("Current Item"),
_("The currently selected item"),
- MIDORI_TYPE_WEB_ITEM,
+ KATZE_TYPE_ITEM,
G_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
midori_search_entry_engine_activate_cb (GtkWidget* widget,
MidoriSearchEntry* search_entry)
{
- MidoriWebItem* web_item;
+ KatzeItem* item;
- web_item = (MidoriWebItem*)g_object_get_data (G_OBJECT (widget), "engine");
- midori_search_entry_set_current_item (search_entry, web_item);
+ item = (KatzeItem*)g_object_get_data (G_OBJECT (widget), "engine");
+ midori_search_entry_set_current_item (search_entry, item);
}
static void
}
static void
-midori_search_entry_icon_released_cb (GtkWidget* widget,
+midori_search_entry_icon_released_cb (GtkWidget* widget,
GtkIconEntryPosition* pos,
- gint button)
+ gint button)
{
MidoriSearchEntry* search_entry;
MidoriWebList* search_engines;
GtkWidget* menu;
guint n, i;
GtkWidget* menuitem;
- MidoriWebItem* web_item;
+ KatzeItem* item;
GdkPixbuf* pixbuf;
GtkWidget* icon;
{
for (i = 0; i < n; i++)
{
- web_item = midori_web_list_get_nth_item (search_engines, i);
+ item = midori_web_list_get_nth_item (search_engines, i);
menuitem = gtk_image_menu_item_new_with_label (
- midori_web_item_get_name (web_item));
- pixbuf = sokoke_web_icon (midori_web_item_get_icon (web_item),
+ katze_item_get_name (item));
+ pixbuf = sokoke_web_icon (katze_item_get_icon (item),
GTK_ICON_SIZE_MENU, menuitem);
icon = gtk_image_new_from_pixbuf (pixbuf);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), icon);
g_object_unref (pixbuf);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
- g_object_set_data (G_OBJECT (menuitem), "engine", web_item);
+ g_object_set_data (G_OBJECT (menuitem), "engine", item);
g_signal_connect (menuitem, "activate",
G_CALLBACK (midori_search_entry_engine_activate_cb), widget);
gtk_widget_show (menuitem);
guint n)
{
gint i;
- MidoriWebItem* web_item;
+ KatzeItem* item;
i = midori_web_list_get_item_index (search_entry->search_engines,
search_entry->current_item);
- web_item = midori_web_list_get_nth_item (search_entry->search_engines,
- i + n);
- if (web_item)
- midori_search_entry_set_current_item (search_entry, web_item);
+ item = midori_web_list_get_nth_item (search_entry->search_engines, i + n);
+ if (item)
+ midori_search_entry_set_current_item (search_entry, item);
}
static gboolean
static void
midori_search_entry_engines_add_item_cb (MidoriWebList* web_list,
- MidoriWebItem* item,
+ KatzeItem* item,
MidoriSearchEntry* search_entry)
{
if (!search_entry->current_item)
static void
midori_search_entry_engines_remove_item_cb (MidoriWebList* web_list,
- MidoriWebItem* item,
+ KatzeItem* item,
MidoriSearchEntry* search_entry)
{
- MidoriWebItem* web_item;
+ KatzeItem* found_item;
if (search_entry->current_item == item)
{
- web_item = midori_web_list_get_nth_item (web_list, 0);
- if (web_item)
- midori_search_entry_set_current_item (search_entry, web_item);
+ found_item = midori_web_list_get_nth_item (web_list, 0);
+ if (found_item)
+ midori_search_entry_set_current_item (search_entry, found_item);
else
{
gtk_icon_entry_set_icon_from_pixbuf (GTK_ICON_ENTRY (search_entry),
/**
* midori_search_entry_set_current_item:
* @search_entry: a #MidoriSearchEntry
- * @item: a #MidoriWebItem
+ * @item: a #KatzeItem
*
* Looks up the specified item in the list of search engines and makes
* it the currently selected item.
**/
void
midori_search_entry_set_current_item (MidoriSearchEntry* search_entry,
- MidoriWebItem* web_item)
+ KatzeItem* item)
{
GdkPixbuf* pixbuf;
g_return_if_fail (MIDORI_IS_SEARCH_ENTRY (search_entry));
- g_return_if_fail (MIDORI_IS_WEB_ITEM (web_item));
+ g_return_if_fail (KATZE_IS_ITEM (item));
- pixbuf = sokoke_web_icon (midori_web_item_get_icon (web_item),
+ pixbuf = sokoke_web_icon (katze_item_get_icon (item),
GTK_ICON_SIZE_MENU, GTK_WIDGET (search_entry));
gtk_icon_entry_set_icon_from_pixbuf (GTK_ICON_ENTRY (search_entry),
GTK_ICON_ENTRY_PRIMARY,
pixbuf);
g_object_unref (pixbuf);
sokoke_entry_set_default_text (GTK_ENTRY (search_entry),
- midori_web_item_get_name (web_item));
+ katze_item_get_name (item));
- g_object_ref (web_item);
- katze_object_assign (search_entry->current_item, web_item);
+ katze_object_assign (search_entry->current_item, g_object_ref (item));
g_object_notify (G_OBJECT (search_entry), "current-item");
}
*
* Return value: the selected web item, or %NULL
**/
-MidoriWebItem*
+KatzeItem*
midori_search_entry_get_current_item (MidoriSearchEntry* search_entry)
{
g_return_val_if_fail (MIDORI_IS_SEARCH_ENTRY (search_entry), NULL);
GtkTreeIter* iter,
GtkWidget* treeview)
{
- MidoriWebItem* web_item;
+ KatzeItem* item;
const gchar* icon;
GdkPixbuf* pixbuf;
- gtk_tree_model_get (model, iter, 0, &web_item, -1);
+ gtk_tree_model_get (model, iter, 0, &item, -1);
- icon = midori_web_item_get_icon (web_item);
+ icon = katze_item_get_icon (item);
if (icon)
{
pixbuf = sokoke_web_icon (icon, GTK_ICON_SIZE_DND, treeview);
GtkTreeIter* iter,
GtkWidget* treeview)
{
- MidoriWebItem* web_item;
+ KatzeItem* item;
const gchar* name;
- const gchar* description;
+ const gchar* text;
gchar* markup;
- gtk_tree_model_get (model, iter, 0, &web_item, -1);
- name = midori_web_item_get_name (web_item);
- description = midori_web_item_get_description (web_item);
- markup = g_markup_printf_escaped ("<b>%s</b>\n%s", name, description);
+ gtk_tree_model_get (model, iter, 0, &item, -1);
+ name = katze_item_get_name (item);
+ text = katze_item_get_text (item);
+ markup = g_markup_printf_escaped ("<b>%s</b>\n%s", name, text ? text : "");
g_object_set (renderer, "markup", markup, NULL);
g_free (markup);
}
MidoriSearchEntry* search_entry;
GtkWidget* dialog;
GtkSizeGroup* sizegroup;
- MidoriWebItem* web_item;
+ KatzeItem* item;
GtkWidget* hbox;
GtkWidget* label;
GtkTreeModel* liststore;
if (new_engine)
{
- web_item = midori_web_item_new ();
+ item = katze_item_new ();
gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog),
GTK_RESPONSE_ACCEPT, FALSE);
}
{
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
gtk_tree_selection_get_selected (selection, &liststore, &iter);
- gtk_tree_model_get (liststore, &iter, 0, &web_item, -1);
+ gtk_tree_model_get (liststore, &iter, 0, &item, -1);
}
hbox = gtk_hbox_new (FALSE, 8);
gtk_entry_set_activates_default (GTK_ENTRY (entry_name), TRUE);
if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_name),
- STR_NON_NULL (midori_web_item_get_name (web_item)));
+ STR_NON_NULL (katze_item_get_name (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_name, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
gtk_widget_show_all (hbox);
gtk_entry_set_activates_default (GTK_ENTRY (entry_description), TRUE);
if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_description)
- , STR_NON_NULL (midori_web_item_get_description (web_item)));
+ , STR_NON_NULL (katze_item_get_text (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_description, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
gtk_widget_show_all (hbox);
gtk_entry_set_activates_default (GTK_ENTRY (entry_uri), TRUE);
if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_uri)
- , STR_NON_NULL (midori_web_item_get_uri (web_item)));
+ , STR_NON_NULL (katze_item_get_uri (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_uri, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
gtk_widget_show_all (hbox);
gtk_entry_set_activates_default (GTK_ENTRY (entry_icon), TRUE);
if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_icon)
- , STR_NON_NULL (midori_web_item_get_icon (web_item)));
+ , STR_NON_NULL (katze_item_get_icon (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_icon, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
gtk_widget_show_all (hbox);
hbox = gtk_hbox_new (FALSE, 8);
- gtk_container_set_border_width (GTK_CONTAINER(hbox), 5);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
label = gtk_label_new_with_mnemonic (_("_Token:"));
gtk_size_group_add_widget (sizegroup, label);
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_entry_set_activates_default (GTK_ENTRY (entry_token), TRUE);
if (!new_engine)
gtk_entry_set_text (GTK_ENTRY (entry_token)
- , STR_NON_NULL (midori_web_item_get_token (web_item)));
+ , STR_NON_NULL (katze_item_get_token (item)));
gtk_box_pack_start (GTK_BOX (hbox), entry_token, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
gtk_widget_show_all (hbox);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
{
- g_object_set (web_item,
+ g_object_set (item,
"name", gtk_entry_get_text (GTK_ENTRY (entry_name)),
- "description", gtk_entry_get_text (GTK_ENTRY (entry_description)),
+ "text", gtk_entry_get_text (GTK_ENTRY (entry_description)),
"uri", gtk_entry_get_text (GTK_ENTRY (entry_uri)),
"icon", gtk_entry_get_text (GTK_ENTRY (entry_icon)),
"token", gtk_entry_get_text (GTK_ENTRY (entry_token)),
search_entry = g_object_get_data (G_OBJECT (treeview), "search-entry");
if (new_engine)
- midori_web_list_add_item (search_entry->search_engines, web_item);
+ midori_web_list_add_item (search_entry->search_engines, item);
}
gtk_widget_destroy (dialog);
}
GtkTreeSelection* selection;
GtkTreeModel* liststore;
GtkTreeIter iter;
- MidoriWebItem* web_item;
+ KatzeItem* item;
MidoriWebList* search_engines;
search_entry = g_object_get_data (G_OBJECT (treeview), "search-entry");
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
if (gtk_tree_selection_get_selected (selection, &liststore, &iter))
{
- gtk_tree_model_get (liststore, &iter, 0, &web_item, -1);
- midori_web_list_remove_item (search_engines, web_item);
- g_object_unref (web_item);
+ gtk_tree_model_get (liststore, &iter, 0, &item, -1);
+ midori_web_list_remove_item (search_engines, item);
+ g_object_unref (item);
/* FIXME: we want to allow undo of some kind */
}
}
static void
midori_search_entry_dialog_engines_add_item_cb (MidoriWebList* web_list,
- MidoriWebItem* item,
+ KatzeItem* item,
GtkWidget* treeview)
{
GtkTreeModel* liststore;
static void
midori_search_entry_dialog_engines_remove_item_cb (MidoriWebList* web_list,
- MidoriWebItem* item,
+ KatzeItem* item,
GtkWidget* treeview)
{
GtkTreeModel* liststore;
GtkTreeIter iter;
gboolean valid;
- MidoriWebItem* web_item;
+ KatzeItem* found_item;
liststore = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
valid = gtk_tree_model_get_iter_first (liststore, &iter);
while (valid)
{
- gtk_tree_model_get (liststore, &iter, 0, &web_item, -1);
- if (web_item == item)
+ gtk_tree_model_get (liststore, &iter, 0, &found_item, -1);
+ if (found_item == item)
{
gtk_list_store_remove (GTK_LIST_STORE (liststore), &iter);
valid = FALSE;
GtkWidget* treeview;
GtkWidget* scrolled;
guint n, i;
- MidoriWebItem* web_item;
+ KatzeItem* item;
GtkWidget* vbox;
GtkWidget* button;
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox,
TRUE, TRUE, 12);
- liststore = gtk_list_store_new (1, MIDORI_TYPE_WEB_ITEM);
+ liststore = gtk_list_store_new (1, KATZE_TYPE_ITEM);
treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (liststore));
g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
"changed", G_CALLBACK (midori_search_entry_treeview_selection_cb),
n = midori_web_list_get_length (search_entry->search_engines);
for (i = 0; i < n; i++)
{
- web_item = midori_web_list_get_nth_item (search_entry->search_engines, i);
+ item = midori_web_list_get_nth_item (search_entry->search_engines, i);
gtk_list_store_insert_with_values (GTK_LIST_STORE (liststore),
- NULL, i, 0, web_item, -1);
+ NULL, i, 0, item, -1);
}
g_object_unref (liststore);
g_signal_connect (treeview, "destroy",
midori_search_entry_set_search_engines (MidoriSearchEntry* search_entry,
MidoriWebList* name);
-MidoriWebItem*
+KatzeItem*
midori_search_entry_get_current_item (MidoriSearchEntry* search_entry);
void
midori_search_entry_set_current_item (MidoriSearchEntry* search_entry,
- MidoriWebItem* name);
+ KatzeItem* name);
GtkWidget*
midori_search_entry_get_dialog (MidoriSearchEntry* search_entry);
gchar* search;
const gchar* search_uri;
gchar** parts;
- MidoriWebItem* web_item;
+ KatzeItem* item;
g_return_val_if_fail (uri, NULL);
if (search_engines)
parts = g_strsplit (uri, " ", 2);
if (parts[0] && parts[1])
{
- web_item = midori_web_list_find_token (search_engines, parts[0]);
- if (web_item)
- search_uri = midori_web_item_get_uri (web_item);
+ item = midori_web_list_find_token (search_engines, parts[0]);
+ if (item)
+ search_uri = katze_item_get_uri (item);
}
g_free (parts);
if (search_uri)
midori/gjs.c
katze/katze-throbber.c
katze/katze-utils.c
-katze/katze-webitem.c
+katze/katze-item.c
katze/katze-weblist.c
katze/katze-xbel.c