public void Initialize(IFrameDiagnostics e)
        {
            Console.WriteLine("FrameDiagnostics.Initialize");
            this.checkBox1.CheckedChanged +=
                delegate
            {
                e.user_pause.value = Convert.ToString(this.checkBox1.Checked);
            };

            this.checkBox2.CheckedChanged +=
                delegate
            {
                e.hidetrees.value = Convert.ToString(this.checkBox2.Checked);
            };

            this.checkBox3.CheckedChanged +=
                delegate
            {
                e.hidegroundunits.value = Convert.ToString(this.checkBox3.Checked);
            };

            this.checkBox4.CheckedChanged +=
                delegate
            {
                e.hideairunits.value = Convert.ToString(this.checkBox4.Checked);
            };

            var traceperformance = new { task = "", set_time = default(Action <string>) }.ToEmptyList();

            e.traceperformance(
                (task, time) =>
            {
                var x = traceperformance.FirstOrDefault(k => k.task == task);

                if (x == null)
                {
                    var r      = new DataGridViewRow();
                    var c_task = new DataGridViewTextBoxCell {
                        Value = task
                    };
                    var c_time = new DataGridViewTextBoxCell {
                    };

                    r.Cells.Add(c_task);
                    r.Cells.Add(c_time);
                    this.dataGridView1.Rows.Add(r);

                    Action <string> set_time =
                        value =>
                    {
                        c_time.Value = value;
                    };

                    x = new { task, set_time }.AddTo(traceperformance);
                }

                x.set_time(time);
            }
                );

            this.checkBox5.CheckedChanged +=
                delegate
            {
                e.traceperformance_enabled.value = Convert.ToString(this.checkBox5.Checked);
            };

            this.checkBox6.CheckedChanged +=
                delegate
            {
                e.hidelayers.value = Convert.ToString(this.checkBox6.Checked);
            };


            this.checkBox9.CheckedChanged +=
                delegate
            {
                e.hidepedshadow.value = Convert.ToString(this.checkBox9.Checked);
            };


            this.checkBox7.CheckedChanged +=
                delegate
            {
                e.hideground.value = Convert.ToString(this.checkBox7.Checked);
            };

            this.checkBox8.CheckedChanged +=
                delegate
            {
                e.hidetracks.value = Convert.ToString(this.checkBox8.Checked);
            };

            this.button1.Click +=
                delegate
            {
                e.F1();
            };

            this.button2.Click +=
                delegate
            {
                e.F2();
            };
        }
        public void Initialize(IFrameDiagnostics e)
        {
            Console.WriteLine("FrameDiagnostics.Initialize");

            e.switchto = x => this.gameUnitDiagnostics1.switchto(x);

            this.checkBox1.CheckedChanged +=
                delegate
                {

                    e.user_pause.value = Convert.ToString(this.checkBox1.Checked);
                };

            this.checkBox2.CheckedChanged +=
                 delegate
                 {
                     e.hidetrees.value = Convert.ToString(this.checkBox2.Checked);
                 };

            this.checkBox3.CheckedChanged +=
                 delegate
                 {
                     e.hidegroundunits.value = Convert.ToString(this.checkBox3.Checked);
                 };

            this.checkBox4.CheckedChanged +=
                 delegate
                 {
                     e.hideairunits.value = Convert.ToString(this.checkBox4.Checked);
                 };

            var traceperformance = new { task = "", set_time = default(Action<string>) }.ToEmptyList();

            e.traceperformance(
                (task, time) =>
                {
                    var x = traceperformance.FirstOrDefault(k => k.task == task);

                    if (x == null)
                    {
                        var r = new DataGridViewRow();
                        var c_task = new DataGridViewTextBoxCell { Value = task };
                        var c_time = new DataGridViewTextBoxCell { };

                        r.Cells.Add(c_task);
                        r.Cells.Add(c_time);
                        this.dataGridView1.Rows.Add(r);

                        Action<string> set_time =
                            value =>
                            {
                                c_time.Value = value;
                            };

                        x = new { task, set_time }.AddTo(traceperformance);
                    }

                    x.set_time(time);
                }
            );

            this.checkBox5.CheckedChanged +=
                delegate
                {
                    e.traceperformance_enabled.value = Convert.ToString(this.checkBox5.Checked);

                };

            this.checkBox6.CheckedChanged +=
               delegate
               {
                   e.hidelayers.value = Convert.ToString(this.checkBox6.Checked);
               };


            this.checkBox9.CheckedChanged +=
             delegate
             {
                 e.hidepedshadow.value = Convert.ToString(this.checkBox9.Checked);
             };


            this.checkBox7.CheckedChanged +=
              delegate
              {
                  e.hideground.value = Convert.ToString(this.checkBox7.Checked);
              };

            this.checkBox8.CheckedChanged +=
              delegate
              {
                  e.hidetracks.value = Convert.ToString(this.checkBox8.Checked);
              };

            this.button1.Click +=
               delegate
               {
                   e.F1();
               };

            this.button2.Click +=
             delegate
             {
                 e.F2();
             };
        }