guint gtk_signal_connect( GtkObject *object,
const gchar *name,
GtkSignalFunc func,
gpointer func_data );
guint gtk_signal_connect_after( GtkObject *object,
const gchar *name,
GtkSignalFunc func,
gpointer func_data );
guint gtk_signal_connect_object( GtkObject *object,
const gchar *name,
GtkSignalFunc func,
GtkObject *slot_object );
guint gtk_signal_connect_object_after( GtkObject *object,
const gchar *name,
GtkSignalFunc func,
GtkObject *slot_object );
guint gtk_signal_connect_full( GtkObject *object,
const gchar *name,
GtkSignalFunc func,
GtkCallbackMarshal marshal,
gpointer data,
GtkDestroyNotify destroy_func,
gint object_signal,
gint after );
guint gtk_signal_connect_interp( GtkObject *object,
const gchar *name,
GtkCallbackMarshal func,
gpointer data,
GtkDestroyNotify destroy_func,
gint after );
void gtk_signal_connect_object_while_alive( GtkObject *object,
const gchar *signal,
GtkSignalFunc func,
GtkObject *alive_object );
void gtk_signal_connect_while_alive( GtkObject *object,
const gchar *signal,
GtkSignalFunc func,
gpointer func_data,
GtkObject *alive_object );
void gtk_signal_disconnect( GtkObject *object,
guint handler_id );
void gtk_signal_disconnect_by_func( GtkObject *object,
GtkSignalFunc func,
gpointer data );
void gtk_signal_handler_block( GtkObject *object,
guint handler_id);
void gtk_signal_handler_block_by_func( GtkObject *object,
GtkSignalFunc func,
gpointer data );
void gtk_signal_handler_block_by_data( GtkObject *object,
gpointer data );
void gtk_signal_handler_unblock( GtkObject *object,
guint handler_id );
void gtk_signal_handler_unblock_by_func( GtkObject *object,
GtkSignalFunc func,
gpointer data );
void gtk_signal_handler_unblock_by_data( GtkObject *object,
gpointer data );
void gtk_signal_emit( GtkObject *object,
guint signal_id,
... );
void gtk_signal_emit_by_name( GtkObject *object,
const gchar *name,
... );
void gtk_signal_emitv( GtkObject *object,
guint signal_id,
GtkArg *params );
void gtk_signal_emitv_by_name( GtkObject *object,
const gchar *name,
GtkArg *params );
guint gtk_signal_n_emissions( GtkObject *object,
guint signal_id );
guint gtk_signal_n_emissions_by_name( GtkObject *object,
const gchar *name );
void gtk_signal_emit_stop( GtkObject *object,
guint signal_id );
void gtk_signal_emit_stop_by_name( GtkObject *object,
const gchar *name );
La emisión de señales es el proceso mediante el cual GTK+ ejecuta todos los manejadores de un objeto y una señal en especial.
Primero, observe que el valor devuelto por la emisión de una
señal es el mismo que el valor devuelto por el último
manipulador ejecutado. Ya que las señales de los eventos son todas
del tipo GTK_RUN_LAST, el manejador por defecto (proporcionado por
GTK+) será de este tipo, a menos que lo conecte con
gtk_signal_connect_after()
.
La forma en que se maneja un evento (digamos GTK_BUTTON_PRESS), es la siguiente:
event
. Si esta señal devuelve un
valor TRUE, detiene todo el proceso.
Algunas consecuencias son:
gtk_signal_connect_after()
.
gtk_signal_connect()
y utilizar
gtk_signal_emit_stop_by_name()
- el valor devuelto sólo se ve
afectado si la señal se propaga, y no sólo por el hecho de emitirse.