[project @ 2004-02-12 02:04:59 by mthomas]
[ghc-hetmet.git] / ghc / rts / VisWindow.c
1 /*
2  * DO NOT EDIT THIS FILE - it is generated by Glade.
3  */
4
5 #ifdef HAVE_CONFIG_H
6 #  include <config.h>
7 #endif
8
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <string.h>
13
14 #include <gdk/gdkkeysyms.h>
15 #include <gtk/gtk.h>
16
17 #include "VisCallbacks.h"
18 #include "VisWindow.h"
19 #include "VisSupport.h"
20
21 GtkWidget*
22 create_GHC_Front_Panel (void)
23 {
24   GtkWidget *GHC_Front_Panel;
25   GtkWidget *vbox1;
26   GtkWidget *hbox1;
27   GtkWidget *vbox4;
28   GtkWidget *frame3;
29   GtkWidget *hbox3;
30   GtkWidget *label40;
31   GtkWidget *map_ruler;
32   GtkWidget *memmap;
33   GtkWidget *frame8;
34   GtkWidget *vbox14;
35   GtkWidget *table4;
36   GtkWidget *gen_ruler;
37   GtkWidget *gen_hbox;
38   GtkWidget *generations;
39   GtkWidget *label39;
40   GtkWidget *frame7;
41   GtkWidget *table3;
42   GtkWidget *res_hruler;
43   GtkWidget *res_vruler;
44   GtkWidget *res_drawingarea;
45   GtkWidget *label37;
46   GtkWidget *label38;
47   GtkWidget *vbox5;
48   GtkWidget *frame5;
49   GtkWidget *vbox6;
50   GtkWidget *table1;
51   GtkWidget *label12;
52   GtkWidget *label13;
53   GtkWidget *label14;
54   GtkWidget *label15;
55   GtkWidget *label16;
56   GtkWidget *label17;
57   GtkWidget *label18;
58   GtkWidget *label19;
59   GtkWidget *live_label;
60   GtkWidget *allocated_label;
61   GtkWidget *footprint_label;
62   GtkWidget *alloc_rate_label;
63   GtkWidget *frame9;
64   GtkWidget *table5;
65   GtkWidget *label20;
66   GtkWidget *label21;
67   GtkWidget *label22;
68   GtkWidget *label24;
69   GtkWidget *label26;
70   GtkWidget *label25;
71   GtkWidget *label27;
72   GtkWidget *running_label;
73   GtkWidget *blockread_label;
74   GtkWidget *blockwrite_label;
75   GtkWidget *blockmvar_label;
76   GtkWidget *blockthrowto_label;
77   GtkWidget *blockbh_label;
78   GtkWidget *sleeping_label;
79   GtkWidget *hseparator1;
80   GtkWidget *hseparator2;
81   GtkWidget *label35;
82   GtkWidget *total_label;
83   GtkWidget *frame6;
84   GtkWidget *vbox7;
85   GtkWidget *vbox9;
86   GSList *grp1_group = NULL;
87   GtkWidget *cont_radio;
88   GtkWidget *stop_before_radio;
89   GtkWidget *stop_after_radio;
90   GtkWidget *stop_both_radio;
91   GtkWidget *vbox8;
92   GtkWidget *stop_but;
93   GtkWidget *continue_but;
94   GtkWidget *quit_but;
95   GtkWidget *statusbar;
96
97   GHC_Front_Panel = gtk_window_new (GTK_WINDOW_TOPLEVEL);
98   gtk_object_set_data (GTK_OBJECT (GHC_Front_Panel), "GHC_Front_Panel", GHC_Front_Panel);
99   gtk_window_set_title (GTK_WINDOW (GHC_Front_Panel), "GHC Front Panel");
100   gtk_window_set_default_size (GTK_WINDOW (GHC_Front_Panel), 450, 600);
101
102   vbox1 = gtk_vbox_new (FALSE, 0);
103   gtk_widget_ref (vbox1);
104   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox1", vbox1,
105                             (GtkDestroyNotify) gtk_widget_unref);
106   gtk_widget_show (vbox1);
107   gtk_container_add (GTK_CONTAINER (GHC_Front_Panel), vbox1);
108
109   hbox1 = gtk_hbox_new (FALSE, 10);
110   gtk_widget_ref (hbox1);
111   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hbox1", hbox1,
112                             (GtkDestroyNotify) gtk_widget_unref);
113   gtk_widget_show (hbox1);
114   gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
115   gtk_container_set_border_width (GTK_CONTAINER (hbox1), 10);
116
117   vbox4 = gtk_vbox_new (FALSE, 10);
118   gtk_widget_ref (vbox4);
119   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox4", vbox4,
120                             (GtkDestroyNotify) gtk_widget_unref);
121   gtk_widget_show (vbox4);
122   gtk_box_pack_start (GTK_BOX (hbox1), vbox4, TRUE, TRUE, 0);
123
124   frame3 = gtk_frame_new ("Memory Map");
125   gtk_widget_ref (frame3);
126   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame3", frame3,
127                             (GtkDestroyNotify) gtk_widget_unref);
128   gtk_widget_show (frame3);
129   gtk_box_pack_start (GTK_BOX (vbox4), frame3, TRUE, TRUE, 0);
130
131   hbox3 = gtk_hbox_new (FALSE, 0);
132   gtk_widget_ref (hbox3);
133   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hbox3", hbox3,
134                             (GtkDestroyNotify) gtk_widget_unref);
135   gtk_widget_show (hbox3);
136   gtk_container_add (GTK_CONTAINER (frame3), hbox3);
137
138   label40 = gtk_label_new ("Mb");
139   gtk_widget_ref (label40);
140   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label40", label40,
141                             (GtkDestroyNotify) gtk_widget_unref);
142   gtk_widget_show (label40);
143   gtk_box_pack_start (GTK_BOX (hbox3), label40, FALSE, FALSE, 0);
144
145   map_ruler = gtk_vruler_new ();
146   gtk_widget_ref (map_ruler);
147   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "map_ruler", map_ruler,
148                             (GtkDestroyNotify) gtk_widget_unref);
149   gtk_widget_show (map_ruler);
150   gtk_box_pack_start (GTK_BOX (hbox3), map_ruler, FALSE, FALSE, 0);
151   gtk_ruler_set_range (GTK_RULER (map_ruler), 0, 10, 5.18797, 10);
152
153   memmap = gtk_drawing_area_new ();
154   gtk_widget_ref (memmap);
155   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "memmap", memmap,
156                             (GtkDestroyNotify) gtk_widget_unref);
157   gtk_widget_show (memmap);
158   gtk_box_pack_start (GTK_BOX (hbox3), memmap, TRUE, TRUE, 0);
159
160   frame8 = gtk_frame_new ("Generations");
161   gtk_widget_ref (frame8);
162   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame8", frame8,
163                             (GtkDestroyNotify) gtk_widget_unref);
164   gtk_widget_show (frame8);
165   gtk_box_pack_start (GTK_BOX (vbox4), frame8, TRUE, TRUE, 0);
166
167   vbox14 = gtk_vbox_new (FALSE, 0);
168   gtk_widget_ref (vbox14);
169   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox14", vbox14,
170                             (GtkDestroyNotify) gtk_widget_unref);
171   gtk_widget_show (vbox14);
172   gtk_container_add (GTK_CONTAINER (frame8), vbox14);
173
174   table4 = gtk_table_new (2, 3, FALSE);
175   gtk_widget_ref (table4);
176   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table4", table4,
177                             (GtkDestroyNotify) gtk_widget_unref);
178   gtk_widget_show (table4);
179   gtk_box_pack_start (GTK_BOX (vbox14), table4, TRUE, TRUE, 0);
180
181   gen_ruler = gtk_vruler_new ();
182   gtk_widget_ref (gen_ruler);
183   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "gen_ruler", gen_ruler,
184                             (GtkDestroyNotify) gtk_widget_unref);
185   gtk_widget_show (gen_ruler);
186   gtk_table_attach (GTK_TABLE (table4), gen_ruler, 1, 2, 0, 1,
187                     (GtkAttachOptions) (GTK_FILL),
188                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
189   gtk_ruler_set_range (GTK_RULER (gen_ruler), 0, 10, 1.69935, 10);
190
191   gen_hbox = gtk_hbox_new (FALSE, 0);
192   gtk_widget_ref (gen_hbox);
193   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "gen_hbox", gen_hbox,
194                             (GtkDestroyNotify) gtk_widget_unref);
195   gtk_widget_show (gen_hbox);
196   gtk_table_attach (GTK_TABLE (table4), gen_hbox, 2, 3, 1, 2,
197                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
198                     (GtkAttachOptions) (GTK_FILL), 0, 0);
199
200   generations = gtk_drawing_area_new ();
201   gtk_widget_ref (generations);
202   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "generations", generations,
203                             (GtkDestroyNotify) gtk_widget_unref);
204   gtk_widget_show (generations);
205   gtk_table_attach (GTK_TABLE (table4), generations, 2, 3, 0, 1,
206                     (GtkAttachOptions) (GTK_FILL),
207                     (GtkAttachOptions) (GTK_FILL), 0, 0);
208
209   label39 = gtk_label_new ("Mb");
210   gtk_widget_ref (label39);
211   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label39", label39,
212                             (GtkDestroyNotify) gtk_widget_unref);
213   gtk_widget_show (label39);
214   gtk_table_attach (GTK_TABLE (table4), label39, 0, 1, 0, 1,
215                     (GtkAttachOptions) (0),
216                     (GtkAttachOptions) (0), 0, 0);
217
218   frame7 = gtk_frame_new ("Residency");
219   gtk_widget_ref (frame7);
220   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame7", frame7,
221                             (GtkDestroyNotify) gtk_widget_unref);
222   gtk_widget_show (frame7);
223   gtk_box_pack_start (GTK_BOX (vbox4), frame7, TRUE, TRUE, 0);
224
225   table3 = gtk_table_new (3, 3, FALSE);
226   gtk_widget_ref (table3);
227   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table3", table3,
228                             (GtkDestroyNotify) gtk_widget_unref);
229   gtk_widget_show (table3);
230   gtk_container_add (GTK_CONTAINER (frame7), table3);
231   gtk_container_set_border_width (GTK_CONTAINER (table3), 2);
232
233   res_hruler = gtk_hruler_new ();
234   gtk_widget_ref (res_hruler);
235   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "res_hruler", res_hruler,
236                             (GtkDestroyNotify) gtk_widget_unref);
237   gtk_widget_show (res_hruler);
238   gtk_table_attach (GTK_TABLE (table3), res_hruler, 2, 3, 1, 2,
239                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
240                     (GtkAttachOptions) (GTK_FILL), 0, 0);
241   gtk_ruler_set_range (GTK_RULER (res_hruler), 0, 10, 8.35443, 10);
242
243   res_vruler = gtk_vruler_new ();
244   gtk_widget_ref (res_vruler);
245   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "res_vruler", res_vruler,
246                             (GtkDestroyNotify) gtk_widget_unref);
247   gtk_widget_show (res_vruler);
248   gtk_table_attach (GTK_TABLE (table3), res_vruler, 1, 2, 2, 3,
249                     (GtkAttachOptions) (GTK_FILL),
250                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
251   gtk_ruler_set_range (GTK_RULER (res_vruler), 0, 10, 9.69925, 10);
252
253   res_drawingarea = gtk_drawing_area_new ();
254   gtk_widget_ref (res_drawingarea);
255   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "res_drawingarea", res_drawingarea,
256                             (GtkDestroyNotify) gtk_widget_unref);
257   gtk_widget_show (res_drawingarea);
258   gtk_table_attach (GTK_TABLE (table3), res_drawingarea, 2, 3, 2, 3,
259                     (GtkAttachOptions) (GTK_FILL),
260                     (GtkAttachOptions) (GTK_FILL), 0, 0);
261
262   label37 = gtk_label_new ("Secs");
263   gtk_widget_ref (label37);
264   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label37", label37,
265                             (GtkDestroyNotify) gtk_widget_unref);
266   gtk_widget_show (label37);
267   gtk_table_attach (GTK_TABLE (table3), label37, 2, 3, 0, 1,
268                     (GtkAttachOptions) (0),
269                     (GtkAttachOptions) (0), 0, 0);
270
271   label38 = gtk_label_new ("Mb");
272   gtk_widget_ref (label38);
273   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label38", label38,
274                             (GtkDestroyNotify) gtk_widget_unref);
275   gtk_widget_show (label38);
276   gtk_table_attach (GTK_TABLE (table3), label38, 0, 1, 2, 3,
277                     (GtkAttachOptions) (0),
278                     (GtkAttachOptions) (0), 0, 0);
279
280   vbox5 = gtk_vbox_new (FALSE, 10);
281   gtk_widget_ref (vbox5);
282   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox5", vbox5,
283                             (GtkDestroyNotify) gtk_widget_unref);
284   gtk_widget_show (vbox5);
285   gtk_box_pack_end (GTK_BOX (hbox1), vbox5, FALSE, FALSE, 0);
286
287   frame5 = gtk_frame_new ("Stats");
288   gtk_widget_ref (frame5);
289   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame5", frame5,
290                             (GtkDestroyNotify) gtk_widget_unref);
291   gtk_widget_show (frame5);
292   gtk_box_pack_start (GTK_BOX (vbox5), frame5, FALSE, TRUE, 0);
293
294   vbox6 = gtk_vbox_new (FALSE, 0);
295   gtk_widget_ref (vbox6);
296   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox6", vbox6,
297                             (GtkDestroyNotify) gtk_widget_unref);
298   gtk_widget_show (vbox6);
299   gtk_container_add (GTK_CONTAINER (frame5), vbox6);
300   gtk_container_set_border_width (GTK_CONTAINER (vbox6), 5);
301
302   table1 = gtk_table_new (4, 3, FALSE);
303   gtk_widget_ref (table1);
304   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table1", table1,
305                             (GtkDestroyNotify) gtk_widget_unref);
306   gtk_widget_show (table1);
307   gtk_box_pack_start (GTK_BOX (vbox6), table1, TRUE, TRUE, 0);
308   gtk_table_set_col_spacings (GTK_TABLE (table1), 7);
309
310   label12 = gtk_label_new ("Allocated");
311   gtk_widget_ref (label12);
312   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label12", label12,
313                             (GtkDestroyNotify) gtk_widget_unref);
314   gtk_widget_show (label12);
315   gtk_table_attach (GTK_TABLE (table1), label12, 0, 1, 1, 2,
316                     (GtkAttachOptions) (GTK_FILL),
317                     (GtkAttachOptions) (0), 0, 0);
318   gtk_label_set_justify (GTK_LABEL (label12), GTK_JUSTIFY_RIGHT);
319   gtk_misc_set_alignment (GTK_MISC (label12), 1, 0.5);
320
321   label13 = gtk_label_new ("Live");
322   gtk_widget_ref (label13);
323   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label13", label13,
324                             (GtkDestroyNotify) gtk_widget_unref);
325   gtk_widget_show (label13);
326   gtk_table_attach (GTK_TABLE (table1), label13, 0, 1, 0, 1,
327                     (GtkAttachOptions) (GTK_FILL),
328                     (GtkAttachOptions) (0), 0, 0);
329   gtk_label_set_justify (GTK_LABEL (label13), GTK_JUSTIFY_RIGHT);
330   gtk_misc_set_alignment (GTK_MISC (label13), 1, 0.5);
331
332   label14 = gtk_label_new ("Allocation Rate");
333   gtk_widget_ref (label14);
334   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label14", label14,
335                             (GtkDestroyNotify) gtk_widget_unref);
336   gtk_widget_show (label14);
337   gtk_table_attach (GTK_TABLE (table1), label14, 0, 1, 3, 4,
338                     (GtkAttachOptions) (0),
339                     (GtkAttachOptions) (0), 0, 0);
340   gtk_label_set_justify (GTK_LABEL (label14), GTK_JUSTIFY_RIGHT);
341   gtk_misc_set_alignment (GTK_MISC (label14), 1, 0.5);
342
343   label15 = gtk_label_new ("Footprint");
344   gtk_widget_ref (label15);
345   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label15", label15,
346                             (GtkDestroyNotify) gtk_widget_unref);
347   gtk_widget_show (label15);
348   gtk_table_attach (GTK_TABLE (table1), label15, 0, 1, 2, 3,
349                     (GtkAttachOptions) (GTK_FILL),
350                     (GtkAttachOptions) (0), 0, 0);
351   gtk_label_set_justify (GTK_LABEL (label15), GTK_JUSTIFY_RIGHT);
352   gtk_misc_set_alignment (GTK_MISC (label15), 1, 0.5);
353
354   label16 = gtk_label_new ("M/sec");
355   gtk_widget_ref (label16);
356   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label16", label16,
357                             (GtkDestroyNotify) gtk_widget_unref);
358   gtk_widget_show (label16);
359   gtk_table_attach (GTK_TABLE (table1), label16, 2, 3, 3, 4,
360                     (GtkAttachOptions) (0),
361                     (GtkAttachOptions) (0), 0, 0);
362
363   label17 = gtk_label_new ("M");
364   gtk_widget_ref (label17);
365   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label17", label17,
366                             (GtkDestroyNotify) gtk_widget_unref);
367   gtk_widget_show (label17);
368   gtk_table_attach (GTK_TABLE (table1), label17, 2, 3, 2, 3,
369                     (GtkAttachOptions) (GTK_FILL),
370                     (GtkAttachOptions) (0), 0, 0);
371   gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_LEFT);
372   gtk_misc_set_alignment (GTK_MISC (label17), 7.45058e-09, 0.5);
373
374   label18 = gtk_label_new ("M");
375   gtk_widget_ref (label18);
376   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label18", label18,
377                             (GtkDestroyNotify) gtk_widget_unref);
378   gtk_widget_show (label18);
379   gtk_table_attach (GTK_TABLE (table1), label18, 2, 3, 1, 2,
380                     (GtkAttachOptions) (GTK_FILL),
381                     (GtkAttachOptions) (0), 0, 0);
382   gtk_misc_set_alignment (GTK_MISC (label18), 7.45058e-09, 0.5);
383
384   label19 = gtk_label_new ("M");
385   gtk_widget_ref (label19);
386   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label19", label19,
387                             (GtkDestroyNotify) gtk_widget_unref);
388   gtk_widget_show (label19);
389   gtk_table_attach (GTK_TABLE (table1), label19, 2, 3, 0, 1,
390                     (GtkAttachOptions) (GTK_FILL),
391                     (GtkAttachOptions) (0), 0, 0);
392   gtk_misc_set_alignment (GTK_MISC (label19), 7.45058e-09, 0.5);
393
394   live_label = gtk_label_new ("");
395   gtk_widget_ref (live_label);
396   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "live_label", live_label,
397                             (GtkDestroyNotify) gtk_widget_unref);
398   gtk_widget_show (live_label);
399   gtk_table_attach (GTK_TABLE (table1), live_label, 1, 2, 0, 1,
400                     (GtkAttachOptions) (GTK_FILL),
401                     (GtkAttachOptions) (0), 0, 0);
402   gtk_widget_set_usize (live_label, 70, -2);
403   gtk_misc_set_alignment (GTK_MISC (live_label), 1, 0.5);
404
405   allocated_label = gtk_label_new ("");
406   gtk_widget_ref (allocated_label);
407   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "allocated_label", allocated_label,
408                             (GtkDestroyNotify) gtk_widget_unref);
409   gtk_widget_show (allocated_label);
410   gtk_table_attach (GTK_TABLE (table1), allocated_label, 1, 2, 1, 2,
411                     (GtkAttachOptions) (GTK_FILL),
412                     (GtkAttachOptions) (0), 0, 0);
413   gtk_widget_set_usize (allocated_label, 70, -2);
414   gtk_misc_set_alignment (GTK_MISC (allocated_label), 1, 0.5);
415
416   footprint_label = gtk_label_new ("");
417   gtk_widget_ref (footprint_label);
418   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "footprint_label", footprint_label,
419                             (GtkDestroyNotify) gtk_widget_unref);
420   gtk_widget_show (footprint_label);
421   gtk_table_attach (GTK_TABLE (table1), footprint_label, 1, 2, 2, 3,
422                     (GtkAttachOptions) (GTK_FILL),
423                     (GtkAttachOptions) (0), 0, 0);
424   gtk_widget_set_usize (footprint_label, 70, -2);
425   gtk_misc_set_alignment (GTK_MISC (footprint_label), 1, 0.5);
426
427   alloc_rate_label = gtk_label_new ("");
428   gtk_widget_ref (alloc_rate_label);
429   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "alloc_rate_label", alloc_rate_label,
430                             (GtkDestroyNotify) gtk_widget_unref);
431   gtk_widget_show (alloc_rate_label);
432   gtk_table_attach (GTK_TABLE (table1), alloc_rate_label, 1, 2, 3, 4,
433                     (GtkAttachOptions) (GTK_FILL),
434                     (GtkAttachOptions) (0), 0, 0);
435   gtk_widget_set_usize (alloc_rate_label, 70, -2);
436   gtk_misc_set_alignment (GTK_MISC (alloc_rate_label), 1, 0.5);
437
438   frame9 = gtk_frame_new ("Threads");
439   gtk_widget_ref (frame9);
440   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame9", frame9,
441                             (GtkDestroyNotify) gtk_widget_unref);
442   gtk_widget_show (frame9);
443   gtk_box_pack_start (GTK_BOX (vbox5), frame9, FALSE, TRUE, 0);
444
445   table5 = gtk_table_new (9, 2, FALSE);
446   gtk_widget_ref (table5);
447   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "table5", table5,
448                             (GtkDestroyNotify) gtk_widget_unref);
449   gtk_widget_show (table5);
450   gtk_container_add (GTK_CONTAINER (frame9), table5);
451   gtk_container_set_border_width (GTK_CONTAINER (table5), 6);
452   gtk_table_set_col_spacings (GTK_TABLE (table5), 10);
453
454   label20 = gtk_label_new ("Running");
455   gtk_widget_ref (label20);
456   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label20", label20,
457                             (GtkDestroyNotify) gtk_widget_unref);
458   gtk_widget_show (label20);
459   gtk_table_attach (GTK_TABLE (table5), label20, 0, 1, 0, 1,
460                     (GtkAttachOptions) (GTK_FILL),
461                     (GtkAttachOptions) (0), 0, 0);
462   gtk_misc_set_alignment (GTK_MISC (label20), 1, 0.5);
463
464   label21 = gtk_label_new ("Blocked on I/O (Read)");
465   gtk_widget_ref (label21);
466   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label21", label21,
467                             (GtkDestroyNotify) gtk_widget_unref);
468   gtk_widget_show (label21);
469   gtk_table_attach (GTK_TABLE (table5), label21, 0, 1, 1, 2,
470                     (GtkAttachOptions) (GTK_FILL),
471                     (GtkAttachOptions) (0), 0, 0);
472   gtk_misc_set_alignment (GTK_MISC (label21), 1, 0.5);
473
474   label22 = gtk_label_new ("Blocked on MVar");
475   gtk_widget_ref (label22);
476   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label22", label22,
477                             (GtkDestroyNotify) gtk_widget_unref);
478   gtk_widget_show (label22);
479   gtk_table_attach (GTK_TABLE (table5), label22, 0, 1, 3, 4,
480                     (GtkAttachOptions) (GTK_FILL),
481                     (GtkAttachOptions) (0), 0, 0);
482   gtk_misc_set_alignment (GTK_MISC (label22), 1, 0.5);
483
484   label24 = gtk_label_new ("Blocked on throwTo");
485   gtk_widget_ref (label24);
486   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label24", label24,
487                             (GtkDestroyNotify) gtk_widget_unref);
488   gtk_widget_show (label24);
489   gtk_table_attach (GTK_TABLE (table5), label24, 0, 1, 4, 5,
490                     (GtkAttachOptions) (GTK_FILL),
491                     (GtkAttachOptions) (0), 0, 0);
492   gtk_misc_set_alignment (GTK_MISC (label24), 1, 0.5);
493
494   label26 = gtk_label_new ("Blocked on Black Hole");
495   gtk_widget_ref (label26);
496   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label26", label26,
497                             (GtkDestroyNotify) gtk_widget_unref);
498   gtk_widget_show (label26);
499   gtk_table_attach (GTK_TABLE (table5), label26, 0, 1, 5, 6,
500                     (GtkAttachOptions) (GTK_FILL),
501                     (GtkAttachOptions) (0), 0, 0);
502   gtk_misc_set_alignment (GTK_MISC (label26), 1, 0.5);
503
504   label25 = gtk_label_new ("Sleeping");
505   gtk_widget_ref (label25);
506   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label25", label25,
507                             (GtkDestroyNotify) gtk_widget_unref);
508   gtk_widget_show (label25);
509   gtk_table_attach (GTK_TABLE (table5), label25, 0, 1, 6, 7,
510                     (GtkAttachOptions) (GTK_FILL),
511                     (GtkAttachOptions) (0), 0, 0);
512   gtk_misc_set_alignment (GTK_MISC (label25), 1, 0.5);
513
514   label27 = gtk_label_new ("Blocked on I/O (Write)");
515   gtk_widget_ref (label27);
516   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label27", label27,
517                             (GtkDestroyNotify) gtk_widget_unref);
518   gtk_widget_show (label27);
519   gtk_table_attach (GTK_TABLE (table5), label27, 0, 1, 2, 3,
520                     (GtkAttachOptions) (0),
521                     (GtkAttachOptions) (0), 0, 0);
522   gtk_misc_set_alignment (GTK_MISC (label27), 1, 0.5);
523
524   running_label = gtk_label_new ("label28");
525   gtk_widget_ref (running_label);
526   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "running_label", running_label,
527                             (GtkDestroyNotify) gtk_widget_unref);
528   gtk_widget_show (running_label);
529   gtk_table_attach (GTK_TABLE (table5), running_label, 1, 2, 0, 1,
530                     (GtkAttachOptions) (0),
531                     (GtkAttachOptions) (0), 0, 0);
532
533   blockread_label = gtk_label_new ("label29");
534   gtk_widget_ref (blockread_label);
535   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockread_label", blockread_label,
536                             (GtkDestroyNotify) gtk_widget_unref);
537   gtk_widget_show (blockread_label);
538   gtk_table_attach (GTK_TABLE (table5), blockread_label, 1, 2, 1, 2,
539                     (GtkAttachOptions) (0),
540                     (GtkAttachOptions) (0), 0, 0);
541
542   blockwrite_label = gtk_label_new ("label30");
543   gtk_widget_ref (blockwrite_label);
544   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockwrite_label", blockwrite_label,
545                             (GtkDestroyNotify) gtk_widget_unref);
546   gtk_widget_show (blockwrite_label);
547   gtk_table_attach (GTK_TABLE (table5), blockwrite_label, 1, 2, 2, 3,
548                     (GtkAttachOptions) (0),
549                     (GtkAttachOptions) (0), 0, 0);
550
551   blockmvar_label = gtk_label_new ("label31");
552   gtk_widget_ref (blockmvar_label);
553   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockmvar_label", blockmvar_label,
554                             (GtkDestroyNotify) gtk_widget_unref);
555   gtk_widget_show (blockmvar_label);
556   gtk_table_attach (GTK_TABLE (table5), blockmvar_label, 1, 2, 3, 4,
557                     (GtkAttachOptions) (0),
558                     (GtkAttachOptions) (0), 0, 0);
559
560   blockthrowto_label = gtk_label_new ("label32");
561   gtk_widget_ref (blockthrowto_label);
562   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockthrowto_label", blockthrowto_label,
563                             (GtkDestroyNotify) gtk_widget_unref);
564   gtk_widget_show (blockthrowto_label);
565   gtk_table_attach (GTK_TABLE (table5), blockthrowto_label, 1, 2, 4, 5,
566                     (GtkAttachOptions) (0),
567                     (GtkAttachOptions) (0), 0, 0);
568
569   blockbh_label = gtk_label_new ("label33");
570   gtk_widget_ref (blockbh_label);
571   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "blockbh_label", blockbh_label,
572                             (GtkDestroyNotify) gtk_widget_unref);
573   gtk_widget_show (blockbh_label);
574   gtk_table_attach (GTK_TABLE (table5), blockbh_label, 1, 2, 5, 6,
575                     (GtkAttachOptions) (0),
576                     (GtkAttachOptions) (0), 0, 0);
577
578   sleeping_label = gtk_label_new ("label34");
579   gtk_widget_ref (sleeping_label);
580   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "sleeping_label", sleeping_label,
581                             (GtkDestroyNotify) gtk_widget_unref);
582   gtk_widget_show (sleeping_label);
583   gtk_table_attach (GTK_TABLE (table5), sleeping_label, 1, 2, 6, 7,
584                     (GtkAttachOptions) (0),
585                     (GtkAttachOptions) (0), 0, 0);
586
587   hseparator1 = gtk_hseparator_new ();
588   gtk_widget_ref (hseparator1);
589   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hseparator1", hseparator1,
590                             (GtkDestroyNotify) gtk_widget_unref);
591   gtk_widget_show (hseparator1);
592   gtk_table_attach (GTK_TABLE (table5), hseparator1, 0, 1, 7, 8,
593                     (GtkAttachOptions) (GTK_FILL),
594                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
595
596   hseparator2 = gtk_hseparator_new ();
597   gtk_widget_ref (hseparator2);
598   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "hseparator2", hseparator2,
599                             (GtkDestroyNotify) gtk_widget_unref);
600   gtk_widget_show (hseparator2);
601   gtk_table_attach (GTK_TABLE (table5), hseparator2, 1, 2, 7, 8,
602                     (GtkAttachOptions) (GTK_FILL),
603                     (GtkAttachOptions) (GTK_FILL), 0, 0);
604
605   label35 = gtk_label_new ("Total");
606   gtk_widget_ref (label35);
607   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "label35", label35,
608                             (GtkDestroyNotify) gtk_widget_unref);
609   gtk_widget_show (label35);
610   gtk_table_attach (GTK_TABLE (table5), label35, 0, 1, 8, 9,
611                     (GtkAttachOptions) (GTK_FILL),
612                     (GtkAttachOptions) (0), 0, 0);
613   gtk_misc_set_alignment (GTK_MISC (label35), 1, 0.5);
614
615   total_label = gtk_label_new ("label36");
616   gtk_widget_ref (total_label);
617   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "total_label", total_label,
618                             (GtkDestroyNotify) gtk_widget_unref);
619   gtk_widget_show (total_label);
620   gtk_table_attach (GTK_TABLE (table5), total_label, 1, 2, 8, 9,
621                     (GtkAttachOptions) (0),
622                     (GtkAttachOptions) (0), 0, 0);
623
624   frame6 = gtk_frame_new ("Updates");
625   gtk_widget_ref (frame6);
626   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "frame6", frame6,
627                             (GtkDestroyNotify) gtk_widget_unref);
628   gtk_widget_show (frame6);
629   gtk_box_pack_start (GTK_BOX (vbox5), frame6, FALSE, FALSE, 0);
630
631   vbox7 = gtk_vbox_new (FALSE, 10);
632   gtk_widget_ref (vbox7);
633   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox7", vbox7,
634                             (GtkDestroyNotify) gtk_widget_unref);
635   gtk_widget_show (vbox7);
636   gtk_container_add (GTK_CONTAINER (frame6), vbox7);
637   gtk_container_set_border_width (GTK_CONTAINER (vbox7), 5);
638
639   vbox9 = gtk_vbox_new (FALSE, 0);
640   gtk_widget_ref (vbox9);
641   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox9", vbox9,
642                             (GtkDestroyNotify) gtk_widget_unref);
643   gtk_widget_show (vbox9);
644   gtk_box_pack_start (GTK_BOX (vbox7), vbox9, TRUE, TRUE, 0);
645
646   cont_radio = gtk_radio_button_new_with_label (grp1_group, "Continuous");
647   grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cont_radio));
648   gtk_widget_ref (cont_radio);
649   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "cont_radio", cont_radio,
650                             (GtkDestroyNotify) gtk_widget_unref);
651   gtk_widget_show (cont_radio);
652   gtk_box_pack_start (GTK_BOX (vbox9), cont_radio, FALSE, FALSE, 0);
653   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cont_radio), TRUE);
654
655   stop_before_radio = gtk_radio_button_new_with_label (grp1_group, "Stop before GC");
656   grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stop_before_radio));
657   gtk_widget_ref (stop_before_radio);
658   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_before_radio", stop_before_radio,
659                             (GtkDestroyNotify) gtk_widget_unref);
660   gtk_widget_show (stop_before_radio);
661   gtk_box_pack_start (GTK_BOX (vbox9), stop_before_radio, FALSE, FALSE, 0);
662
663   stop_after_radio = gtk_radio_button_new_with_label (grp1_group, "Stop after GC");
664   grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stop_after_radio));
665   gtk_widget_ref (stop_after_radio);
666   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_after_radio", stop_after_radio,
667                             (GtkDestroyNotify) gtk_widget_unref);
668   gtk_widget_show (stop_after_radio);
669   gtk_box_pack_start (GTK_BOX (vbox9), stop_after_radio, FALSE, FALSE, 0);
670
671   stop_both_radio = gtk_radio_button_new_with_label (grp1_group, "Stop before & after GC");
672   grp1_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stop_both_radio));
673   gtk_widget_ref (stop_both_radio);
674   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_both_radio", stop_both_radio,
675                             (GtkDestroyNotify) gtk_widget_unref);
676   gtk_widget_show (stop_both_radio);
677   gtk_box_pack_start (GTK_BOX (vbox9), stop_both_radio, FALSE, FALSE, 0);
678
679   vbox8 = gtk_vbox_new (FALSE, 0);
680   gtk_widget_ref (vbox8);
681   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "vbox8", vbox8,
682                             (GtkDestroyNotify) gtk_widget_unref);
683   gtk_widget_show (vbox8);
684   gtk_box_pack_start (GTK_BOX (vbox7), vbox8, FALSE, FALSE, 0);
685
686   stop_but = gtk_button_new_with_label ("Stop");
687   gtk_widget_ref (stop_but);
688   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "stop_but", stop_but,
689                             (GtkDestroyNotify) gtk_widget_unref);
690   gtk_widget_show (stop_but);
691   gtk_box_pack_start (GTK_BOX (vbox8), stop_but, FALSE, FALSE, 0);
692
693   continue_but = gtk_button_new_with_label ("Continue");
694   gtk_widget_ref (continue_but);
695   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "continue_but", continue_but,
696                             (GtkDestroyNotify) gtk_widget_unref);
697   gtk_widget_show (continue_but);
698   gtk_box_pack_start (GTK_BOX (vbox8), continue_but, FALSE, FALSE, 0);
699
700   quit_but = gtk_button_new_with_label ("Quit");
701   gtk_widget_ref (quit_but);
702   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "quit_but", quit_but,
703                             (GtkDestroyNotify) gtk_widget_unref);
704   gtk_widget_show (quit_but);
705   gtk_box_pack_end (GTK_BOX (vbox5), quit_but, FALSE, FALSE, 0);
706
707   statusbar = gtk_statusbar_new ();
708   gtk_widget_ref (statusbar);
709   gtk_object_set_data_full (GTK_OBJECT (GHC_Front_Panel), "statusbar", statusbar,
710                             (GtkDestroyNotify) gtk_widget_unref);
711   gtk_widget_show (statusbar);
712   gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);
713
714   gtk_signal_connect (GTK_OBJECT (cont_radio), "clicked",
715                       GTK_SIGNAL_FUNC (on_cont_radio_clicked),
716                       NULL);
717   gtk_signal_connect (GTK_OBJECT (stop_before_radio), "clicked",
718                       GTK_SIGNAL_FUNC (on_stop_before_radio_clicked),
719                       NULL);
720   gtk_signal_connect (GTK_OBJECT (stop_after_radio), "clicked",
721                       GTK_SIGNAL_FUNC (on_stop_after_radio_clicked),
722                       NULL);
723   gtk_signal_connect (GTK_OBJECT (stop_both_radio), "clicked",
724                       GTK_SIGNAL_FUNC (on_stop_both_radio_clicked),
725                       NULL);
726   gtk_signal_connect (GTK_OBJECT (stop_but), "clicked",
727                       GTK_SIGNAL_FUNC (on_stop_but_clicked),
728                       NULL);
729   gtk_signal_connect (GTK_OBJECT (continue_but), "clicked",
730                       GTK_SIGNAL_FUNC (on_continue_but_clicked),
731                       NULL);
732   gtk_signal_connect (GTK_OBJECT (quit_but), "clicked",
733                       GTK_SIGNAL_FUNC (on_quit_but_clicked),
734                       NULL);
735
736   return GHC_Front_Panel;
737 }
738