mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-21 09:42:10 +01:00
up version number to 1.3.7, interface age 0, binary age 0.
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org> * configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7, interface age 0, binary age 0. Thu Jun 28 16:42:49 2001 Tim Janik <timj@gtk.org> * gsignal.c (g_signal_lookup): (g_signal_list_ids): give elaborate warnings about invalid types, non-instantiatable types and unloaded types that we can't operate on. * gparam.[hc]: g_param_spec_pool_belongings() -> g_param_spec_pool_list_owned(). * gsignal.[hc]: renamed: g_signal_newc -> g_signal_new g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func g_signal_block_by_func -> g_signal_handlers_block_by_func g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func added GConnectType to simplify (..gboolean swapped, gboolean after) args. * gobject.[hc]: changed prototypes accordingly.
This commit is contained in:
parent
2fe3a9d756
commit
fd860cb987
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
Thu Jun 28 16:57:44 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
|
||||||
|
interface age 0, binary age 0.
|
||||||
|
|
||||||
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
2001-06-27 Kjartan Maraas <kmaraas@gnome.org>
|
||||||
|
|
||||||
* glib/gmarkup.c: Fix a typo.
|
* glib/gmarkup.c: Fix a typo.
|
||||||
|
@ -31,7 +31,7 @@ GLIB_AC_DIVERT_BEFORE_HELP([
|
|||||||
#
|
#
|
||||||
GLIB_MAJOR_VERSION=1
|
GLIB_MAJOR_VERSION=1
|
||||||
GLIB_MINOR_VERSION=3
|
GLIB_MINOR_VERSION=3
|
||||||
GLIB_MICRO_VERSION=6
|
GLIB_MICRO_VERSION=7
|
||||||
GLIB_INTERFACE_AGE=0
|
GLIB_INTERFACE_AGE=0
|
||||||
GLIB_BINARY_AGE=0
|
GLIB_BINARY_AGE=0
|
||||||
GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
|
GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
|
||||||
|
@ -71,6 +71,7 @@ arrays or arrays on the stack.
|
|||||||
Portable way to copy <type>va_list</type> variables.
|
Portable way to copy <type>va_list</type> variables.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
@ap1: the <type>va_list</type> variable to place a copy of @ap2 in.
|
@ap1: the <type>va_list</type> variable to place a copy of @ap2 in.
|
||||||
@ap2: a <type>va_list</type>.
|
@ap2: a <type>va_list</type>.
|
||||||
|
|
||||||
|
@ -207,11 +207,13 @@ filled in by the g_signal_query() function.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION g_signal_newc ##### -->
|
<!-- ##### MACRO g_signal_newc ##### -->
|
||||||
<para>
|
<para>
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@Returns:
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
@signal_name:
|
@signal_name:
|
||||||
@itype:
|
@itype:
|
||||||
@signal_flags:
|
@signal_flags:
|
||||||
@ -222,7 +224,6 @@ filled in by the g_signal_query() function.
|
|||||||
@return_type:
|
@return_type:
|
||||||
@n_params:
|
@n_params:
|
||||||
@Varargs:
|
@Varargs:
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION g_signal_newv ##### -->
|
<!-- ##### FUNCTION g_signal_newv ##### -->
|
||||||
@ -360,9 +361,11 @@ g_signal_query().
|
|||||||
@c_handler:
|
@c_handler:
|
||||||
@data:
|
@data:
|
||||||
@destroy_data:
|
@destroy_data:
|
||||||
|
@connect_flags:
|
||||||
|
@Returns:
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
@swapped:
|
@swapped:
|
||||||
@after:
|
@after:
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION g_signal_connect_object ##### -->
|
<!-- ##### FUNCTION g_signal_connect_object ##### -->
|
||||||
@ -374,9 +377,11 @@ g_signal_query().
|
|||||||
@detailed_signal:
|
@detailed_signal:
|
||||||
@c_handler:
|
@c_handler:
|
||||||
@gobject:
|
@gobject:
|
||||||
|
@connect_flags:
|
||||||
|
@Returns:
|
||||||
|
<!-- # Unused Parameters # -->
|
||||||
@swapped:
|
@swapped:
|
||||||
@after:
|
@after:
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION g_signal_connect_closure ##### -->
|
<!-- ##### FUNCTION g_signal_connect_closure ##### -->
|
||||||
|
@ -1,3 +1,22 @@
|
|||||||
|
Thu Jun 28 16:42:49 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
|
* gsignal.c (g_signal_lookup):
|
||||||
|
(g_signal_list_ids): give elaborate warnings about invalid types,
|
||||||
|
non-instantiatable types and unloaded types that we can't operate on.
|
||||||
|
|
||||||
|
* gparam.[hc]: g_param_spec_pool_belongings() ->
|
||||||
|
g_param_spec_pool_list_owned().
|
||||||
|
|
||||||
|
* gsignal.[hc]: renamed:
|
||||||
|
g_signal_newc -> g_signal_new
|
||||||
|
g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
|
||||||
|
g_signal_block_by_func -> g_signal_handlers_block_by_func
|
||||||
|
g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
|
||||||
|
added GConnectType to simplify (..gboolean swapped, gboolean after)
|
||||||
|
args.
|
||||||
|
|
||||||
|
* gobject.[hc]: changed prototypes accordingly.
|
||||||
|
|
||||||
2001-06-22 Hans Breuer <hans@breuer.org>
|
2001-06-22 Hans Breuer <hans@breuer.org>
|
||||||
|
|
||||||
* gobject.def : updated externals
|
* gobject.def : updated externals
|
||||||
|
@ -212,7 +212,7 @@ g_object_base_class_finalize (GObjectClass *class)
|
|||||||
|
|
||||||
g_slist_free (class->construct_properties);
|
g_slist_free (class->construct_properties);
|
||||||
class->construct_properties = NULL;
|
class->construct_properties = NULL;
|
||||||
list = g_param_spec_pool_belongings (pspec_pool, G_OBJECT_CLASS_TYPE (class));
|
list = g_param_spec_pool_list_owned (pspec_pool, G_OBJECT_CLASS_TYPE (class));
|
||||||
for (node = list; node; node = node->next)
|
for (node = list; node; node = node->next)
|
||||||
{
|
{
|
||||||
GParamSpec *pspec = node->data;
|
GParamSpec *pspec = node->data;
|
||||||
@ -1073,19 +1073,19 @@ g_object_connect (gpointer _object,
|
|||||||
if (strncmp (signal_spec, "signal::", 8) == 0)
|
if (strncmp (signal_spec, "signal::", 8) == 0)
|
||||||
sid = g_signal_connect_data (object, signal_spec + 8,
|
sid = g_signal_connect_data (object, signal_spec + 8,
|
||||||
callback, data, NULL,
|
callback, data, NULL,
|
||||||
FALSE, FALSE);
|
0);
|
||||||
else if (strncmp (signal_spec, "swapped_signal::", 16) == 0)
|
else if (strncmp (signal_spec, "swapped_signal::", 16) == 0)
|
||||||
sid = g_signal_connect_data (object, signal_spec + 16,
|
sid = g_signal_connect_data (object, signal_spec + 16,
|
||||||
callback, data, NULL,
|
callback, data, NULL,
|
||||||
TRUE, FALSE);
|
G_CONNECT_SWAPPED);
|
||||||
else if (strncmp (signal_spec, "signal_after::", 14) == 0)
|
else if (strncmp (signal_spec, "signal_after::", 14) == 0)
|
||||||
sid = g_signal_connect_data (object, signal_spec + 14,
|
sid = g_signal_connect_data (object, signal_spec + 14,
|
||||||
callback, data, NULL,
|
callback, data, NULL,
|
||||||
FALSE, TRUE);
|
G_CONNECT_AFTER);
|
||||||
else if (strncmp (signal_spec, "swapped_signal_after::", 22) == 0)
|
else if (strncmp (signal_spec, "swapped_signal_after::", 22) == 0)
|
||||||
sid = g_signal_connect_data (object, signal_spec + 22,
|
sid = g_signal_connect_data (object, signal_spec + 22,
|
||||||
callback, data, NULL,
|
callback, data, NULL,
|
||||||
TRUE, TRUE);
|
G_CONNECT_SWAPPED | G_CONNECT_AFTER);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_warning ("%s: invalid signal spec \"%s\"", G_STRLOC, signal_spec);
|
g_warning ("%s: invalid signal spec \"%s\"", G_STRLOC, signal_spec);
|
||||||
@ -1408,12 +1408,11 @@ g_value_dup_object (const GValue *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
guint
|
guint
|
||||||
g_signal_connect_object (gpointer instance,
|
g_signal_connect_object (gpointer instance,
|
||||||
const gchar *detailed_signal,
|
const gchar *detailed_signal,
|
||||||
GCallback c_handler,
|
GCallback c_handler,
|
||||||
gpointer gobject,
|
gpointer gobject,
|
||||||
gboolean swapped,
|
GConnectFlags connect_flags)
|
||||||
gboolean after)
|
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
|
g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
|
||||||
g_return_val_if_fail (detailed_signal != NULL, 0);
|
g_return_val_if_fail (detailed_signal != NULL, 0);
|
||||||
@ -1425,12 +1424,12 @@ g_signal_connect_object (gpointer instance,
|
|||||||
|
|
||||||
g_return_val_if_fail (G_IS_OBJECT (gobject), 0);
|
g_return_val_if_fail (G_IS_OBJECT (gobject), 0);
|
||||||
|
|
||||||
closure = (swapped ? g_cclosure_new_object_swap : g_cclosure_new_object) (c_handler, gobject);
|
closure = ((connect_flags & G_CONNECT_SWAPPED) ? g_cclosure_new_object_swap : g_cclosure_new_object) (c_handler, gobject);
|
||||||
|
|
||||||
return g_signal_connect_closure (instance, detailed_signal, closure, after);
|
return g_signal_connect_closure (instance, detailed_signal, closure, connect_flags & G_CONNECT_AFTER);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return g_signal_connect_data (instance, detailed_signal, c_handler, NULL, NULL, swapped, after);
|
return g_signal_connect_data (instance, detailed_signal, c_handler, NULL, NULL, connect_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <gobject/gvalue.h>
|
#include <gobject/gvalue.h>
|
||||||
#include <gobject/gparam.h>
|
#include <gobject/gparam.h>
|
||||||
#include <gobject/gclosure.h>
|
#include <gobject/gclosure.h>
|
||||||
|
#include <gobject/gsignal.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
@ -184,8 +185,7 @@ guint g_signal_connect_object (gpointer instance,
|
|||||||
const gchar *detailed_signal,
|
const gchar *detailed_signal,
|
||||||
GCallback c_handler,
|
GCallback c_handler,
|
||||||
gpointer gobject,
|
gpointer gobject,
|
||||||
gboolean swapped,
|
GConnectFlags connect_flags);
|
||||||
gboolean after);
|
|
||||||
|
|
||||||
|
|
||||||
/* --- implementation macros --- */
|
/* --- implementation macros --- */
|
||||||
|
@ -726,7 +726,7 @@ pool_list (gpointer key,
|
|||||||
}
|
}
|
||||||
|
|
||||||
GList*
|
GList*
|
||||||
g_param_spec_pool_belongings (GParamSpecPool *pool,
|
g_param_spec_pool_list_owned (GParamSpecPool *pool,
|
||||||
GType owner_type)
|
GType owner_type)
|
||||||
{
|
{
|
||||||
gpointer data[2];
|
gpointer data[2];
|
||||||
|
@ -172,7 +172,7 @@ GParamSpec* g_param_spec_pool_lookup (GParamSpecPool *pool,
|
|||||||
const gchar *param_name,
|
const gchar *param_name,
|
||||||
GType owner_type,
|
GType owner_type,
|
||||||
gboolean walk_ancestors);
|
gboolean walk_ancestors);
|
||||||
GList* g_param_spec_pool_belongings (GParamSpecPool *pool,
|
GList* g_param_spec_pool_list_owned (GParamSpecPool *pool,
|
||||||
GType owner_type);
|
GType owner_type);
|
||||||
GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool,
|
GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool,
|
||||||
GType owner_type,
|
GType owner_type,
|
||||||
@ -192,8 +192,8 @@ GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool,
|
|||||||
* gint values_cmp (GParamSpec *pspec,
|
* gint values_cmp (GParamSpec *pspec,
|
||||||
* const GValue *value1,
|
* const GValue *value1,
|
||||||
* const GValue *value2):
|
* const GValue *value2):
|
||||||
* return value1 - value2, i.e. <0 if value1 < value2,
|
* return value1 - value2, i.e. (-1) if value1 < value2,
|
||||||
* >0 if value1 > value2, and 0 otherwise (they are equal)
|
* (+1) if value1 > value2, and (0) otherwise (equality)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
@ -943,10 +943,70 @@ g_signal_lookup (const gchar *name,
|
|||||||
SIGNAL_LOCK ();
|
SIGNAL_LOCK ();
|
||||||
signal_id = signal_id_lookup (g_quark_try_string (name), itype);
|
signal_id = signal_id_lookup (g_quark_try_string (name), itype);
|
||||||
SIGNAL_UNLOCK ();
|
SIGNAL_UNLOCK ();
|
||||||
|
if (!signal_id)
|
||||||
|
{
|
||||||
|
/* give elaborate warnings */
|
||||||
|
if (!g_type_name (itype))
|
||||||
|
g_warning (G_STRLOC ": unable to lookup signal \"%s\" for invalid type id `%u'",
|
||||||
|
name, itype);
|
||||||
|
else if (!G_TYPE_IS_INSTANTIATABLE (itype))
|
||||||
|
g_warning (G_STRLOC ": unable to lookup signal \"%s\" for non instantiatable type `%s'",
|
||||||
|
name, g_type_name (itype));
|
||||||
|
else if (!g_type_class_peek (itype))
|
||||||
|
g_warning (G_STRLOC ": unable to lookup signal \"%s\" of unloaded type `%s'",
|
||||||
|
name, g_type_name (itype));
|
||||||
|
}
|
||||||
|
|
||||||
return signal_id;
|
return signal_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
guint*
|
||||||
|
g_signal_list_ids (GType itype,
|
||||||
|
guint *n_ids)
|
||||||
|
{
|
||||||
|
SignalKey *keys;
|
||||||
|
GArray *result;
|
||||||
|
guint n_nodes;
|
||||||
|
guint i;
|
||||||
|
|
||||||
|
g_return_val_if_fail (G_TYPE_IS_INSTANTIATABLE (itype) || G_TYPE_IS_INTERFACE (itype), NULL);
|
||||||
|
g_return_val_if_fail (n_ids != NULL, NULL);
|
||||||
|
|
||||||
|
SIGNAL_LOCK ();
|
||||||
|
keys = g_signal_key_bsa.nodes;
|
||||||
|
n_nodes = g_signal_key_bsa.n_nodes;
|
||||||
|
result = g_array_new (FALSE, FALSE, sizeof (guint));
|
||||||
|
|
||||||
|
for (i = 0; i < n_nodes; i++)
|
||||||
|
if (keys[i].itype == itype)
|
||||||
|
{
|
||||||
|
const gchar *name = g_quark_to_string (keys[i].quark);
|
||||||
|
|
||||||
|
/* Signal names with "_" in them are aliases to the same
|
||||||
|
* name with "-" instead of "_".
|
||||||
|
*/
|
||||||
|
if (!strchr (name, '_'))
|
||||||
|
g_array_append_val (result, keys[i].signal_id);
|
||||||
|
}
|
||||||
|
*n_ids = result->len;
|
||||||
|
SIGNAL_UNLOCK ();
|
||||||
|
if (!n_nodes)
|
||||||
|
{
|
||||||
|
/* give elaborate warnings */
|
||||||
|
if (!g_type_name (itype))
|
||||||
|
g_warning (G_STRLOC ": unable to list signals for invalid type id `%u'",
|
||||||
|
itype);
|
||||||
|
else if (!G_TYPE_IS_INSTANTIATABLE (itype))
|
||||||
|
g_warning (G_STRLOC ": unable to list signals of non instantiatable type `%s'",
|
||||||
|
g_type_name (itype));
|
||||||
|
else if (!g_type_class_peek (itype))
|
||||||
|
g_warning (G_STRLOC ": unable to list signals of unloaded type `%s'",
|
||||||
|
g_type_name (itype));
|
||||||
|
}
|
||||||
|
|
||||||
|
return (guint*) g_array_free (result, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
G_CONST_RETURN gchar*
|
G_CONST_RETURN gchar*
|
||||||
g_signal_name (guint signal_id)
|
g_signal_name (guint signal_id)
|
||||||
{
|
{
|
||||||
@ -986,43 +1046,6 @@ g_signal_query (guint signal_id,
|
|||||||
SIGNAL_UNLOCK ();
|
SIGNAL_UNLOCK ();
|
||||||
}
|
}
|
||||||
|
|
||||||
guint*
|
|
||||||
g_signal_list_ids (GType itype,
|
|
||||||
guint *n_ids)
|
|
||||||
{
|
|
||||||
SignalKey *keys;
|
|
||||||
GArray *result;
|
|
||||||
guint n_nodes;
|
|
||||||
guint i;
|
|
||||||
|
|
||||||
g_return_val_if_fail (G_TYPE_IS_INSTANTIATABLE (itype) || G_TYPE_IS_INTERFACE (itype), NULL);
|
|
||||||
g_return_val_if_fail (n_ids != NULL, NULL);
|
|
||||||
|
|
||||||
SIGNAL_LOCK ();
|
|
||||||
|
|
||||||
keys = g_signal_key_bsa.nodes;
|
|
||||||
n_nodes = g_signal_key_bsa.n_nodes;
|
|
||||||
result = g_array_new (FALSE, FALSE, sizeof (guint));
|
|
||||||
|
|
||||||
for (i = 0; i < n_nodes; i++)
|
|
||||||
if (keys[i].itype == itype)
|
|
||||||
{
|
|
||||||
const gchar *name = g_quark_to_string (keys[i].quark);
|
|
||||||
|
|
||||||
/* Signal names with "_" in them are aliases to the same
|
|
||||||
* name with "-" instead of "_".
|
|
||||||
*/
|
|
||||||
if (!strchr (name, '_'))
|
|
||||||
g_array_append_val (result, keys[i].signal_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
*n_ids = result->len;
|
|
||||||
|
|
||||||
SIGNAL_UNLOCK ();
|
|
||||||
|
|
||||||
return (guint*) g_array_free (result, FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
guint
|
guint
|
||||||
g_signal_new_valist (const gchar *signal_name,
|
g_signal_new_valist (const gchar *signal_name,
|
||||||
GType itype,
|
GType itype,
|
||||||
@ -1058,16 +1081,16 @@ g_signal_new_valist (const gchar *signal_name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
guint
|
guint
|
||||||
g_signal_newc (const gchar *signal_name,
|
g_signal_new (const gchar *signal_name,
|
||||||
GType itype,
|
GType itype,
|
||||||
GSignalFlags signal_flags,
|
GSignalFlags signal_flags,
|
||||||
guint class_offset,
|
guint class_offset,
|
||||||
GSignalAccumulator accumulator,
|
GSignalAccumulator accumulator,
|
||||||
gpointer accu_data,
|
gpointer accu_data,
|
||||||
GSignalCMarshaller c_marshaller,
|
GSignalCMarshaller c_marshaller,
|
||||||
GType return_type,
|
GType return_type,
|
||||||
guint n_params,
|
guint n_params,
|
||||||
...)
|
...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
guint signal_id;
|
guint signal_id;
|
||||||
@ -1350,18 +1373,21 @@ g_signal_connect_data (gpointer instance,
|
|||||||
GCallback c_handler,
|
GCallback c_handler,
|
||||||
gpointer data,
|
gpointer data,
|
||||||
GClosureNotify destroy_data,
|
GClosureNotify destroy_data,
|
||||||
gboolean swapped,
|
GConnectFlags connect_flags)
|
||||||
gboolean after)
|
|
||||||
{
|
{
|
||||||
guint signal_id;
|
guint signal_id;
|
||||||
gulong handler_seq_no = 0;
|
gulong handler_seq_no = 0;
|
||||||
GQuark detail = 0;
|
GQuark detail = 0;
|
||||||
GType itype;
|
GType itype;
|
||||||
|
gboolean swapped, after;
|
||||||
|
|
||||||
g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
|
g_return_val_if_fail (G_TYPE_CHECK_INSTANCE (instance), 0);
|
||||||
g_return_val_if_fail (detailed_signal != NULL, 0);
|
g_return_val_if_fail (detailed_signal != NULL, 0);
|
||||||
g_return_val_if_fail (c_handler != NULL, 0);
|
g_return_val_if_fail (c_handler != NULL, 0);
|
||||||
|
|
||||||
|
swapped = (connect_flags & G_CONNECT_SWAPPED) != FALSE;
|
||||||
|
after = (connect_flags & G_CONNECT_AFTER) != FALSE;
|
||||||
|
|
||||||
SIGNAL_LOCK ();
|
SIGNAL_LOCK ();
|
||||||
itype = G_TYPE_FROM_INSTANCE (instance);
|
itype = G_TYPE_FROM_INSTANCE (instance);
|
||||||
signal_id = signal_parse_name (detailed_signal, itype, &detail, TRUE);
|
signal_id = signal_parse_name (detailed_signal, itype, &detail, TRUE);
|
||||||
|
@ -41,7 +41,7 @@ typedef gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint,
|
|||||||
gpointer data);
|
gpointer data);
|
||||||
|
|
||||||
|
|
||||||
/* --- run & match types --- */
|
/* --- run, match and connect types --- */
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
G_SIGNAL_RUN_FIRST = 1 << 0,
|
G_SIGNAL_RUN_FIRST = 1 << 0,
|
||||||
@ -54,6 +54,11 @@ typedef enum
|
|||||||
} GSignalFlags;
|
} GSignalFlags;
|
||||||
#define G_SIGNAL_FLAGS_MASK 0x7f
|
#define G_SIGNAL_FLAGS_MASK 0x7f
|
||||||
typedef enum
|
typedef enum
|
||||||
|
{
|
||||||
|
G_CONNECT_AFTER = 1 << 0,
|
||||||
|
G_CONNECT_SWAPPED = 1 << 1
|
||||||
|
} GConnectFlags;
|
||||||
|
typedef enum
|
||||||
{
|
{
|
||||||
G_SIGNAL_MATCH_ID = 1 << 0,
|
G_SIGNAL_MATCH_ID = 1 << 0,
|
||||||
G_SIGNAL_MATCH_DETAIL = 1 << 1,
|
G_SIGNAL_MATCH_DETAIL = 1 << 1,
|
||||||
@ -106,7 +111,7 @@ guint g_signal_new_valist (const gchar *signal_name,
|
|||||||
GType return_type,
|
GType return_type,
|
||||||
guint n_params,
|
guint n_params,
|
||||||
va_list args);
|
va_list args);
|
||||||
guint g_signal_newc (const gchar *signal_name,
|
guint g_signal_new (const gchar *signal_name,
|
||||||
GType itype,
|
GType itype,
|
||||||
GSignalFlags signal_flags,
|
GSignalFlags signal_flags,
|
||||||
guint class_offset,
|
guint class_offset,
|
||||||
@ -179,8 +184,7 @@ gulong g_signal_connect_data (gpointer instance,
|
|||||||
GCallback c_handler,
|
GCallback c_handler,
|
||||||
gpointer data,
|
gpointer data,
|
||||||
GClosureNotify destroy_data,
|
GClosureNotify destroy_data,
|
||||||
gboolean swapped,
|
GConnectFlags connect_flags);
|
||||||
gboolean after);
|
|
||||||
void g_signal_handler_block (gpointer instance,
|
void g_signal_handler_block (gpointer instance,
|
||||||
gulong handler_id);
|
gulong handler_id);
|
||||||
void g_signal_handler_unblock (gpointer instance,
|
void g_signal_handler_unblock (gpointer instance,
|
||||||
@ -220,22 +224,30 @@ guint g_signal_handlers_disconnect_matched (gpointer instance,
|
|||||||
|
|
||||||
|
|
||||||
/* --- convenience --- */
|
/* --- convenience --- */
|
||||||
#define g_signal_connectc(instance, detailed_signal, c_handler, data, swapped) \
|
|
||||||
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (swapped), FALSE)
|
|
||||||
#define g_signal_connect(instance, detailed_signal, c_handler, data) \
|
#define g_signal_connect(instance, detailed_signal, c_handler, data) \
|
||||||
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, FALSE, FALSE)
|
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, 0)
|
||||||
#define g_signal_connect_swapped(instance, detailed_signal, c_handler, data) \
|
#define g_signal_connect_swapped(instance, detailed_signal, c_handler, data) \
|
||||||
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, TRUE, FALSE)
|
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, G_CONNECT_SWAPPED)
|
||||||
#define g_signal_disconnect_by_func(instance, func, data) \
|
#define g_signal_handlers_disconnect_by_func(instance, func, data) \
|
||||||
g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \
|
g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \
|
||||||
0, 0, NULL, (func), (data))
|
0, 0, NULL, (func), (data))
|
||||||
#define g_signal_block_by_func(instance, func, data) \
|
#define g_signal_handlers_block_by_func(instance, func, data) \
|
||||||
g_signal_handlers_block_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \
|
g_signal_handlers_block_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \
|
||||||
0, 0, NULL, (func), (data))
|
0, 0, NULL, (func), (data))
|
||||||
#define g_signal_unblock_by_func(instance, func, data) \
|
#define g_signal_handlers_unblock_by_func(instance, func, data) \
|
||||||
g_signal_handlers_unblock_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \
|
g_signal_handlers_unblock_matched ((instance), G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, \
|
||||||
0, 0, NULL, (func), (data))
|
0, 0, NULL, (func), (data))
|
||||||
|
|
||||||
|
#ifndef G_DISABLE_COMPAT
|
||||||
|
/* tmp compat, to be nuked soon */
|
||||||
|
#define g_signal_connectc(instance, detailed_signal, c_handler, data, swapped) \
|
||||||
|
g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (swapped)?G_CONNECT_SWAPPED:0);
|
||||||
|
#define g_signal_newc g_signal_new
|
||||||
|
#define g_signal_disconnect_by_func g_signal_handlers_disconnect_by_func
|
||||||
|
#define g_signal_block_by_func g_signal_handlers_block_by_func
|
||||||
|
#define g_signal_unblock_by_func g_signal_handlers_unblock_by_func
|
||||||
|
#endif
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
void g_signal_handlers_destroy (gpointer instance);
|
void g_signal_handlers_destroy (gpointer instance);
|
||||||
void _g_signals_destroy (GType itype);
|
void _g_signals_destroy (GType itype);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user