| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 
 | #include <stdlib.h>
#include <gtk/gtk.h>
 
 
typedef struct
{
    int        i;
    int        j;
    int        n;
    GtkWidget *pTable;
}SJeu;
 
void afficher_image(GtkWidget* pTable, SJeu *Jeu1);
 
 
int main(int argc, char **argv)
{
	GtkWidget *pWindow;
	GtkWidget *pTable;      // Table bouton
	int i=0, j=0, n=20;
	SJeu      *Jeu1;               // Donnée du jeu
	GtkWidget *pButton[(n*n)];
	GtkWidget *pImage[n*n];  // Table bouton
 
	//int x=1;
	//int *D;  test pointeur entier
	//D=&x;    
 
	gtk_init(&argc, &argv);
 
	/* Creation de la fenetre */
	pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(pWindow), "Demineur");
	gtk_window_set_default_size(GTK_WINDOW(pWindow), n*10, n*10);
	g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
 
	/* Creation et insertion de la table n lignes n colonnes */
	pTable=gtk_table_new(n,n,TRUE);
	gtk_container_add(GTK_CONTAINER(pWindow), GTK_WIDGET(pTable));
 
	/* Creation des boutons */
	for (i=0; i<(n*n); i++) 
	{
		pButton[i] = gtk_button_new();
	}
 
 
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			/* n*i donne 0 au premier passage, n au deuxième, 2*n au troisième, etc.
			* 0+j = 0 au premier passage, 1 au deuxième, etc. */
			Jeu1= g_new(SJeu, 1);
			Jeu1->i=i;
			Jeu1->j=j;
			Jeu1->n=n;
			Jeu1->pTable=pTable;
 
			gtk_table_attach_defaults (GTK_TABLE(pTable), pButton[n*i+j], j, j+1, i, i+1);
			pImage[n*i+j] =gtk_image_new_from_file(".\\Images\\case.jpg");
			gtk_container_add(GTK_CONTAINER(pButton[n*i+j]), pImage[n*i+j]);
 
			g_signal_connect(G_OBJECT(pButton[n*i+j]), "clicked", G_CALLBACK(afficher_image), Jeu1);
		}
	}
 
 
	gtk_widget_show_all(pWindow);
	gtk_main();
 
	return EXIT_SUCCESS;
}
 
 
void afficher_image(GtkWidget* pButton, SJeu *Jeu1)
{
	//int x=1;
	//D=&x;                  test pointeur d'entier
	//printf("%d\n",*D);
 
	GtkWidget* pImage[200];
	GtkWidget *pTable=Jeu1->pTable;
 
g_print("%d,%d,%d\n", Jeu1->i, Jeu1->j, Jeu1->n);
 
	pImage[(Jeu1->n)*(Jeu1->i)+(Jeu1->j)] = gtk_image_new_from_stock(GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU);
	gtk_table_attach_defaults(GTK_TABLE(pTable), pImage[(Jeu1->n)*(Jeu1->i)+(Jeu1->j)], (Jeu1->j), (Jeu1->j)+1, (Jeu1->i), (Jeu1->i)+1);
} | 
Partager