Listing 1: Gtk+ sample application

#include <gtk/gtk.h>

void
MyExitApp (GtkWidget *widget, gpointer data)
{
  exit(0);
}

int 
main( int argc, char *argv[] )
{
  GtkWidget *dialog, *label, *button;

  gtk_init( &argc, &argv );
  dialog = gtk_dialog_new();

  gtk_signal_connect (GTK_OBJECT(dialog), "destroy",
    GTK_SIGNAL_FUNC(MyExitApp), NULL);

  gtk_widget_set_usize( dialog, 214, 117 );
  gtk_window_set_policy( GTK_WINDOW( dialog ), FALSE, FALSE, FALSE);

  gtk_window_set_title( GTK_WINDOW( dialog ), "Alert" );

  gtk_container_set_border_width (GTK_CONTAINER (dialog), 0);
  label = gtk_label_new("You have new mail!");
  gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),
    label, TRUE, TRUE, 0);

  button = gtk_button_new_with_label ("OK");
  gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
    GTK_SIGNAL_FUNC(MyExitApp), GTK_OBJECT (dialog));

  GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
    button, FALSE, FALSE, 0);
  gtk_widget_grab_default (button);

  gtk_widget_show_all( dialog );

  gtk_main();
}
— End of Listing —