summaryrefslogtreecommitdiff
path: root/libpeas/peas-extension-set.c
diff options
context:
space:
mode:
authorGarrett Regier <alias301@gmail.com>2011-06-08 13:48:10 -0700
committerSteve Frécinaux <code@istique.net>2011-06-14 09:43:01 +0200
commit0b0e4e0d1d2851864f38b3f8e2938d08feaba7bb (patch)
tree2c18bd74701267be74813bc652e14daa7bb98cc1 /libpeas/peas-extension-set.c
parent1d18e9e6d4657056f9b7d11e5f5e10d9340757b5 (diff)
downloadlibpeas-0b0e4e0d1d2851864f38b3f8e2938d08feaba7bb.tar.gz
Added peas_extension_set_foreach()
Diffstat (limited to 'libpeas/peas-extension-set.c')
-rw-r--r--libpeas/peas-extension-set.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/libpeas/peas-extension-set.c b/libpeas/peas-extension-set.c
index b559fc0..fd58467 100644
--- a/libpeas/peas-extension-set.c
+++ b/libpeas/peas-extension-set.c
@@ -74,7 +74,9 @@
*
* set = peas_extension_set_new (engine, PEAS_TYPE_ACTIVATABLE,
* "object", window, NULL);
- * peas_extension_set_call (set, "activate");
+ * peas_extension_set_foreach (set,
+ * (PeasExtensionSetForeachFunc) on_extension_added,
+ * NULL);
* g_signal_connect (set, "extension-added",
* G_CALLBACK (on_extension_added), NULL);
* g_signal_connect (set, "extension-removed",
@@ -564,6 +566,34 @@ peas_extension_set_callv (PeasExtensionSet *set,
}
/**
+ * peas_extension_set_foreach:
+ * @set: A #PeasExtensionSet.
+ * @func: (scope call): A function call for each extension.
+ * @data: Optional data to be passed to the function or %NULL.
+ *
+ * Calls @func for each #PeasExtension.
+ *
+ * Since: 1.2
+ */
+void
+peas_extension_set_foreach (PeasExtensionSet *set,
+ PeasExtensionSetForeachFunc func,
+ gpointer data)
+{
+ GList *l;
+
+ g_return_if_fail (PEAS_IS_EXTENSION_SET (set));
+ g_return_if_fail (func != NULL);
+
+ for (l = set->priv->extensions; l; l = l->next)
+ {
+ ExtensionItem *item = (ExtensionItem *) l->data;
+
+ func (set, item->info, item->exten, data);
+ }
+}
+
+/**
* peas_extension_set_newv:
* @engine: (allow-none): A #PeasEngine, or %NULL.
* @exten_type: the extension #GType.