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
| #include <gtk/gtk.h>
void activation_recup(GtkWidget *Entre, gpointer data) {
const gchar *sText;
/* Recuperation du texte contenu dans le GtkEntry */
sText = gtk_entry_get_text(GTK_ENTRY(Entre));
printf("fct %s", sText);
/* Modification du texte contenu dans le GtkLabel */
gtk_label_set_text(GTK_LABEL((GtkWidget *) data), sText);
}
void recup_donnee(GtkWidget *pButton, gpointer data) {
GtkWidget *pTempEntry;
GtkWidget *pTempLabel;
GList *pList;
const gchar *sText;
/* Recuperation de la liste des elements que contient la GtkVBox */
pList = gtk_container_get_children(GTK_CONTAINER((GtkWidget *) data));
/* Le premier element est le GtkEntry */
pTempEntry = GTK_WIDGET(pList->data);
/* Passage a l element suivant : le GtkButton */
pList = g_list_next(pList);
/* Passage a l element suivant : le GtkLabel */
pList = g_list_next(pList);
/* Cet element est le GtkLabel */
pTempLabel = GTK_WIDGET(pList->data);
/* Recuperation du texte contenu dans le GtkEntry */
sText = gtk_entry_get_text(GTK_ENTRY(pTempEntry));
/* Modification du texte contenu dans le GtkLabel */
gtk_label_set_text(GTK_LABEL(pTempLabel), sText);
printf("fct 2 %s", sText);
/* Liberation de la memoire utilisee par la liste */
g_list_free(pList);
}
int main(int argc, char **argv) {
GtkWidget *fenetre_login;
GtkWidget *tableau_de_login;
GtkWidget *Entre_login;
GtkWidget *validation;
GtkWidget *login;
GtkWidget *Entre_mdp;
GtkWidget *mdp;
GtkWidget *label;
const gchar *sText;
gtk_init(&argc, &argv);
//fenetre login
fenetre_login = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(fenetre_login), "Login");
gtk_window_set_position(GTK_WINDOW(fenetre_login), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(fenetre_login), 320, 200);
tableau_de_login = gtk_table_new(5, 2, FALSE);
gtk_container_add(GTK_CONTAINER(fenetre_login), GTK_WIDGET(tableau_de_login));
login = gtk_label_new("Entrez votre login :");
mdp = gtk_label_new("Entrez votre mot de passe :");
Entre_login = gtk_entry_new();
Entre_mdp = gtk_entry_new();
validation = gtk_button_new_with_label("connexion");
gtk_table_attach(GTK_TABLE(tableau_de_login), login,
0, 1, 0, 1,
GTK_EXPAND, GTK_EXPAND,
15, 0);
gtk_table_attach(GTK_TABLE(tableau_de_login), Entre_login,
0, 2, 1, 2,
GTK_EXPAND | GTK_FILL, GTK_EXPAND,
15, 0);
gtk_table_attach(GTK_TABLE(tableau_de_login), mdp,
0, 1, 2, 3,
GTK_SHRINK, GTK_EXPAND,
15, 0);
//gtk_table_attach_defaults(GTK_TABLE(tableau_de_login),mdp,0,1,2,3);
gtk_table_attach(GTK_TABLE(tableau_de_login), Entre_mdp,
0, 2, 3, 4,
GTK_EXPAND | GTK_FILL, GTK_EXPAND,
15, 0);
gtk_table_attach(GTK_TABLE(tableau_de_login), validation,
1, 2, 4, 5,
GTK_EXPAND, GTK_EXPAND,
0, 0);
gtk_table_attach(GTK_TABLE(tableau_de_login), label,
0,1, 4, 5,
GTK_EXPAND, GTK_EXPAND,
0, 0);
g_signal_connect(G_OBJECT(Entre_login), "activate", G_CALLBACK(activation_recup), label);
g_signal_connect(G_OBJECT(validation), "clicked", G_CALLBACK(recup_donnee), tableau_de_login);
g_signal_connect(G_OBJECT(validation), "clicked", G_CALLBACK(gtk_main_quit), NULL);
//sText=gtk_label_get_text(GTK_LABEL(label));
printf("rrr%s", sText);
gtk_widget_show_all(fenetre_login);
gtk_main();
return 0; |
Partager