summaryrefslogtreecommitdiff
path: root/rts/VisWindow.c
blob: 188b88976ebe6c367435cdba1f119f3f32413a6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
/*
 * DO NOT EDIT THIS FILE - it is generated by Glade.
 */

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>

#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>

#include "VisCallbacks.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)
{
  GtkWidget *GHC_Front_Panel;
  GtkWidget *vbox1;
  GtkWidget *hbox1;
  GtkWidget *vbox4;
  GtkWidget *frame3;
  GtkWidget *hbox3;
  GtkWidget *label40;
  GtkWidget *map_ruler;
  GtkWidget *memmap;
  GtkWidget *label1;
  GtkWidget *frame8;
  GtkWidget *vbox14;
  GtkWidget *table4;
  GtkWidget *gen_ruler;
  GtkWidget *gen_hbox;
  GtkWidget *generations;
  GtkWidget *label39;
  GtkWidget *label41;
  GtkWidget *frame7;
  GtkWidget *table3;
  GtkWidget *res_hruler;
  GtkWidget *res_vruler;
  GtkWidget *res_drawingarea;
  GtkWidget *label37;
  GtkWidget *label38;
  GtkWidget *label42;
  GtkWidget *vbox5;
  GtkWidget *frame5;
  GtkWidget *vbox6;
  GtkWidget *table1;
  GtkWidget *label12;
  GtkWidget *label13;
  GtkWidget *label14;
  GtkWidget *label15;
  GtkWidget *label16;
  GtkWidget *label17;
  GtkWidget *label18;
  GtkWidget *label19;
  GtkWidget *live_label;
  GtkWidget *allocated_label;
  GtkWidget *footprint_label;
  GtkWidget *alloc_rate_label;
  GtkWidget *label43;
  GtkWidget *frame9;
  GtkWidget *table5;
  GtkWidget *label20;
  GtkWidget *label21;
  GtkWidget *label22;
  GtkWidget *label24;
  GtkWidget *label26;
  GtkWidget *label25;
  GtkWidget *label27;
  GtkWidget *running_label;
  GtkWidget *blockread_label;
  GtkWidget *blockwrite_label;
  GtkWidget *blockmvar_label;
  GtkWidget *blockthrowto_label;
  GtkWidget *blockbh_label;
  GtkWidget *sleeping_label;
  GtkWidget *hseparator1;
  GtkWidget *hseparator2;
  GtkWidget *label35;
  GtkWidget *total_label;
  GtkWidget *label44;
  GtkWidget *frame6;
  GtkWidget *vbox7;
  GtkWidget *vbox9;
  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_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_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_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_set_name (vbox4, "vbox4");
  gtk_widget_show (vbox4);
  gtk_box_pack_start (GTK_BOX (hbox1), vbox4, TRUE, TRUE, 0);

  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_set_name (hbox3, "hbox3");
  gtk_widget_show (hbox3);
  gtk_container_add (GTK_CONTAINER (frame3), hbox3);

  label40 = gtk_label_new ("Mb");
  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_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, 1.40845, 10);

  memmap = gtk_drawing_area_new ();
  gtk_widget_set_name (memmap, "memmap");
  gtk_widget_show (memmap);
  gtk_box_pack_start (GTK_BOX (hbox3), memmap, TRUE, TRUE, 0);

  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_set_name (vbox14, "vbox14");
  gtk_widget_show (vbox14);
  gtk_container_add (GTK_CONTAINER (frame8), vbox14);

  table4 = gtk_table_new (2, 3, FALSE);
  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_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),
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
  gtk_ruler_set_range (GTK_RULER (gen_ruler), 0, 10, 1.69935, 10);

  gen_hbox = gtk_hbox_new (FALSE, 0);
  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_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_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 (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_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_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),
                    (GtkAttachOptions) (GTK_FILL), 0, 0);
  gtk_ruler_set_range (GTK_RULER (res_hruler), 0, 10, 8.35443, 10);

  res_vruler = gtk_vruler_new ();
  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),
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
  gtk_ruler_set_range (GTK_RULER (res_vruler), 0, 10, 9.69925, 10);

  res_drawingarea = gtk_drawing_area_new ();
  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_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_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_set_name (vbox5, "vbox5");
  gtk_widget_show (vbox5);
  gtk_box_pack_end (GTK_BOX (hbox1), vbox5, FALSE, FALSE, 0);

  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_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_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_set_name (label12, "label12");
  gtk_widget_show (label12);
  gtk_table_attach (GTK_TABLE (table1), label12, 0, 1, 1, 2,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_label_set_justify (GTK_LABEL (label12), GTK_JUSTIFY_RIGHT);
  gtk_misc_set_alignment (GTK_MISC (label12), 1, 0.5);

  label13 = gtk_label_new ("Live");
  gtk_widget_set_name (label13, "label13");
  gtk_widget_show (label13);
  gtk_table_attach (GTK_TABLE (table1), label13, 0, 1, 0, 1,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_label_set_justify (GTK_LABEL (label13), GTK_JUSTIFY_RIGHT);
  gtk_misc_set_alignment (GTK_MISC (label13), 1, 0.5);

  label14 = gtk_label_new ("Allocation Rate");
  gtk_widget_set_name (label14, "label14");
  gtk_widget_show (label14);
  gtk_table_attach (GTK_TABLE (table1), label14, 0, 1, 3, 4,
                    (GtkAttachOptions) (0),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_label_set_justify (GTK_LABEL (label14), GTK_JUSTIFY_RIGHT);
  gtk_misc_set_alignment (GTK_MISC (label14), 1, 0.5);

  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),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_label_set_justify (GTK_LABEL (label15), GTK_JUSTIFY_RIGHT);
  gtk_misc_set_alignment (GTK_MISC (label15), 1, 0.5);

  label16 = gtk_label_new ("M/sec");
  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_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_misc_set_alignment (GTK_MISC (label17), 7.45058e-09, 0.5);

  label18 = gtk_label_new ("M");
  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_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_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_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_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_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_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_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_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_label_set_justify (GTK_LABEL (alloc_rate_label), GTK_JUSTIFY_CENTER);
  gtk_misc_set_alignment (GTK_MISC (alloc_rate_label), 1, 0.5);

  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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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);

  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_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_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_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_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_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_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_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_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_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);

  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_set_name (statusbar, "statusbar");
  gtk_widget_show (statusbar);
  gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);

  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;
}