< Programmation GTK+


Regardons à nouveau la déclaration de gtk_signal_connect.

      gint gtk_signal_connect (GtkObject *object, gchar *name,
                               GtkSignalFunc func, gpointer func_data);

Vous avez remarqué que le valeur de retour est de type gint ? Il s'agit d'un marqueur qui identifie votre fonction de rappel. Comme on le disait plus haut, on peut avoir autant de fonctions de rappel que l'on a besoin, par signal et par objet, et chacune sera exécutée à son tour, dans l'ordre dans lequel elle a été attachée. Ce marqueur vous permet d'ôter ce rappel de la liste en faisant :

      void gtk_signal_disconnect (GtkObject *object, gint id);

Ainsi, en passant le widget dont on veut supprimer le gestionnaire et le marqueur ou identificateur retourné par l'une des fonctions signal_connect, on peut déconnecter un gestionnaire de signal.

Une autre fonction permettant de supprimer tous les gestionnaires de signaux pour un objet est :

      gtk_signal_handlers_destroy (GtkObject *object);

Cet appel n'a pas trop besoin d'explications. Il ôte simplement tous les gestionnaires de signaux de l'objet passé en paramètre.

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.