diff options
author | Colin Walters <walters@verbum.org> | 2010-10-26 11:47:00 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2010-11-12 15:35:44 -0500 |
commit | 8bb515bb3abbc2576fed04f6bf0155dab9f016f4 (patch) | |
tree | b446ea74c6e5e96ca2f073b3ee3f964697af12dd /girepository/giobjectinfo.c | |
parent | a2c6793bd1873a7af3c19f88405e97e334a6872f (diff) | |
download | gobject-introspection-8bb515bb3abbc2576fed04f6bf0155dab9f016f4.tar.gz |
Add g_object_info_find_signal
This matches g_object_info_find_method, and allows us to add indexing
later.
https://bugzilla.gnome.org/show_bug.cgi?id=633204
Diffstat (limited to 'girepository/giobjectinfo.c')
-rw-r--r-- | girepository/giobjectinfo.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/girepository/giobjectinfo.c b/girepository/giobjectinfo.c index 03ed2a22..e1f0bc1d 100644 --- a/girepository/giobjectinfo.c +++ b/girepository/giobjectinfo.c @@ -472,6 +472,37 @@ g_object_info_get_signal (GIObjectInfo *info, } /** + * g_object_info_find_signal: + * @info: a #GIObjectInfo + * @name: Name of signal + * + * Returns: Info for the signal with name @name in @info, or %NULL on failure. + */ +GISignalInfo * +g_object_info_find_signal (GIObjectInfo *info, + const gchar *name) +{ + gint n_signals; + gint i; + + n_signals = g_object_info_get_n_signals (info); + for (i = 0; i < n_signals; i++) + { + GISignalInfo *siginfo = g_object_info_get_signal (info, i); + + if (g_strcmp0 (g_base_info_get_name (siginfo), name) != 0) + { + g_base_info_unref ((GIBaseInfo*)siginfo); + continue; + } + + return siginfo; + } + return NULL; +} + + +/** * g_object_info_get_n_vfuncs: * @info: a #GIObjectInfo * |