Liaison avec des paramètres supplémentaires
Si vous utilisez un gestionnaire de signal pour capter le même signal à partir de plusieurs éléments graphiques, vous pouvez souhaiter que le gestionnaire de signal reçoive des informations supplémentaires. Par exemple, savoir quel bouton a été cliqué. Vous pouvez réaliser cela avec sigc::bind(). Voici du code extrait de l'exemple helloworld2 déjà rencontré plus haut.
m_button1.signal_clicked().connect( sigc::bind<Glib::ustring>( sigc::mem_fun( *this, &HelloWorld::on_button_clicked ), "bouton 1") );
virtual void on_button_clicked(Glib::ustring data);
sigc::bind() n'est pas d'usage courant, mais peut-être le trouverez-vous commode parfois. Si vous êtes un familier de la programmation avec GTK+, vous avez alors probablement noté la similitude avec les paramètres supplémentaires gpointer data que toutes les fonctions de rappel possèdent. Généralement, cette possibilité est utilisée à l'excès dans GTK+ pour passer des informations qui devraient être stockées dans une donnée membre d'un élément graphique dérivé, mais la dérivation des éléments graphiques est très difficile en C. Nous avons beaucoup moins besoin de cette façon de faire dans gtkmm.