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 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