Bonjour a tous !

Je suis en train de dev un solitaire comme projet pour mes études, et je suis tombé sur un os !

Pour pouvoir manipuler sans problemes mes widgets, je manipule différentes structures qui me serviront lors de l'envoi aux fonctions callbacks.

Voici ces structures :
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
21
22
23
24
 
typedef struct Carte
{
    int val;
    int color; //O noir, 1 rouge;
    int type; //0 pique, 1 trefle, 2 coeur, 3 carreau;
    GtkWidget* widget;
}t_Carte;
 
typedef struct Clist
{
    t_Carte* data;
    struct Clist* prec;
    struct Clist* next;
}t_Clist;
 
typedef struct Plateau
{
    t_Clist* AncrePioche;
    GtkWidget* Pioche;
    t_Clist* Fin[4];
    GtkWidget* FinWidget[4];
    t_Clist* Tas[2][7]; //Ligne : 0 caché, 1 visible
}t_Plateau;
J'affiche sans probleme le widget de la pioche et FinWidget[4], mais j'suis tombé sur un petit soucis avec l'attach dans une table des widgets de mes tas.
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
21
22
23
24
25
 
void RecursAttach(GtkWidget* table, t_Clist* c, int i, int j)
{
 
    if (c != NULL)
    {
        gtk_table_attach_defaults(GTK_TABLE(table),(c->data->widget),i,i+10,j,j+10);
        RecursAttach(table,c->next,i,j+3);
    }
 
}
 
void AttacherTas(GtkWidget* table, t_Plateau plateau)
{
    int i = 0;
    int j = 0;
    for (i=0;i<2;i++)
    {
        for (j=0;j<7;j++)
        {
             RecursAttach(table, plateau.Tas[i][j],60+(i*15),30+(j*10));
 
        }
    }
}
AttacherTas se charge de gérer l'envoi a RecursAttach de chaque liste chainées du tableau, avec des places de dégat

RecursAttach est une fonction récursive qui affiche le wisget de mon element de liste puis rappelle RecursAttach sur l'element suivant.

Je tombe malheureusement sur un petit soucis, dans la console je me prend des gtk_table_attach : assertion 'child->parent == NULL' failed

Quelqu'un aurait une petite idée svp ?