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 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<gtk/gtk.h>
typedef struct
{
GtkWidget *ptfenetre;
GtkWidget *ptbox;
GtkWidget *ptframe;
GtkWidget *ptboxframe;
GtkWidget *ptentry;
GtkWidget *ptbouton[2];
GtkWidget *pttexte;
GtkWidget *ptboite;
}
GUI;
GUI * CreationGUI(void); /* Le mieux est le lui faire retourner le pointeur. */
void Pass(GtkWidget * wid, gpointer data); /* Le 1° argument doit être du type d'un widget, mettre par defaut GtkWidget. */
int main(int argc, char **argv)
{
GUI *ptgui = NULL;
gtk_init(&argc, &argv);
ptgui = CreationGUI();
if (ptgui == NULL)
{
exit (EXIT_FAILURE);
}
gtk_main(); /* Il est mieux de lancer la boucle GTK+ dans le main. */
/* Il ne faut pas oublier de liberer les ressources. */
free (ptgui);
/* main retourne toujours un int !!! */
return EXIT_SUCCESS;
}
GUI * CreationGUI(void)
{
GUI *ptgui = NULL;
ptgui = malloc (1 * sizeof (* ptgui)); /* Cast inutile. */
/* TOUJOUR verifier les retours de malloc. */
if (ptgui == NULL)
{
g_warning ("Erreur de malloc.\n");
return NULL;
}
ptgui->ptfenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(ptgui->ptfenetre), "Dimsoft - Mot de passe");
gtk_container_set_border_width(GTK_CONTAINER(ptgui->ptfenetre), 5);
gtk_window_set_default_size(GTK_WINDOW(ptgui->ptfenetre), 320, 200);
gtk_window_set_position(GTK_WINDOW(ptgui->ptfenetre), GTK_WIN_POS_CENTER);
ptgui->ptbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(ptgui->ptfenetre), ptgui->ptbox);
ptgui->ptframe = gtk_frame_new("Entrez votre mot de passe : ");
gtk_box_pack_start(GTK_BOX(ptgui->ptbox), ptgui->ptframe, TRUE, FALSE, 0);
ptgui->ptboxframe = gtk_vbox_new(TRUE, 0);
gtk_container_add(GTK_CONTAINER(ptgui->ptframe), ptgui->ptboxframe);
ptgui->ptentry = gtk_entry_new();
gtk_entry_set_visibility(GTK_ENTRY(ptgui->ptentry), FALSE);
gtk_box_pack_start(GTK_BOX(ptgui->ptboxframe), ptgui->ptentry, TRUE, FALSE, 0);
ptgui->pttexte = gtk_label_new(NULL);
gtk_box_pack_start(GTK_BOX(ptgui->ptbox), ptgui->pttexte, TRUE, FALSE, 0);
ptgui->ptbouton[0] = gtk_button_new_from_stock(GTK_STOCK_QUIT);
gtk_box_pack_end(GTK_BOX(ptgui->ptbox), ptgui->ptbouton[0], FALSE, FALSE, 0);
ptgui->ptbouton[1] = gtk_button_new_from_stock(GTK_STOCK_OK);
gtk_box_pack_end(GTK_BOX(ptgui->ptbox), ptgui->ptbouton[1], FALSE, FALSE, 0);
g_signal_connect(G_OBJECT(ptgui->ptfenetre), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(ptgui->ptbouton[0]), "clicked", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(ptgui->ptbouton[1]), "clicked", G_CALLBACK(Pass), (gpointer *) ptgui);
gtk_widget_show_all(ptgui->ptfenetre);
return ptgui;
}
void Pass(GtkWidget * wid, gpointer data)
{
char pass[] = "1234";
const char *pt = NULL;
GUI * ptgui = NULL;
ptgui = (GUI *) data;
pt = gtk_entry_get_text(GTK_ENTRY(ptgui->ptentry));
if(strcmp(pt, pass) == 0)
{
gtk_label_set_markup(GTK_LABEL(ptgui->pttexte), "<b>Access Granted</b>");
}
else
{
gtk_label_set_markup(GTK_LABEL(ptgui->pttexte), "<b>Access Denied</b>");
}
} |
Partager