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
|
#include <stdlib.h>
#include <gtk/gtk.h>
struct _MainWindow
{
GtkWidget *pWindow;
GtkWidget *pVBox;
GtkWidget *pEntryNom;
GtkWidget *pEntryPrenom;
GtkWidget *pButton;
GtkWidget *pLabel;
};
typedef struct _MainWindow MainWindow;
void OnUpdate(GtkWidget *pEntryNom, GtkWidget *pEntryPrenom, gpointer data);
int main(int argc, char **argv)
{
MainWindow *pApp;
gtk_init(&argc, &argv);
pApp = g_malloc(sizeof(MainWindow));
pApp->pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(pApp->pWindow), "Le widget GtkEntry");
gtk_window_set_default_size(GTK_WINDOW(pApp->pWindow), 320, 200);
g_signal_connect(G_OBJECT(pApp->pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
pApp->pVBox = gtk_vbox_new(TRUE, 0);
gtk_container_add(GTK_CONTAINER(pApp->pWindow), pApp->pVBox);
/* Creation du GtkEntry */
pApp->pEntryNom = gtk_entry_new();
/* Insertion du GtkEntry dans la GtkVBox */
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pEntryNom, TRUE, FALSE, 0);
/* Creation du GtkEntry */
pApp->pEntryPrenom = gtk_entry_new();
/* Insertion du GtkEntry dans la GtkVBox */
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pEntryPrenom, TRUE, FALSE, 0);
pApp->pButton = gtk_button_new_with_label("Copier");
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pButton, TRUE, FALSE, 0);
pApp->pLabel = gtk_label_new(NULL);
gtk_box_pack_start(GTK_BOX(pApp->pVBox), pApp->pLabel, TRUE, FALSE, 0);
/* Connexion du signal "activate" du GtkEntry */
g_signal_connect(G_OBJECT(pApp->pEntryNom), "activate", G_CALLBACK(OnUpdate), (gpointer) pApp);
/* Connexion du signal "activate" du GtkEntry */
g_signal_connect(G_OBJECT(pApp->pEntryPrenom), "activate", G_CALLBACK(OnUpdate), (gpointer) pApp);
/* Connexion du signal "clicked" du GtkButton */
/* La donnee supplementaire est la GtkVBox pVBox */
g_signal_connect(G_OBJECT(pApp->pButton), "clicked", G_CALLBACK(OnUpdate), (gpointer*) pApp);
gtk_widget_show_all(pApp->pWindow);
gtk_main();
g_free(pApp);
return EXIT_SUCCESS;
}
/* Fonction callback execute lors du signal "activate" */
void OnUpdate(GtkWidget *pEntryNom, GtkWidget *pEntryPrenom, gpointer data)
{
const gchar *nom,*prenom;
MainWindow *pApp;
/* Recuperation de data */
pApp = (MainWindow*) data;
/* Recuperation du texte contenu dans le GtkEntry */
nom = gtk_entry_get_text(GTK_ENTRY(pApp->pEntryNom));
prenom = gtk_entry_get_text(GTK_ENTRY(pApp->pEntryPrenom));
/* Modification du texte contenu dans le GtkLabel */
//gtk_label_set_text(GTK_LABEL(pApp->pLabel),nom);
printf("\nVous etes %s %s\n",nom,prenom);
} |
Partager