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 :
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 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;
AttacherTas se charge de gérer l'envoi a RecursAttach de chaque liste chainées du tableau, avec des places de dégat
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)); } } }
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 ?
Partager