--- gui_main.c.orig Sat Jun 16 04:20:21 2001 +++ gui_main.c Sat Jun 16 04:30:41 2001 @@ -134,7 +134,11 @@ static gint show_info_popup(GtkWidget *w, GdkEventButton *ev); static gint timer_callback(gpointer data); - +/* main window "Really want to quit?" dialog callbacks */ +static gboolean main_window_delete_event(GtkWidget *widget, GdkEvent *event, gpointer user_data); +static void main_window_delete_yes_callback(GtkWidget *widget, gpointer user_data); +static void main_window_delete_no_callback(GtkWidget *widget, gpointer user_data); + /************************************************************************** Print extra usage information, including one line help on each option, to stderr. @@ -165,6 +169,24 @@ } +static void main_window_delete_yes_callback(GtkWidget *widget, gpointer user_data) { + gtk_main_quit(); +} + +static void main_window_delete_no_callback(GtkWidget *widget, gpointer user_data) { + destroy_message_dialog(widget); +} + +static gboolean main_window_delete_event(GtkWidget *widget, GdkEvent *event, gpointer user_data) { + + popup_message_dialog(widget, _("Quit"), _("Are you sure you want to quit?"), + _("Yes"), main_window_delete_yes_callback, 0, + _("No"), main_window_delete_no_callback, 0, + 0); + + return gtk_true(); +} + /************************************************************************** ... **************************************************************************/ @@ -665,7 +687,7 @@ init_color_system(); gtk_signal_connect( GTK_OBJECT(toplevel),"delete_event", - GTK_SIGNAL_FUNC(gtk_main_quit),NULL ); + GTK_SIGNAL_FUNC(main_window_delete_event),NULL ); gtk_window_set_title (GTK_WINDOW (toplevel), _("Freeciv"));