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 90 91 92 93
|
/* Declaration des variables de l'interface */
GtkWidget *pWindow;
GtkWidget *pVBox;
GtkWidget *pHBox;
GtkWidget *pButton1[4];
GtkWidget *pImage;
GtkWidget *generer;
GtkWidget *resoudre;
GtkWidget *quitter;
GtkWidget *enregistrer;
GtkWidget *pTable;
GtkWidget *pButton[9][9];
gtk_init(&argc, &argv);
pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(pWindow), 300, 300);
gtk_window_set_title(GTK_WINDOW(pWindow), "Sudoku_Ensi");
g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_window_set_resizable (GTK_WINDOW(pWindow), FALSE);
gtk_window_set_position (GTK_WINDOW(pWindow), GTK_WIN_POS_CENTER);
g_signal_connect(G_OBJECT(pWindow), "delete-event", G_CALLBACK(OnQuit), NULL);
/* Creation et insertion de la table 3 lignes 2 colonnes */
pTable=gtk_table_new(9,9,FALSE);
// gtk_container_add(GTK_CONTAINER(pWindow), GTK_WIDGET(pTable));
gtk_table_set_row_spacings(GTK_TABLE(pTable), 0);
gtk_table_set_col_spacings(GTK_TABLE(pTable), 0 );
gtk_table_set_row_spacing(GTK_TABLE(pTable), 2, 6);
gtk_table_set_row_spacing(GTK_TABLE(pTable), 5, 6);
gtk_table_set_col_spacing(GTK_TABLE(pTable), 2, 6);
gtk_table_set_col_spacing(GTK_TABLE(pTable), 5, 6);
// gtk_table_set_homogeneous( GTK_TABLE(pTable), FALSE);
/* Creation de la GtkBox verticale */
pVBox = gtk_vbox_new(FALSE, 0);
/* Ajout de la GtkVBox dans la fenetre */
gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
/* Chargement d'une image a partir d'un fichier */
pImage = gtk_image_new_from_file("./grille.bmp");
generer = gtk_image_new_from_file("./generer1.bmp");
resoudre = gtk_image_new_from_file("./resoudre1.bmp");
quitter = gtk_image_new_from_file("./quitter1.bmp");
enregistrer = gtk_image_new_from_file("./enregistrer.bmp");
/* Creation des boutons */
pButton1[0] = gtk_button_new();
pButton1[1] = gtk_button_new();
pButton1[2] = gtk_button_new();
pButton1[3] = gtk_button_new();
// ajout des images aux boutons
gtk_container_add(GTK_CONTAINER(pButton1[0]), generer);
gtk_container_add(GTK_CONTAINER(pButton1[1]), resoudre);
gtk_container_add(GTK_CONTAINER(pButton1[2]),enregistrer);
gtk_container_add(GTK_CONTAINER(pButton1[3]), quitter);
/* Ajout de Bouton 1 dans la GtkVBox */
gtk_box_pack_start(GTK_BOX(pVBox), pTable, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(pVBox), pButton1[0], TRUE, TRUE, 5);
/* Creation de la box horizontale */
pHBox = gtk_hbox_new(TRUE, 0);
// gtk_box_pack_start(GTK_BOX(pVBox), pTable, TRUE, TRUE, 0);
/* Ajout de la GtkHBox dans la GtkVBox */
gtk_box_pack_start(GTK_BOX(pVBox), pHBox, TRUE, TRUE, 0);
/* Ajout des boutons 2 et 3 dans la GtkHBox */
gtk_box_pack_start(GTK_BOX(pHBox), pButton1[1], TRUE, TRUE, 5);
gtk_box_pack_start(GTK_BOX(pHBox), pButton1[2], TRUE, TRUE, 5);
/* Ajout du dernier bouton dans la GtkVBox */
gtk_box_pack_start(GTK_BOX(pVBox), pButton1[3], TRUE, TRUE, 5);
/* Connexion du signal "clicked" du bouton */
g_signal_connect(G_OBJECT(pButton1[3]), "clicked", G_CALLBACK(on_quitter_btn), NULL);
g_signal_connect(G_OBJECT(pButton1[0]), "clicked", G_CALLBACK(generer_grille), NULL);
g_signal_connect(G_OBJECT(pButton1[1]), "clicked", G_CALLBACK(resoudre_grille), NULL);
gtk_widget_show_all(pWindow);
gtk_main();
return EXIT_SUCCESS;
} |
Partager