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
| #include <stdlib.h>
#include <stdio.h>
#include <gtk/gtk.h>
static void cb (GtkWidget * p_wid, gpointer data)
{
GtkWidget * pBoite = NULL;
GtkTextBuffer * pTextBuffer = NULL;
GtkWidget * pEntry = NULL;
GtkWidget * pTextView = data;
const gchar * sNom = NULL;
/* Creation de la boite de dialogue */
/* 1 bouton Valider */
/* 1 bouton Annuler */
pBoite = gtk_dialog_new_with_buttons("Saisie du nom",
NULL, /* - Franck.H - Ici plus de fenetre en parametre donc on met NULL. */
GTK_DIALOG_MODAL,
GTK_STOCK_OK,GTK_RESPONSE_OK,
GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,
NULL);
/* Creation de la zone de saisie */
pEntry = gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(pEntry), "Saisissez votre nom");
/* Insertion de la zone de saisie dans la boite de dialogue */
/* Rappel : paramètre 1 de gtk_box_pack_start de type GtkBox */
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pBoite)->vbox), pEntry, TRUE, FALSE, 0);
/* Affichage des elements de la boite de dialogue */
gtk_widget_show_all(GTK_DIALOG(pBoite)->vbox);
/* On lance la boite de dialogue et on recupere la reponse */
switch (gtk_dialog_run(GTK_DIALOG(pBoite)))
{
/* L utilisateur valide */
case GTK_RESPONSE_OK:
sNom = gtk_entry_get_text(GTK_ENTRY(pEntry));
/*Création du buffer*/
/* - Franck.H - Ici oublie 2 fois d'utiliser la macro GTK_TEXT_VIEW. */
pTextBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (pTextView));
gtk_text_buffer_set_text(pTextBuffer, sNom,-1);
gtk_text_view_set_buffer(GTK_TEXT_VIEW (pTextView),pTextBuffer);
break;
/* L utilisateur annule */
case GTK_RESPONSE_CANCEL:
case GTK_RESPONSE_NONE:
default:
break;
}
/* Destruction de la boite de dialogue */
gtk_widget_destroy(pBoite);
(void) p_wid;
}
int main (int argc, char ** argv)
{
GtkWidget * p_win = NULL;
GtkWidget * p_vbox = NULL;
GtkWidget * p_btn = NULL;
GtkWidget * p_text = NULL;
gtk_init (& argc, & argv);
p_win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (p_win), 640, 480);
gtk_container_set_border_width (GTK_CONTAINER (p_win), 5);
gtk_window_set_position (GTK_WINDOW (p_win), GTK_WIN_POS_CENTER);
g_signal_connect (p_win, "destroy", gtk_main_quit, NULL);
p_vbox = gtk_vbox_new (FALSE, 5);
gtk_container_add (GTK_CONTAINER (p_win), p_vbox);
p_text = gtk_text_view_new ();
p_btn = gtk_button_new_with_label ("Envoyer...");
gtk_box_pack_start (GTK_BOX (p_vbox), p_text, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (p_vbox), p_btn, TRUE, TRUE, 0);
g_signal_connect (G_OBJECT (p_btn), "clicked", G_CALLBACK (cb), p_text);
gtk_widget_show_all (p_win);
gtk_main ();
return EXIT_SUCCESS;
} |
Partager