SmartQuant.FinChart.Chart.OnMouseMove C# (CSharp) Method

OnMouseMove() protected method

protected OnMouseMove ( MouseEventArgs e ) : void
e MouseEventArgs
return void
        protected override void OnMouseMove(MouseEventArgs e)
        {
            try
            {
                this.mouseX = e.X;
                this.mouseY = e.Y;
                if (this.prevMouseX != this.mouseX || this.prevMouseY != this.mouseY)
                {
                    if (this.canvasLeftOffset < e.X && e.X < Width - this.canvasRightOffset && this.canvasTopOffset < e.Y && e.Y < Height - this.canvasBottomOffset)
                    {
                        this.isMouseOverCanvas = true;
                        if (this.actionType == ChartActionType.Cross)
                            SetCursor(ChartCursorType.Cross);
                    }
                    else
                    {
                        this.isMouseOverCanvas = false;
                        if (this.actionType == ChartActionType.Cross)
                            Invalidate();
                        SetCursor(ChartCursorType.Default);
                    }

                    if (this.padSplit && this.padSplitIndex != 0)
                    {
                        Pad pad1 = this.pads[this.padSplitIndex];
                        Pad pad2 = this.pads[this.padSplitIndex - 1];
                        int num1 = e.Y;
                        if (pad1.Y2 - e.Y < 20)
                            num1 = pad1.Y2 - 20;
                        if (e.Y - pad2.Y1 < 20)
                            num1 = pad2.Y1 + 20;
                        if (pad1.Y2 - num1 >= 20 && num1 - pad2.Y1 >= 20)
                        {
                            int num2 = pad1.Y2 - num1;
                            int num3 = num1 - pad2.Y1;
                            this.padsHeightArray[this.padSplitIndex] = (object)((double)num2 / (double)(this.Height - this.canvasTopOffset - this.canvasBottomOffset));
                            this.padsHeightArray[this.padSplitIndex - 1] = (object)((double)num3 / (double)(this.Height - this.canvasTopOffset - this.canvasBottomOffset));
                            pad1.SetCanvas(pad1.X1, pad1.X2, num1, pad1.Y2);
                            pad2.SetCanvas(pad2.X1, pad2.X2, pad2.Y1, num1);
                        }
                        this.contentUpdated = true;
                        Invalidate();
                    }

                    foreach (Pad pad in this.pads)
                        if (pad.Y1 - 1 <= e.Y && e.Y <= pad.Y1 + 1 && this.pads.IndexOf(pad) != 0)
                            SetCursor(ChartCursorType.VSplitter);

                    foreach (Pad pad in this.pads)
                        if (pad.X1 <= e.X && e.X <= pad.X2 && pad.Y1 <= e.Y && e.Y <= pad.Y2)
                            pad.MouseMove(e);

                    if (this.isMouseOverCanvas && this.actionType == ChartActionType.Cross)
                        Invalidate();
                }
                this.prevMouseX = this.mouseX;
                this.prevMouseY = this.mouseY;
            }
            catch
            {
            }
        }