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
| #include <gtk/gtk.h>
gboolean routine_quit (GtkWidget *widget,
GdkEvent *event,
gpointer user_data);
int main (int argc, char **argv)
{
GtkWidget *fenetre;
gtk_init (&argc, &argv);
fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (fenetre), "Test");
gtk_window_set_default_size(GTK_WINDOW(fenetre), 640, 480);
g_signal_connect (G_OBJECT(fenetre), "delete-event",
G_CALLBACK (routine_quit), NULL);
gtk_widget_show_all(fenetre);
gtk_main ();
return 0;
}
gboolean routine_quit (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
GtkWidget *demande_fermeture;
GtkResponseType reponse_fermeture;
demande_fermeture=gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
"Etes-vous sur de vouloir quitter ?");
gtk_window_set_title (GTK_WINDOW (demande_fermeture), "Confirmation");
gtk_window_set_modal(GTK_WINDOW(demande_fermeture), TRUE);
reponse_fermeture=gtk_dialog_run(GTK_DIALOG (demande_fermeture));
gtk_widget_destroy(demande_fermeture);
if (reponse_fermeture==GTK_RESPONSE_YES)
{
gtk_main_quit();
}
else
{
g_print("Sortie annulée\n"); /*ne fait rien mais evite le dysfinctionnement */
}
return TRUE;
} |
Partager