using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;

internal class frmAdvancedGraph : Form
{
    //private BackgroundWorker backgroundWorker_0 = new BackgroundWorker();

    private FrmMain frmMain_0;
    private IContainer icontainer_0;
    public Graphics graphics_0;
    private Brush brush_0;
    public ctrlAdvTable ctrlAdvTable_0;
    
    private Class18 class18_0;
    private Class10_settings class10_settings_0;

    private double double_0;
    private double double_1;

    private int TopOffset = 30;
    private int BottomOffset = 50;
    private int LeftOffset = 40;
    private int RightOffset = 20;
    private int TWidht = 0;
    private int THeight = 0;

    private int MaxColumns = 0;
    private int MaxRows = 0;

    private double MaxValueY = 0;
    private double MaxValueX = 0;
    private double MinValueY = 0;
    private double MinValueX = 0;

    //private bool bool_1 = false;
    //private bool bool_4 = false;
    //private bool bool_2 = false;
    //private bool SingleChange = false;
    private bool IsSelected = false;
    //private bool Dragging = false;

    private int RowSelected = 0;
    private int ColumnSelected = 0;

    private Point point_0;
    private Point point_1;
    private Point point_2;

    private Rectangle rectangle_0;

    private List<double> TitleList = new List<double>();
    private List<double[]> ValuesList = new List<double[]>();

    private List<int[]> Xposs = new List<int[]>();
    private List<int[]> Yposs = new List<int[]>();
    private List<bool[]> EditingList = new List<bool[]>();

    private bool EditMain = false;

    private List<int> Xposs2 = new List<int>();
    private List<int> Yposs2 = new List<int>();
    private List<bool> EditingList2 = new List<bool>();

    public frmAdvancedGraph(ref Class18 class18_1, ref ctrlAdvTable ctrlAdvTable_1)
    {
        this.InitializeComponent();

        class18_0 = class18_1;
        class10_settings_0 = this.class18_0.class10_settings_0;
        ctrlAdvTable_0 = ctrlAdvTable_1;

        foreach (Control control in base.Controls)
        {
            float emSize = control.Font.Size * (class18_0.class10_settings_0.scaleRate / 100f);
            control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit);
        }

        //this.backgroundWorker_0.DoWork += new DoWorkEventHandler(this.backgroundWorker_0_DoWork);
    }

    /*private void backgroundWorker_0_DoWork(object sender, DoWorkEventArgs e)
    {
        while (this.bool_2)
        {
            int x;
            int num2;
            int y;
            int num4;
            int num5;
            int num6;
            MouseEventArgs argument = (MouseEventArgs)e.Argument;
            if (argument.X > this.point_0.X)
            {
                x = argument.X;
                num2 = this.point_0.X;
                num5 = this.point_0.X;
            }
            else
            {
                x = this.point_0.X;
                num2 = argument.X;
                num5 = argument.X;
            }
            if (argument.Y > this.point_0.Y)
            {
                y = argument.Y;
                num4 = this.point_0.Y;
                num6 = this.point_0.Y;
            }
            else
            {
                y = this.point_0.Y;
                num4 = argument.Y;
                num6 = argument.Y;
            }
            this.rectangle_0 = new Rectangle(num5, num6, x - num2, y - num4);
            this.bool_2 = true;
            for (int i = 0; i < MaxRows; i++)
            {
                for (int j = 0; j < MaxColumns; j++)
                {
                    try
                    {
                        if (this.rectangle_0.Contains(this.Xposs[i][j], this.Yposs[i][j]))
                        {
                            this.EditingList[i][j] = true;
                            this.ctrlAdvTable_0.grid.ClearSelection();
                            this.ctrlAdvTable_0.grid[i, j].Selected = true;
                            base.Invalidate(false);
                            base.Update();
                            return;
                        }
                    }
                    catch { }
                }
            }
            this.Invalidate();
        }
    }*/

    protected override void Dispose(bool disposing)
    {
        if (disposing && (this.icontainer_0 != null))
        {
            this.icontainer_0.Dispose();
        }
        base.Dispose(disposing);
    }

    private void InitializeComponent()
    {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmAdvancedGraph));
            this.SuspendLayout();
            // 
            // frmAdvancedGraph
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(528, 430);
            this.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.MaximizeBox = false;
            this.Name = "frmAdvancedGraph";
            this.Padding = new System.Windows.Forms.Padding(10);
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
            this.Text = "Advanced Table Graph";
            this.TopMost = true;
            this.Load += new System.EventHandler(this.frmAboutBox_Load);
            this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.frmAdvancedGraph_MouseDown);
            this.MouseEnter += new System.EventHandler(this.frmAdvancedGraph_MouseEnter);
            this.MouseLeave += new System.EventHandler(this.frmAdvancedGraph_MouseLeave);
            this.MouseHover += new System.EventHandler(this.frmAdvancedGraph_MouseHover);
            this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.frmAdvancedGraph_MouseMove);
            this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.frmAdvancedGraph_MouseUp);
            this.Resize += new System.EventHandler(this.frmAdvancedGraph_Resize);
            this.ResumeLayout(false);

    }

    private void frmAboutBox_Load(object sender, EventArgs e)
    {

    }

    protected override void OnPaint(PaintEventArgs pe)
    {
        this.graphics_0 = pe.Graphics;
        this.graphics_0.SmoothingMode = SmoothingMode.None;

        //Rectangle ThisRec = new Rectangle(pe.ClipRectangle.X, pe.ClipRectangle.Y, pe.ClipRectangle.Width, pe.ClipRectangle.Height);
        //this.graphics_0.DrawImage(ThisI, ThisRec);
        Pen pen = new Pen(this.class10_settings_0.color_11);
        Pen pen2 = new Pen(this.class10_settings_0.color_14, 1f);
        this.brush_0 = new SolidBrush(this.class10_settings_0.color_3);

        TWidht = base.ClientRectangle.Width - LeftOffset - RightOffset;
        THeight = base.ClientRectangle.Height - TopOffset - BottomOffset;

        this.graphics_0.FillRectangle(this.brush_0, 0, 0, base.ClientRectangle.Width, base.ClientRectangle.Height);

        this.graphics_0.DrawLine(pen, LeftOffset, base.ClientRectangle.Top + TopOffset, LeftOffset, base.ClientRectangle.Bottom - BottomOffset);       //left
        this.graphics_0.DrawLine(pen, LeftOffset, base.ClientRectangle.Bottom - BottomOffset, base.ClientRectangle.Width - RightOffset, base.ClientRectangle.Bottom - BottomOffset); //down
        this.graphics_0.DrawLine(pen, base.ClientRectangle.Width - RightOffset, base.ClientRectangle.Top + TopOffset, base.ClientRectangle.Width - RightOffset, base.ClientRectangle.Bottom - BottomOffset); //right
        this.graphics_0.DrawLine(pen, LeftOffset, base.ClientRectangle.Top + TopOffset, base.ClientRectangle.Width - RightOffset, base.ClientRectangle.Top + TopOffset); //top

        string str = "";
        SolidBrush brush2 = new SolidBrush(this.class10_settings_0.color_12);

        MaxColumns = ctrlAdvTable_0.method_3();
        MaxRows = ctrlAdvTable_0.method_5();

        //if (!this.Dragging && !this.SingleChange && !this.IsSelected)
        if (!this.IsSelected)
        {
            TitleList.Clear();
            ValuesList.Clear();
            this.Xposs.Clear();
            this.Yposs.Clear();
            this.EditingList.Clear();
            this.Xposs2.Clear();
            this.Yposs2.Clear();
            this.EditingList2.Clear();

            //Get values and max/min values
            for (int i = 0; i < MaxRows; i++)
            {
                //add to list
                double[] NewD = new double[MaxColumns];

                for (int i2 = 0; i2 < MaxColumns; i2++)
                {
                    //Calculate max Y (first rows only)
                    if (i == 0)
                    {
                        double ThisV = double.Parse(ctrlAdvTable_0.grid.Rows[i].Cells[i2].Value.ToString());
                        if (i2 == 0)
                        {
                            MaxValueY = ThisV;
                            MinValueY = ThisV;
                        }
                        if (ThisV > MaxValueY) MaxValueY = ThisV;
                        if (ThisV < MinValueY) MinValueY = ThisV;

                        TitleList.Add(double.Parse(ctrlAdvTable_0.grid.Rows[i].Cells[i2].Value.ToString()));
                    }
                    else
                    {
                        double ThisV = double.Parse(ctrlAdvTable_0.grid.Rows[i].Cells[i2].Value.ToString());
                        if (i == 1 && i2 == 0)
                        {
                            MaxValueX = ThisV;
                            MinValueX = ThisV;
                        }
                        if (ThisV > MaxValueX) MaxValueX = ThisV;
                        if (ThisV < MinValueX) MinValueX = ThisV;

                        NewD[i2] = double.Parse(ctrlAdvTable_0.grid.Rows[i].Cells[i2].Value.ToString());
                    }
                }

                //add to list
                if (i != 0) ValuesList.Add(NewD);
            }
        }

        //Console.WriteLine(MaxValueX);
        //Console.WriteLine(MinValueX);

        //Spawn Graph
        Font font = new Font("Lucida Sans", 12f, FontStyle.Bold);
        str = this.ctrlAdvTable_0.method_24().ToString();
        this.graphics_0.DrawString(str, font, brush2, LeftOffset + (TWidht / 2) - (this.graphics_0.MeasureString(str, font).Width / 2f), base.ClientRectangle.Bottom - 20);

        font = new Font("Lucida Sans", 8f, FontStyle.Regular);
        
        for (int i = 0; i < MaxColumns; i++)
        {
            double ThisVal = TitleList[i];
            double Ypercent = (((ThisVal - MinValueY) * 100) / (MaxValueY - MinValueY)) / 100;

            str = ThisVal.ToString();
            int YPos = (int)(LeftOffset + (Ypercent * TWidht));

            this.graphics_0.DrawString(str, font, brush2, YPos - (this.graphics_0.MeasureString(str, font).Width / 2f), base.ClientRectangle.Bottom - BottomOffset + 4);

            if (this.IsSelected && this.EditingList2[i] == true) pen = new Pen(Color.FromArgb(0, 0, 200));
            else pen = new Pen(this.class10_settings_0.color_11);

            this.graphics_0.DrawLine(pen, YPos, base.ClientRectangle.Bottom - BottomOffset + 20, YPos, base.ClientRectangle.Bottom - BottomOffset + 30);

            if (this.IsSelected && EditMain && ColumnSelected == i)
            {
                pen = new Pen(this.class10_settings_0.color_11, 2f);
                this.graphics_0.DrawLine(pen, this.point_1.X, base.ClientRectangle.Bottom - BottomOffset + 20, this.point_1.X, base.ClientRectangle.Bottom - BottomOffset + 32);
            }

            //if (!this.Dragging && !this.SingleChange && !this.IsSelected)
            if (!this.IsSelected)
            {
                Xposs2.Add(YPos);
                Yposs2.Add(base.ClientRectangle.Bottom - BottomOffset + 20);
                EditingList2.Add(false);
            }
            //pen = new Pen(this.class10_0.color_11);
            if (i != 0 && i != MaxColumns - 1) this.graphics_0.DrawLine(pen2, YPos, base.ClientRectangle.Bottom - BottomOffset, YPos, base.ClientRectangle.Top + TopOffset); //down
        }
        for (int i = 0; i < MaxRows - 1; i++)
        {
            int XLast = 0;
            int YLast = 0;

            int XLastEdit = 0;
            int YLastEdit = 0;

            //pen = new Pen(Color.FromArgb(200 - (i * 50), 255, 200 - (i * 50)));
            //this.brush_0 = new SolidBrush(Color.FromArgb(200 - (i * 50), 255, 200 - (i * 50)));

            //if (!this.Dragging && !this.SingleChange && !this.IsSelected)
            if (!this.IsSelected)
            {
                this.Xposs.Add(new int[MaxColumns]);
                this.Yposs.Add(new int[MaxColumns]);
                this.EditingList.Add(new bool[MaxColumns]);
            }

            for (int i2 = 0; i2 < MaxColumns; i2++)
            {
                double Thistitle = TitleList[i2];
                double ThisVal = ValuesList[i][i2];
                str = ThisVal.ToString();

                double Ypercent = 0;
                double Xpercent = 0;

                if (MinValueY != MaxValueY) Ypercent = (((Thistitle - MinValueY) * 100) / (MaxValueY - MinValueY)) / 100;
                if (MinValueX != MaxValueX) Xpercent = (((ThisVal - MinValueX) * 100) / (MaxValueX - MinValueX)) / 100;

                if (Ypercent < 0) Ypercent = 0;
                if (Ypercent > 1) Ypercent = 1;
                if (Xpercent < 0) Xpercent = 0;
                if (Xpercent > 1) Xpercent = 1;

                int YPos = (int)(LeftOffset + 2 + (Ypercent * (TWidht - 2)));
                int Xpos = (int)(BottomOffset + (Xpercent * (THeight)));

                pen = new Pen(Color.FromArgb(200 - (i * 50), 255, 200 - (i * 50)));
                //if ((this.Dragging || this.SingleChange || this.IsSelected) && this.EditingList[i][i2] == true) this.brush_0 = new SolidBrush(Color.FromArgb(0, 0, 200));
                if (this.IsSelected && this.EditingList[i][i2] == true) this.brush_0 = new SolidBrush(Color.FromArgb(0, 0, 200));
                else this.brush_0 = new SolidBrush(Color.FromArgb(200 - (i * 50), 255, 200 - (i * 50)));
                
                //line from last spot to current
                if (i2 != 0) this.graphics_0.DrawLine(pen, YLast, base.ClientRectangle.Bottom - XLast, YPos, base.ClientRectangle.Bottom - Xpos);

                if (i2 != 0 && !EditMain)
                {
                    if (IsSelected && ((RowSelected == i && ColumnSelected == i2) || (RowSelected == i && ColumnSelected == i2-1)))
                    {
                        pen = new Pen(this.class10_settings_0.color_11, 2f);
                        pen.DashStyle = DashStyle.Dash;
                        if (RowSelected == i && ColumnSelected == i2)
                        {
                            this.graphics_0.DrawLine(pen, YLast, base.ClientRectangle.Bottom - XLast, YPos, this.point_1.Y);
                            XLastEdit = YPos;
                            YLastEdit = this.point_1.Y;
                        }
                        if (RowSelected == i && ColumnSelected == i2 - 1)
                        {
                            this.graphics_0.DrawLine(pen, XLastEdit, YLastEdit, YPos, base.ClientRectangle.Bottom - Xpos);
                        }
                    }
                }

                //draw square at current position
                this.graphics_0.FillRectangle(this.brush_0, YPos - 3, base.ClientRectangle.Bottom - Xpos - 3, 6, 6);

                //if (!this.Dragging && !this.SingleChange && !this.IsSelected)
                if (!this.IsSelected)
                {
                    this.Xposs[i][i2] = YPos;
                    this.Yposs[i][i2] = base.ClientRectangle.Bottom - Xpos;
                    this.EditingList[i][i2] = false;
                }

                brush2 = new SolidBrush(this.class10_settings_0.color_13);
                this.graphics_0.DrawString(str, font, brush2, 5, base.ClientRectangle.Bottom - Xpos - 8);

                XLast = Xpos;
                YLast = YPos;
            }
        }

        if (this.IsSelected)
        {
            this.method_12(Math.Round(this.double_1, 2).ToString() + "(" + Math.Round(this.double_0, 0).ToString() + "%)", (float)this.point_1.X, (float)this.point_1.Y, this.double_0 > 0.0);
        }
    }

    private void method_12(string string_0, float float_28, float float_29, bool bool_5)
    {
        if (bool_5) this.graphics_0.FillRectangle(new SolidBrush(Color.FromArgb(20, 190, 20)), (float)(float_28 - 5f), (float)(float_29 - 20f), (float)55f, (float)15f);
        else this.graphics_0.FillRectangle(new SolidBrush(Color.FromArgb(215, 120, 120)), (float)(float_28 - 5f), (float)(float_29 - 20f), (float)55f, (float)15f);
        this.graphics_0.DrawString(string_0, new Font("Lucida Sans", 7f, FontStyle.Regular), new SolidBrush(this.class10_settings_0.color_11), (float)(float_28 - 5f), (float)(float_29 - 20f));
    }

    private void frmAdvancedGraph_Resize(object sender, EventArgs e)
    {
        if (base.WindowState == FormWindowState.Normal)
        {
            //this.Invalidate();
            this.Refresh();
        }
    }



    private void frmAdvancedGraph_MouseEnter(object sender, EventArgs e)
    {
        this.Cursor = Cursors.Cross;
    }

    private void frmAdvancedGraph_MouseHover(object sender, EventArgs e)
    {
        base.Focus();
    }

    private void frmAdvancedGraph_MouseLeave(object sender, EventArgs e)
    {
        this.Cursor = Cursors.Default;
    }

    private void frmAdvancedGraph_MouseMove(object sender, MouseEventArgs e)
    {
        if (IsSelected)
        {
            this.point_1.X = e.X;
            this.point_1.Y = e.Y;

            if (!EditMain)
            {
                this.double_0 = ((float)(base.ClientRectangle.Bottom - BottomOffset - e.Y) / (float)(this.THeight)) * 100.0;
                this.double_1 = MinValueX + ((this.double_0 * (MaxValueX - MinValueX)) / 100);
            }
            else
            {
                this.double_0 = ((float)(base.ClientRectangle.Width - RightOffset - e.X) / (float)(this.TWidht)) * 100.0;
                this.double_1 = MaxValueY + ((this.double_0 * (MinValueY - MaxValueY)) / 100);
            }

            base.Invalidate();
        }
        //try
        //{
            /*this.point_1.X = e.X;
            this.point_1.Y = e.Y;
            if (this.SingleChange)
            {
                this.double_0 = -((float)(e.Y - this.point_0.Y) / (float)(this.THeight - this.point_0.Y)) * 100.0;
                base.Invalidate();
            }
            else if (this.Dragging && !this.SingleChange)
            {
                int x;
                int num5;
                int y;
                int num7;
                int num8;
                int num9;
                MouseEventArgs args = e;
                if (args.X > this.point_0.X)
                {
                    x = args.X;
                    num5 = this.point_0.X;
                    num8 = this.point_0.X;
                }
                else
                {
                    x = this.point_0.X;
                    num5 = args.X;
                    num8 = args.X;
                }
                if (args.Y > this.point_0.Y)
                {
                    y = args.Y;
                    num7 = this.point_0.Y;
                    num9 = this.point_0.Y;
                }
                else
                {
                    y = this.point_0.Y;
                    num7 = args.Y;
                    num9 = args.Y;
                }
                this.rectangle_0 = new Rectangle(num8, num9, x - num5, y - num7);
                this.bool_2 = true;
                for (int i = 0; i < MaxRows-1; i++)
                {
                    for (int j = 0; j < MaxColumns; j++)
                    {
                        //Refresh
                        if (this.rectangle_0.Contains(this.Xposs[i][j], this.Yposs[i][j]))
                        {
                            if (!this.EditingList[i][j])
                            {
                                this.EditingList[i][j] = true;

                                //method15 replacement
                                this.ctrlAdvTable_0.grid.ClearSelection();
                                this.ctrlAdvTable_0.grid[j, i+1].Selected = true;
                            }
                        }
                        else
                        {
                            this.EditingList[i][j] = false;
                            this.ctrlAdvTable_0.grid[j, i+1].Selected = false;
                        }
                    }
                }
                this.Refresh();
            }
            else
            {
                for (int k = 0; k < MaxRows - 1; k++)
                {
                    for (int m = 0; m < MaxColumns; m++)
                    {
                        Rectangle rectangle = new Rectangle((this.Xposs[k][m]) - 4, (this.Yposs[k][m]) - 4, 8, 8);
                        Point p = new Point(Control.MousePosition.X, Control.MousePosition.Y);
                        p = base.PointToClient(p);
                        if (rectangle.Contains(p.X, p.Y) && this.EditingList[k][m])
                        {
                            if (!this.bool_1)
                            {
                                this.bool_1 = true;
                                base.Invalidate();
                            }
                            break;
                        }
                        this.bool_1 = false;
                    }
                    //base.Invalidate();
                }
            }
            this.point_2.X = e.X;
            this.point_2.Y = e.Y;*/
        //}
        //catch { }
    }

    private void frmAdvancedGraph_MouseDown(object sender, MouseEventArgs e)
    {
        this.point_0.X = e.X;
        this.point_0.Y = e.Y;
        this.point_1.Y = e.Y;
        this.point_1.X = e.X;
        IsSelected = false;
        if (e.Button == MouseButtons.Left)
        {
            for (int i = 0; i < MaxRows - 1; i++)
            {
                for (int j = 0; j < MaxColumns; j++)
                {
                    Rectangle rectangle = new Rectangle(this.Xposs[i][j] - 4, this.Yposs[i][j] - 4, 8, 8);
                    Point p = new Point(Control.MousePosition.X, Control.MousePosition.Y);
                    p = base.PointToClient(p);
                    if (rectangle.Contains(p.X, p.Y) && !this.EditingList[i][j])
                    {
                        RowSelected = i;
                        ColumnSelected = j;
                        EditMain = false;
                        this.ctrlAdvTable_0.grid.ClearSelection();
                        IsSelected = true;
                        this.EditingList[i][j] = true;
                        this.ctrlAdvTable_0.grid[j, i + 1].Selected = true;
                        this.Refresh();
                        return;
                    }
                    //if (!rectangle.Contains(p.X, p.Y) && this.EditingList[i][j]) this.EditingList[i][j] = false;

                    //if (rectangle.Contains(p.X, p.Y) && this.EditingList[i][j]) this.SingleChange = true;
                    //else this.Dragging = true;
                }
            }
            for (int j = 0; j < MaxColumns; j++)
            {
                Rectangle rectangle = new Rectangle(this.Xposs2[j] - 1, this.Yposs2[j] - 1, 3, 12);
                Point p = new Point(Control.MousePosition.X, Control.MousePosition.Y);
                p = base.PointToClient(p);
                if (rectangle.Contains(p.X, p.Y) && !this.EditingList2[j])
                {
                    ColumnSelected = j;
                    EditMain = true;
                    this.ctrlAdvTable_0.grid.ClearSelection();
                    IsSelected = true;
                    this.EditingList2[j] = true;
                    this.ctrlAdvTable_0.grid[j, 0].Selected = true;
                    this.Refresh();
                    return;
                }
            }
        }
    }

    private void frmAdvancedGraph_MouseUp(object sender, MouseEventArgs e)
    {
        //this.Dragging = false;
        this.Refresh();
        if (this.IsSelected)
        {
            this.class18_0.method_155("ADV Table : " + this.class18_0.method_4().ToString() + " graph adjustments");

            try
            {
                if (!EditMain) this.ctrlAdvTable_0.grid[ColumnSelected, RowSelected + 1].Value = this.double_1;
                else this.ctrlAdvTable_0.grid[ColumnSelected, 0].Value = this.double_1;
            }
            catch { }

            //foreach (Class7_u class2 in this.list_0)
            //{
            //    try
            //    {
            //float num = this.class18_0.method_174((byte)class2.method_0(), (byte)class2.method_2());
            //this.class18_0.method_176((byte)class2.method_0(), (byte)class2.method_2(), num + (num * ((float)(Math.Round(this.double_0, 0) / 100.0))));
            //this.ctrlGrid_0.method_34(class2.method_0(), class2.method_2());
            //    }
            //    catch (Exception exception)
            //    {
            //        throw exception;
            //    }
            //}
            this.class18_0.method_153();
            this.IsSelected = false;
            this.Refresh();
        }
    }

    /*private void frmAdvancedGraph_KeyUp(object sender, KeyEventArgs e)
    {
        this.bool_4 = e.Control;
    }

    private void frmAdvancedGraph_KeyDown(object sender, KeyEventArgs e)
    {
        this.bool_4 = e.Control;
        if (((e.KeyCode == Keys.Up) && e.Control))
        {
            //this.frmGridChart_0.toolIncrease_Click(null, null);
            e.SuppressKeyPress = true;
            e.Handled = true;
        }
        else if (((e.KeyCode == Keys.Down) && e.Control))
        {
            //this.frmGridChart_0.toolDecrease_Click(null, null);
            e.SuppressKeyPress = true;
            e.Handled = true;
        }
        else if (e.KeyCode == Keys.Escape)
        {
            this.SingleChange = false;
        }
        else
        {
            e.Handled = false;
        }
    }

    private void frmAdvancedGraph_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
    {
        if (e.KeyCode == Keys.Escape)
        {
            this.Dragging = false;
            this.SingleChange = false;
            base.Invalidate();
        }
    }*/
}

