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
| #include <stdlib.h>
#include <gtk/gtk.h>
void on_activate_entry(GtkWidget *pEntry, gpointer data);
int main(int argc, char **argv)
{
GtkWidget *pWindow;
GtkWidget *pTable;
GtkWidget *pEntry;
GtkWidget *pLabel;
gchar* sUtf8;
/* nombtre de boutons */
GtkWidget *pButton[4];
char test[]="gasp";
gtk_init(&argc, &argv);
pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* dimension fenetre */
gtk_window_set_default_size(GTK_WINDOW(pWindow), 300, 300);
/* titre fenetre */
gtk_window_set_title(GTK_WINDOW(pWindow), "marche pas");
g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
/* Creation du GtkEntry */
pEntry = gtk_entry_new();
/* Creation et insertion de la table 4 lignes 6 colonnes */
pTable=gtk_table_new(4,6,TRUE);
gtk_container_add(GTK_CONTAINER(pWindow), GTK_WIDGET(pTable));
/* Creation du label avec g_locale_to_utf8 */
sUtf8 = g_locale_to_utf8("salut", -1, NULL, NULL, NULL);
pLabel=gtk_label_new(sUtf8);
g_free(sUtf8);
/* Creation des boutons */
/* le bouton 0 devrait afficger salut et changer lorsque l on fait entrer */
pButton[0]= gtk_button_new_with_label( pLabel);/* ici mon plabel doit poser probleme*/
pButton[1]= gtk_button_new_with_label(test);
pButton[2]= gtk_button_new_with_label("chiffre2");
/* Insertion des boutons */
gtk_table_attach(GTK_TABLE(pTable), pButton[0],
2, 4, 0, 1,
GTK_EXPAND | GTK_FILL, GTK_EXPAND,
0, 0);
gtk_table_attach_defaults(GTK_TABLE(pTable), pButton[1],
1, 2, 1, 2);
gtk_table_attach(GTK_TABLE(pTable), pButton[2],
4, 5, 1, 2,
GTK_EXPAND, GTK_EXPAND | GTK_FILL,
0, 0);
gtk_table_attach_defaults(GTK_TABLE(pTable), pEntry,
2, 4, 3, 4);
/* Connexion du signal "activate" du GtkEntry */
g_signal_connect(G_OBJECT(pEntry), "activate", G_CALLBACK(on_activate_entry), (GtkWidget*) pLabel);
gtk_widget_show_all(pWindow);
gtk_main();
return EXIT_SUCCESS;
}
/* Fonction callback execute lors du signal "activate" */
void on_activate_entry(GtkWidget *pEntry, gpointer data)
{printf("test reussi\n");
const gchar *sText;
/* Recuperation du texte contenu dans le GtkEntry */
sText = gtk_entry_get_text(GTK_ENTRY(pEntry));
printf("%s\n",sText);
/* Modification du texte contenu dans le GtkLabel */
gtk_label_set_text(GTK_LABEL((GtkWidget*)data), sText);
} |