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
This commit is contained in:
Colin Walters 2010-10-26 11:47:00 -04:00
parent e6bb30500c
commit 30d5255a03
2 changed files with 35 additions and 0 deletions

View File

@ -471,6 +471,37 @@ g_object_info_get_signal (GIObjectInfo *info,
rinfo->typelib, offset);
}
/**
* 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

View File

@ -94,6 +94,10 @@ GIFunctionInfo * g_object_info_find_method (GIObjectInfo *info,
gint g_object_info_get_n_signals (GIObjectInfo *info);
GISignalInfo * g_object_info_get_signal (GIObjectInfo *info,
gint n);
GISignalInfo * g_object_info_find_signal (GIObjectInfo *info,
const gchar *name);
gint g_object_info_get_n_vfuncs (GIObjectInfo *info);
GIVFuncInfo * g_object_info_get_vfunc (GIObjectInfo *info,
gint n);