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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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" .