#include static int result; static void push_button_clicked (GtkWidget *window) { static int my_result = 42; result = my_result++; gtk_widget_destroy (window); gtk_main_quit(); } static void pop_button_clicked (void) { GtkWidget *win; GtkWidget *button; win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_modal (GTK_WINDOW (win), TRUE); button = gtk_button_new_with_label ("Push"); gtk_container_add (GTK_CONTAINER (win), button); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (push_button_clicked), GTK_OBJECT (win)); gtk_widget_show_all (win); gtk_main (); g_print ("result is now %d\n", result); } int main (int argc, char *argv[]) { GtkWidget *win; GtkWidget *button; gtk_init (&argc, &argv); win = gtk_window_new (GTK_WINDOW_TOPLEVEL); button = gtk_button_new_with_label ("Pop"); gtk_container_add (GTK_CONTAINER (win), button); gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (pop_button_clicked), NULL); gtk_widget_show_all (win); gtk_main (); return 0; }