diff options
author | Garrett Regier <alias301@gmail.com> | 2011-06-08 13:48:10 -0700 |
---|---|---|
committer | Steve Frécinaux <code@istique.net> | 2011-06-14 09:43:01 +0200 |
commit | 0b0e4e0d1d2851864f38b3f8e2938d08feaba7bb (patch) | |
tree | 2c18bd74701267be74813bc652e14daa7bb98cc1 /libpeas/peas-extension-set.c | |
parent | 1d18e9e6d4657056f9b7d11e5f5e10d9340757b5 (diff) | |
download | libpeas-0b0e4e0d1d2851864f38b3f8e2938d08feaba7bb.tar.gz |
Added peas_extension_set_foreach()
Diffstat (limited to 'libpeas/peas-extension-set.c')
-rw-r--r-- | libpeas/peas-extension-set.c | 32 |
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. |