[project @ 2005-12-09 11:35:44 by simonmar]
[ghc-hetmet.git] / ghc / rts / VisWindow.c
index f3ee96f..188b889 100644 (file)
@@ -10,6 +10,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
+#include <stdio.h>
 
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
 #include "VisWindow.h"
 #include "VisSupport.h"
 
+#define GLADE_HOOKUP_OBJECT(component,widget,name) \
+  g_object_set_data_full (G_OBJECT (component), name, \
+    gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
+
+#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
+  g_object_set_data (G_OBJECT (component), name, widget)
+
 GtkWidget*
 create_GHC_Front_Panel (void)
 {
@@ -30,6 +38,7 @@ create_GHC_Front_Panel (void)
   GtkWidget *label40;
   GtkWidget *map_ruler;
   GtkWidget *memmap;
+  GtkWidget *label1;
   GtkWidget *frame8;
   GtkWidget *vbox14;
   GtkWidget *table4;
@@ -37,6 +46,7 @@ create_GHC_Front_Panel (void)
   GtkWidget *gen_hbox;
   GtkWidget *generations;
   GtkWidget *label39;
+  GtkWidget *label41;
   GtkWidget *frame7;
   GtkWidget *table3;
   GtkWidget *res_hruler;
@@ -44,6 +54,7 @@ create_GHC_Front_Panel (void)
   GtkWidget *res_drawingarea;
   GtkWidget *label37;
   GtkWidget *label38;
+  GtkWidget *label42;
   GtkWidget *vbox5;
   GtkWidget *frame5;
   GtkWidget *vbox6;
@@ -60,6 +71,7 @@ create_GHC_Front_Panel (void)
   GtkWidget *allocated_label;
   GtkWidget *footprint_label;
   GtkWidget *alloc_rate_label;
+  GtkWidget *label43;
   GtkWidget *frame9;
   GtkWidget *table5;
   GtkWidget *label20;
@@ -80,108 +92,92 @@ create_GHC_Front_Panel (void)
   GtkWidget *hseparator2;
   GtkWidget *label35;
   GtkWidget *total_label;
+  GtkWidget *label44;
   GtkWidget *frame6;
   GtkWidget *vbox7;
   GtkWidget *vbox9;
-  GSList *grp1_group = NULL;
   GtkWidget *cont_radio;
+  GSList *cont_radio_group = NULL;
   GtkWidget *stop_before_radio;
   GtkWidget *stop_after_radio;
   GtkWidget *stop_both_radio;
   GtkWidget *vbox8;
   GtkWidget *stop_but;
   GtkWidget *continue_but;
+  GtkWidget *label45;
   GtkWidget *quit_but;
   GtkWidget *statusbar;
 
   GHC_Front_Panel = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_object_set_data (GTK_OBJECT (GHC_Front_Panel), "GHC_Front_Panel", GHC_Front_Panel);
+  gtk_widget_set_name (GHC_Front_Panel, "GHC_Front_Panel");
   gtk_window_set_title (GTK_WINDOW (GHC_Front_Panel), "GHC Front Panel");
   gtk_window_set_default_size (GTK_WINDOW (GHC_Front_Panel), 450, 600);
 
   vbox1 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox1);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox1", vbox1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox1, "vbox1");
   gtk_widget_show (vbox1);
   gtk_container_add (GTK_CONTAINER (GHC_Front_Panel), vbox1);
 
   hbox1 = gtk_hbox_new (FALSE, 10);
-  gtk_widget_ref (hbox1);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hbox1", hbox1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hbox1, "hbox1");
   gtk_widget_show (hbox1);
   gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
   gtk_container_set_border_width (GTK_CONTAINER (hbox1), 10);
 
   vbox4 = gtk_vbox_new (FALSE, 10);
-  gtk_widget_ref (vbox4);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox4", vbox4,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox4, "vbox4");
   gtk_widget_show (vbox4);
   gtk_box_pack_start (GTK_BOX (hbox1), vbox4, TRUE, TRUE, 0);
 
-  frame3 = gtk_frame_new ("Memory Map");
-  gtk_widget_ref (frame3);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame3", frame3,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  frame3 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame3, "frame3");
   gtk_widget_show (frame3);
   gtk_box_pack_start (GTK_BOX (vbox4), frame3, TRUE, TRUE, 0);
 
   hbox3 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox3);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hbox3", hbox3,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hbox3, "hbox3");
   gtk_widget_show (hbox3);
   gtk_container_add (GTK_CONTAINER (frame3), hbox3);
 
   label40 = gtk_label_new ("Mb");
-  gtk_widget_ref (label40);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label40", label40,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label40, "label40");
   gtk_widget_show (label40);
   gtk_box_pack_start (GTK_BOX (hbox3), label40, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (label40), GTK_JUSTIFY_CENTER);
 
   map_ruler = gtk_vruler_new ();
-  gtk_widget_ref (map_ruler);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "map_ruler", map_ruler,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (map_ruler, "map_ruler");
   gtk_widget_show (map_ruler);
   gtk_box_pack_start (GTK_BOX (hbox3), map_ruler, FALSE, FALSE, 0);
-  gtk_ruler_set_range (GTK_RULER (map_ruler), 0, 10, 5.18797, 10);
+  gtk_ruler_set_range (GTK_RULER (map_ruler), 0, 10, 1.40845, 10);
 
   memmap = gtk_drawing_area_new ();
-  gtk_widget_ref (memmap);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "memmap", memmap,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (memmap, "memmap");
   gtk_widget_show (memmap);
   gtk_box_pack_start (GTK_BOX (hbox3), memmap, TRUE, TRUE, 0);
 
-  frame8 = gtk_frame_new ("Generations");
-  gtk_widget_ref (frame8);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame8", frame8,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  label1 = gtk_label_new ("Memory Map");
+  gtk_widget_set_name (label1, "label1");
+  gtk_widget_show (label1);
+  gtk_frame_set_label_widget (GTK_FRAME (frame3), label1);
+
+  frame8 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame8, "frame8");
   gtk_widget_show (frame8);
   gtk_box_pack_start (GTK_BOX (vbox4), frame8, TRUE, TRUE, 0);
 
   vbox14 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox14);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox14", vbox14,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox14, "vbox14");
   gtk_widget_show (vbox14);
   gtk_container_add (GTK_CONTAINER (frame8), vbox14);
 
   table4 = gtk_table_new (2, 3, FALSE);
-  gtk_widget_ref (table4);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table4", table4,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (table4, "table4");
   gtk_widget_show (table4);
   gtk_box_pack_start (GTK_BOX (vbox14), table4, TRUE, TRUE, 0);
 
   gen_ruler = gtk_vruler_new ();
-  gtk_widget_ref (gen_ruler);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "gen_ruler", gen_ruler,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (gen_ruler, "gen_ruler");
   gtk_widget_show (gen_ruler);
   gtk_table_attach (GTK_TABLE (table4), gen_ruler, 1, 2, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
@@ -189,51 +185,45 @@ create_GHC_Front_Panel (void)
   gtk_ruler_set_range (GTK_RULER (gen_ruler), 0, 10, 1.69935, 10);
 
   gen_hbox = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (gen_hbox);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "gen_hbox", gen_hbox,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (gen_hbox, "gen_hbox");
   gtk_widget_show (gen_hbox);
   gtk_table_attach (GTK_TABLE (table4), gen_hbox, 2, 3, 1, 2,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (GTK_FILL), 0, 0);
 
   generations = gtk_drawing_area_new ();
-  gtk_widget_ref (generations);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "generations", generations,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (generations, "generations");
   gtk_widget_show (generations);
   gtk_table_attach (GTK_TABLE (table4), generations, 2, 3, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_FILL), 0, 0);
 
   label39 = gtk_label_new ("Mb");
-  gtk_widget_ref (label39);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label39", label39,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label39, "label39");
   gtk_widget_show (label39);
   gtk_table_attach (GTK_TABLE (table4), label39, 0, 1, 0, 1,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label39), GTK_JUSTIFY_CENTER);
+
+  label41 = gtk_label_new ("Generations");
+  gtk_widget_set_name (label41, "label41");
+  gtk_widget_show (label41);
+  gtk_frame_set_label_widget (GTK_FRAME (frame8), label41);
 
-  frame7 = gtk_frame_new ("Residency");
-  gtk_widget_ref (frame7);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame7", frame7,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  frame7 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame7, "frame7");
   gtk_widget_show (frame7);
   gtk_box_pack_start (GTK_BOX (vbox4), frame7, TRUE, TRUE, 0);
 
   table3 = gtk_table_new (3, 3, FALSE);
-  gtk_widget_ref (table3);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table3", table3,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (table3, "table3");
   gtk_widget_show (table3);
   gtk_container_add (GTK_CONTAINER (frame7), table3);
   gtk_container_set_border_width (GTK_CONTAINER (table3), 2);
 
   res_hruler = gtk_hruler_new ();
-  gtk_widget_ref (res_hruler);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "res_hruler", res_hruler,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (res_hruler, "res_hruler");
   gtk_widget_show (res_hruler);
   gtk_table_attach (GTK_TABLE (table3), res_hruler, 2, 3, 1, 2,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
@@ -241,9 +231,7 @@ create_GHC_Front_Panel (void)
   gtk_ruler_set_range (GTK_RULER (res_hruler), 0, 10, 8.35443, 10);
 
   res_vruler = gtk_vruler_new ();
-  gtk_widget_ref (res_vruler);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "res_vruler", res_vruler,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (res_vruler, "res_vruler");
   gtk_widget_show (res_vruler);
   gtk_table_attach (GTK_TABLE (table3), res_vruler, 1, 2, 2, 3,
                     (GtkAttachOptions) (GTK_FILL),
@@ -251,66 +239,57 @@ create_GHC_Front_Panel (void)
   gtk_ruler_set_range (GTK_RULER (res_vruler), 0, 10, 9.69925, 10);
 
   res_drawingarea = gtk_drawing_area_new ();
-  gtk_widget_ref (res_drawingarea);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "res_drawingarea", res_drawingarea,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (res_drawingarea, "res_drawingarea");
   gtk_widget_show (res_drawingarea);
   gtk_table_attach (GTK_TABLE (table3), res_drawingarea, 2, 3, 2, 3,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_FILL), 0, 0);
 
   label37 = gtk_label_new ("Secs");
-  gtk_widget_ref (label37);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label37", label37,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label37, "label37");
   gtk_widget_show (label37);
   gtk_table_attach (GTK_TABLE (table3), label37, 2, 3, 0, 1,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label37), GTK_JUSTIFY_CENTER);
 
   label38 = gtk_label_new ("Mb");
-  gtk_widget_ref (label38);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label38", label38,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label38, "label38");
   gtk_widget_show (label38);
   gtk_table_attach (GTK_TABLE (table3), label38, 0, 1, 2, 3,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label38), GTK_JUSTIFY_CENTER);
+
+  label42 = gtk_label_new ("Residency");
+  gtk_widget_set_name (label42, "label42");
+  gtk_widget_show (label42);
+  gtk_frame_set_label_widget (GTK_FRAME (frame7), label42);
 
   vbox5 = gtk_vbox_new (FALSE, 10);
-  gtk_widget_ref (vbox5);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox5", vbox5,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox5, "vbox5");
   gtk_widget_show (vbox5);
   gtk_box_pack_end (GTK_BOX (hbox1), vbox5, FALSE, FALSE, 0);
 
-  frame5 = gtk_frame_new ("Stats");
-  gtk_widget_ref (frame5);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame5", frame5,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  frame5 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame5, "frame5");
   gtk_widget_show (frame5);
   gtk_box_pack_start (GTK_BOX (vbox5), frame5, FALSE, TRUE, 0);
 
   vbox6 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox6);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox6", vbox6,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox6, "vbox6");
   gtk_widget_show (vbox6);
   gtk_container_add (GTK_CONTAINER (frame5), vbox6);
   gtk_container_set_border_width (GTK_CONTAINER (vbox6), 5);
 
   table1 = gtk_table_new (4, 3, FALSE);
-  gtk_widget_ref (table1);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table1", table1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (table1, "table1");
   gtk_widget_show (table1);
   gtk_box_pack_start (GTK_BOX (vbox6), table1, TRUE, TRUE, 0);
   gtk_table_set_col_spacings (GTK_TABLE (table1), 7);
 
   label12 = gtk_label_new ("Allocated");
-  gtk_widget_ref (label12);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label12", label12,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label12, "label12");
   gtk_widget_show (label12);
   gtk_table_attach (GTK_TABLE (table1), label12, 0, 1, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
@@ -319,9 +298,7 @@ create_GHC_Front_Panel (void)
   gtk_misc_set_alignment (GTK_MISC (label12), 1, 0.5);
 
   label13 = gtk_label_new ("Live");
-  gtk_widget_ref (label13);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label13", label13,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label13, "label13");
   gtk_widget_show (label13);
   gtk_table_attach (GTK_TABLE (table1), label13, 0, 1, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
@@ -330,9 +307,7 @@ create_GHC_Front_Panel (void)
   gtk_misc_set_alignment (GTK_MISC (label13), 1, 0.5);
 
   label14 = gtk_label_new ("Allocation Rate");
-  gtk_widget_ref (label14);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label14", label14,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label14, "label14");
   gtk_widget_show (label14);
   gtk_table_attach (GTK_TABLE (table1), label14, 0, 1, 3, 4,
                     (GtkAttachOptions) (0),
@@ -340,10 +315,8 @@ create_GHC_Front_Panel (void)
   gtk_label_set_justify (GTK_LABEL (label14), GTK_JUSTIFY_RIGHT);
   gtk_misc_set_alignment (GTK_MISC (label14), 1, 0.5);
 
-  label15 = gtk_label_new ("Footprint");
-  gtk_widget_ref (label15);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label15", label15,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  label15 = gtk_label_new ("\t\tFootprint");
+  gtk_widget_set_name (label15, "label15");
   gtk_widget_show (label15);
   gtk_table_attach (GTK_TABLE (table1), label15, 0, 1, 2, 3,
                     (GtkAttachOptions) (GTK_FILL),
@@ -352,386 +325,422 @@ create_GHC_Front_Panel (void)
   gtk_misc_set_alignment (GTK_MISC (label15), 1, 0.5);
 
   label16 = gtk_label_new ("M/sec");
-  gtk_widget_ref (label16);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label16", label16,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label16, "label16");
   gtk_widget_show (label16);
   gtk_table_attach (GTK_TABLE (table1), label16, 2, 3, 3, 4,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label16), GTK_JUSTIFY_CENTER);
 
   label17 = gtk_label_new ("M");
-  gtk_widget_ref (label17);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label17", label17,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label17, "label17");
   gtk_widget_show (label17);
   gtk_table_attach (GTK_TABLE (table1), label17, 2, 3, 2, 3,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (label17), 7.45058e-09, 0.5);
 
   label18 = gtk_label_new ("M");
-  gtk_widget_ref (label18);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label18", label18,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label18, "label18");
   gtk_widget_show (label18);
   gtk_table_attach (GTK_TABLE (table1), label18, 2, 3, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label18), 7.45058e-09, 0.5);
 
   label19 = gtk_label_new ("M");
-  gtk_widget_ref (label19);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label19", label19,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label19, "label19");
   gtk_widget_show (label19);
   gtk_table_attach (GTK_TABLE (table1), label19, 2, 3, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label19), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label19), 7.45058e-09, 0.5);
 
   live_label = gtk_label_new ("");
-  gtk_widget_ref (live_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "live_label", live_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (live_label, "live_label");
   gtk_widget_show (live_label);
   gtk_table_attach (GTK_TABLE (table1), live_label, 1, 2, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_widget_set_usize (live_label, 70, -2);
+  gtk_label_set_justify (GTK_LABEL (live_label), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (live_label), 1, 0.5);
 
   allocated_label = gtk_label_new ("");
-  gtk_widget_ref (allocated_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "allocated_label", allocated_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (allocated_label, "allocated_label");
   gtk_widget_show (allocated_label);
   gtk_table_attach (GTK_TABLE (table1), allocated_label, 1, 2, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_widget_set_usize (allocated_label, 70, -2);
+  gtk_label_set_justify (GTK_LABEL (allocated_label), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (allocated_label), 1, 0.5);
 
   footprint_label = gtk_label_new ("");
-  gtk_widget_ref (footprint_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "footprint_label", footprint_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (footprint_label, "footprint_label");
   gtk_widget_show (footprint_label);
   gtk_table_attach (GTK_TABLE (table1), footprint_label, 1, 2, 2, 3,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_widget_set_usize (footprint_label, 70, -2);
+  gtk_label_set_justify (GTK_LABEL (footprint_label), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (footprint_label), 1, 0.5);
 
   alloc_rate_label = gtk_label_new ("");
-  gtk_widget_ref (alloc_rate_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "alloc_rate_label", alloc_rate_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (alloc_rate_label, "alloc_rate_label");
   gtk_widget_show (alloc_rate_label);
   gtk_table_attach (GTK_TABLE (table1), alloc_rate_label, 1, 2, 3, 4,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_widget_set_usize (alloc_rate_label, 70, -2);
+  gtk_label_set_justify (GTK_LABEL (alloc_rate_label), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (alloc_rate_label), 1, 0.5);
 
-  frame9 = gtk_frame_new ("Threads");
-  gtk_widget_ref (frame9);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame9", frame9,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  label43 = gtk_label_new ("Stats");
+  gtk_widget_set_name (label43, "label43");
+  gtk_widget_show (label43);
+  gtk_frame_set_label_widget (GTK_FRAME (frame5), label43);
+
+  frame9 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame9, "frame9");
   gtk_widget_show (frame9);
   gtk_box_pack_start (GTK_BOX (vbox5), frame9, FALSE, TRUE, 0);
 
   table5 = gtk_table_new (9, 2, FALSE);
-  gtk_widget_ref (table5);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table5", table5,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (table5, "table5");
   gtk_widget_show (table5);
   gtk_container_add (GTK_CONTAINER (frame9), table5);
   gtk_container_set_border_width (GTK_CONTAINER (table5), 6);
   gtk_table_set_col_spacings (GTK_TABLE (table5), 10);
 
   label20 = gtk_label_new ("Running");
-  gtk_widget_ref (label20);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label20", label20,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label20, "label20");
   gtk_widget_show (label20);
   gtk_table_attach (GTK_TABLE (table5), label20, 0, 1, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label20), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label20), 1, 0.5);
 
   label21 = gtk_label_new ("Blocked on I/O (Read)");
-  gtk_widget_ref (label21);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label21", label21,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label21, "label21");
   gtk_widget_show (label21);
   gtk_table_attach (GTK_TABLE (table5), label21, 0, 1, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label21), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label21), 1, 0.5);
 
   label22 = gtk_label_new ("Blocked on MVar");
-  gtk_widget_ref (label22);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label22", label22,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label22, "label22");
   gtk_widget_show (label22);
   gtk_table_attach (GTK_TABLE (table5), label22, 0, 1, 3, 4,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label22), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label22), 1, 0.5);
 
   label24 = gtk_label_new ("Blocked on throwTo");
-  gtk_widget_ref (label24);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label24", label24,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label24, "label24");
   gtk_widget_show (label24);
   gtk_table_attach (GTK_TABLE (table5), label24, 0, 1, 4, 5,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label24), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label24), 1, 0.5);
 
   label26 = gtk_label_new ("Blocked on Black Hole");
-  gtk_widget_ref (label26);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label26", label26,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label26, "label26");
   gtk_widget_show (label26);
   gtk_table_attach (GTK_TABLE (table5), label26, 0, 1, 5, 6,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label26), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label26), 1, 0.5);
 
   label25 = gtk_label_new ("Sleeping");
-  gtk_widget_ref (label25);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label25", label25,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label25, "label25");
   gtk_widget_show (label25);
   gtk_table_attach (GTK_TABLE (table5), label25, 0, 1, 6, 7,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label25), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label25), 1, 0.5);
 
   label27 = gtk_label_new ("Blocked on I/O (Write)");
-  gtk_widget_ref (label27);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label27", label27,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label27, "label27");
   gtk_widget_show (label27);
   gtk_table_attach (GTK_TABLE (table5), label27, 0, 1, 2, 3,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label27), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label27), 1, 0.5);
 
   running_label = gtk_label_new ("label28");
-  gtk_widget_ref (running_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "running_label", running_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (running_label, "running_label");
   gtk_widget_show (running_label);
   gtk_table_attach (GTK_TABLE (table5), running_label, 1, 2, 0, 1,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (running_label), GTK_JUSTIFY_CENTER);
 
   blockread_label = gtk_label_new ("label29");
-  gtk_widget_ref (blockread_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockread_label", blockread_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (blockread_label, "blockread_label");
   gtk_widget_show (blockread_label);
   gtk_table_attach (GTK_TABLE (table5), blockread_label, 1, 2, 1, 2,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (blockread_label), GTK_JUSTIFY_CENTER);
 
   blockwrite_label = gtk_label_new ("label30");
-  gtk_widget_ref (blockwrite_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockwrite_label", blockwrite_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (blockwrite_label, "blockwrite_label");
   gtk_widget_show (blockwrite_label);
   gtk_table_attach (GTK_TABLE (table5), blockwrite_label, 1, 2, 2, 3,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (blockwrite_label), GTK_JUSTIFY_CENTER);
 
   blockmvar_label = gtk_label_new ("label31");
-  gtk_widget_ref (blockmvar_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockmvar_label", blockmvar_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (blockmvar_label, "blockmvar_label");
   gtk_widget_show (blockmvar_label);
   gtk_table_attach (GTK_TABLE (table5), blockmvar_label, 1, 2, 3, 4,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (blockmvar_label), GTK_JUSTIFY_CENTER);
 
   blockthrowto_label = gtk_label_new ("label32");
-  gtk_widget_ref (blockthrowto_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockthrowto_label", blockthrowto_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (blockthrowto_label, "blockthrowto_label");
   gtk_widget_show (blockthrowto_label);
   gtk_table_attach (GTK_TABLE (table5), blockthrowto_label, 1, 2, 4, 5,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (blockthrowto_label), GTK_JUSTIFY_CENTER);
 
   blockbh_label = gtk_label_new ("label33");
-  gtk_widget_ref (blockbh_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockbh_label", blockbh_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (blockbh_label, "blockbh_label");
   gtk_widget_show (blockbh_label);
   gtk_table_attach (GTK_TABLE (table5), blockbh_label, 1, 2, 5, 6,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (blockbh_label), GTK_JUSTIFY_CENTER);
 
   sleeping_label = gtk_label_new ("label34");
-  gtk_widget_ref (sleeping_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "sleeping_label", sleeping_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (sleeping_label, "sleeping_label");
   gtk_widget_show (sleeping_label);
   gtk_table_attach (GTK_TABLE (table5), sleeping_label, 1, 2, 6, 7,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (sleeping_label), GTK_JUSTIFY_CENTER);
 
   hseparator1 = gtk_hseparator_new ();
-  gtk_widget_ref (hseparator1);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hseparator1", hseparator1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hseparator1, "hseparator1");
   gtk_widget_show (hseparator1);
   gtk_table_attach (GTK_TABLE (table5), hseparator1, 0, 1, 7, 8,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
   hseparator2 = gtk_hseparator_new ();
-  gtk_widget_ref (hseparator2);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hseparator2", hseparator2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hseparator2, "hseparator2");
   gtk_widget_show (hseparator2);
   gtk_table_attach (GTK_TABLE (table5), hseparator2, 1, 2, 7, 8,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_FILL), 0, 0);
 
   label35 = gtk_label_new ("Total");
-  gtk_widget_ref (label35);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label35", label35,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label35, "label35");
   gtk_widget_show (label35);
   gtk_table_attach (GTK_TABLE (table5), label35, 0, 1, 8, 9,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label35), GTK_JUSTIFY_CENTER);
   gtk_misc_set_alignment (GTK_MISC (label35), 1, 0.5);
 
   total_label = gtk_label_new ("label36");
-  gtk_widget_ref (total_label);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "total_label", total_label,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (total_label, "total_label");
   gtk_widget_show (total_label);
   gtk_table_attach (GTK_TABLE (table5), total_label, 1, 2, 8, 9,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (total_label), GTK_JUSTIFY_CENTER);
 
-  frame6 = gtk_frame_new ("Updates");
-  gtk_widget_ref (frame6);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame6", frame6,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  label44 = gtk_label_new ("Threads");
+  gtk_widget_set_name (label44, "label44");
+  gtk_widget_show (label44);
+  gtk_frame_set_label_widget (GTK_FRAME (frame9), label44);
+
+  frame6 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame6, "frame6");
   gtk_widget_show (frame6);
   gtk_box_pack_start (GTK_BOX (vbox5), frame6, FALSE, FALSE, 0);
 
   vbox7 = gtk_vbox_new (FALSE, 10);
-  gtk_widget_ref (vbox7);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox7", vbox7,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox7, "vbox7");
   gtk_widget_show (vbox7);
   gtk_container_add (GTK_CONTAINER (frame6), vbox7);
   gtk_container_set_border_width (GTK_CONTAINER (vbox7), 5);
 
   vbox9 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox9);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox9", vbox9,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox9, "vbox9");
   gtk_widget_show (vbox9);
   gtk_box_pack_start (GTK_BOX (vbox7), vbox9, TRUE, TRUE, 0);
 
-  cont_radio = gtk_radio_button_new_with_label (grp1_group, "Continuous");
-  grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cont_radio));
-  gtk_widget_ref (cont_radio);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "cont_radio", cont_radio,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  cont_radio = gtk_radio_button_new_with_mnemonic (NULL, "Continuous");
+  gtk_widget_set_name (cont_radio, "cont_radio");
   gtk_widget_show (cont_radio);
   gtk_box_pack_start (GTK_BOX (vbox9), cont_radio, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (cont_radio), cont_radio_group);
+  cont_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (cont_radio));
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cont_radio), TRUE);
 
-  stop_before_radio = gtk_radio_button_new_with_label (grp1_group, "Stop before GC");
-  grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stop_before_radio));
-  gtk_widget_ref (stop_before_radio);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_before_radio", stop_before_radio,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  stop_before_radio = gtk_radio_button_new_with_mnemonic (NULL, "Stop before GC");
+  gtk_widget_set_name (stop_before_radio, "stop_before_radio");
   gtk_widget_show (stop_before_radio);
   gtk_box_pack_start (GTK_BOX (vbox9), stop_before_radio, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (stop_before_radio), cont_radio_group);
+  cont_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (stop_before_radio));
 
-  stop_after_radio = gtk_radio_button_new_with_label (grp1_group, "Stop after GC");
-  grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stop_after_radio));
-  gtk_widget_ref (stop_after_radio);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_after_radio", stop_after_radio,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  stop_after_radio = gtk_radio_button_new_with_mnemonic (NULL, "Stop after GC");
+  gtk_widget_set_name (stop_after_radio, "stop_after_radio");
   gtk_widget_show (stop_after_radio);
   gtk_box_pack_start (GTK_BOX (vbox9), stop_after_radio, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (stop_after_radio), cont_radio_group);
+  cont_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (stop_after_radio));
 
-  stop_both_radio = gtk_radio_button_new_with_label (grp1_group, "Stop before & after GC");
-  grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stop_both_radio));
-  gtk_widget_ref (stop_both_radio);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_both_radio", stop_both_radio,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  stop_both_radio = gtk_radio_button_new_with_mnemonic (NULL, "Stop before & after GC");
+  gtk_widget_set_name (stop_both_radio, "stop_both_radio");
   gtk_widget_show (stop_both_radio);
   gtk_box_pack_start (GTK_BOX (vbox9), stop_both_radio, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (stop_both_radio), cont_radio_group);
+  cont_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (stop_both_radio));
 
   vbox8 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox8);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox8", vbox8,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox8, "vbox8");
   gtk_widget_show (vbox8);
   gtk_box_pack_start (GTK_BOX (vbox7), vbox8, FALSE, FALSE, 0);
 
-  stop_but = gtk_button_new_with_label ("Stop");
-  gtk_widget_ref (stop_but);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_but", stop_but,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  stop_but = gtk_button_new_with_mnemonic ("Stop");
+  gtk_widget_set_name (stop_but, "stop_but");
   gtk_widget_show (stop_but);
   gtk_box_pack_start (GTK_BOX (vbox8), stop_but, FALSE, FALSE, 0);
 
-  continue_but = gtk_button_new_with_label ("Continue");
-  gtk_widget_ref (continue_but);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "continue_but", continue_but,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  continue_but = gtk_button_new_with_mnemonic ("Continue");
+  gtk_widget_set_name (continue_but, "continue_but");
   gtk_widget_show (continue_but);
   gtk_box_pack_start (GTK_BOX (vbox8), continue_but, FALSE, FALSE, 0);
 
-  quit_but = gtk_button_new_with_label ("Quit");
-  gtk_widget_ref (quit_but);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "quit_but", quit_but,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  label45 = gtk_label_new ("Updates");
+  gtk_widget_set_name (label45, "label45");
+  gtk_widget_show (label45);
+  gtk_frame_set_label_widget (GTK_FRAME (frame6), label45);
+
+  quit_but = gtk_button_new_with_mnemonic ("Quit");
+  gtk_widget_set_name (quit_but, "quit_but");
   gtk_widget_show (quit_but);
   gtk_box_pack_end (GTK_BOX (vbox5), quit_but, FALSE, FALSE, 0);
 
   statusbar = gtk_statusbar_new ();
-  gtk_widget_ref (statusbar);
-  gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "statusbar", statusbar,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (statusbar, "statusbar");
   gtk_widget_show (statusbar);
   gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);
 
-  gtk_signal_connect (GTK_OBJECT (cont_radio), "clicked",
-                      GTK_SIGNAL_FUNC (on_cont_radio_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (stop_before_radio), "clicked",
-                      GTK_SIGNAL_FUNC (on_stop_before_radio_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (stop_after_radio), "clicked",
-                      GTK_SIGNAL_FUNC (on_stop_after_radio_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (stop_both_radio), "clicked",
-                      GTK_SIGNAL_FUNC (on_stop_both_radio_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (stop_but), "clicked",
-                      GTK_SIGNAL_FUNC (on_stop_but_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (continue_but), "clicked",
-                      GTK_SIGNAL_FUNC (on_continue_but_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (quit_but), "clicked",
-                      GTK_SIGNAL_FUNC (on_quit_but_clicked),
-                      NULL);
+  g_signal_connect ((gpointer) cont_radio, "clicked",
+                    G_CALLBACK (on_cont_radio_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) stop_before_radio, "clicked",
+                    G_CALLBACK (on_stop_before_radio_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) stop_after_radio, "clicked",
+                    G_CALLBACK (on_stop_after_radio_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) stop_both_radio, "clicked",
+                    G_CALLBACK (on_stop_both_radio_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) stop_but, "clicked",
+                    G_CALLBACK (on_stop_but_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) continue_but, "clicked",
+                    G_CALLBACK (on_continue_but_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) quit_but, "clicked",
+                    G_CALLBACK (on_quit_but_clicked),
+                    NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (GHC_Front_Panel, GHC_Front_Panel, "GHC_Front_Panel");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox1, "vbox1");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, hbox1, "hbox1");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox4, "vbox4");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, frame3, "frame3");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, hbox3, "hbox3");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label40, "label40");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, map_ruler, "map_ruler");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, memmap, "memmap");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label1, "label1");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, frame8, "frame8");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox14, "vbox14");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, table4, "table4");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, gen_ruler, "gen_ruler");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, gen_hbox, "gen_hbox");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, generations, "generations");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label39, "label39");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label41, "label41");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, frame7, "frame7");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, table3, "table3");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, res_hruler, "res_hruler");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, res_vruler, "res_vruler");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, res_drawingarea, "res_drawingarea");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label37, "label37");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label38, "label38");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label42, "label42");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox5, "vbox5");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, frame5, "frame5");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox6, "vbox6");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, table1, "table1");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label12, "label12");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label13, "label13");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label14, "label14");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label15, "label15");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label16, "label16");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label17, "label17");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label18, "label18");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label19, "label19");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, live_label, "live_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, allocated_label, "allocated_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, footprint_label, "footprint_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, alloc_rate_label, "alloc_rate_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label43, "label43");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, frame9, "frame9");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, table5, "table5");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label20, "label20");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label21, "label21");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label22, "label22");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label24, "label24");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label26, "label26");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label25, "label25");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label27, "label27");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, running_label, "running_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, blockread_label, "blockread_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, blockwrite_label, "blockwrite_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, blockmvar_label, "blockmvar_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, blockthrowto_label, "blockthrowto_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, blockbh_label, "blockbh_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, sleeping_label, "sleeping_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, hseparator1, "hseparator1");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, hseparator2, "hseparator2");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label35, "label35");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, total_label, "total_label");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label44, "label44");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, frame6, "frame6");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox7, "vbox7");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox9, "vbox9");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, cont_radio, "cont_radio");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, stop_before_radio, "stop_before_radio");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, stop_after_radio, "stop_after_radio");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, stop_both_radio, "stop_both_radio");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, vbox8, "vbox8");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, stop_but, "stop_but");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, continue_but, "continue_but");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, label45, "label45");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, quit_but, "quit_but");
+  GLADE_HOOKUP_OBJECT (GHC_Front_Panel, statusbar, "statusbar");
 
   return GHC_Front_Panel;
 }