Récupérer l'id d'un widget
Bonjour
Mon interface est surtout généré par glade où les objet ont des id. Voici un extrait d'un fichier glade avec l'id "effacer_1" :
Code:
1 2
| <object class="GtkButton" id="effacer_1">
<signal name="clicked" handler="efface_mag" swapped="no"/> |
Comment faire pour récupérer cet id lors d'un appel de fonction callback (fonction efface_mag dans le cas précédent) ?
Dans le cas de l'exemple précédent, je souhaite savoir quel est bouton "effacer" qui appelle. J'ai fait comme ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| void efface_mag (GtkWidget * appel,FenetrePerso * _perso)
{
unsigned short niv=10,i;
char _nom[32];
GtkWidget * wid_util, * wid;
for(i=1;i<=9;i++)
{
sprintf(_nom,"effacer_%hu",i);
wid_util=GTK_WIDGET(gtk_builder_get_object(_perso->modif->builder,_nom));
if (wid_util==appel)
{
niv=i-1;
i=10;
}
else
{ /* pas le bon niveau */
}
}
if (niv!=10) |
Mais, ça ne me plait pas. Je préférerais avoir une fonction qui trouve son idée.
Édit : je regarde le programme proposé par Le gaulois ici pour les styles ( http://www.developpez.net/forums/d15...estion-styles/ ), j'ai l'impression qu'il évite le problème en rajoutant une donnée au widget avec "g_object_set_data" .