ImageGlass.ImageBox.ProcessPanning C# (CSharp) Method

ProcessPanning() protected method

Performs mouse based panning
protected ProcessPanning ( MouseEventArgs e ) : void
e MouseEventArgs /// The instance containing the event data. ///
return void
        protected virtual void ProcessPanning(MouseEventArgs e)
        {
            if (AutoPan && !ViewSize.IsEmpty && SelectionMode == ImageBoxSelectionMode.None)
            {
                Size clientSize;

                clientSize = GetInsideViewPort(true).Size;

                if (!IsPanning && (ScaledImageWidth > clientSize.Width || ScaledImageHeight > clientSize.Height))
                {
                    _startMousePosition = e.Location;
                    IsPanning = true;
                }

                if (IsPanning)
                {
                    int x;
                    int y;
                    Point position;

                    if (!InvertMouse)
                    {
                        x = -_startScrollPosition.X + (_startMousePosition.X - e.Location.X);
                        y = -_startScrollPosition.Y + (_startMousePosition.Y - e.Location.Y);
                    }
                    else
                    {
                        x = -(_startScrollPosition.X + (_startMousePosition.X - e.Location.X));
                        y = -(_startScrollPosition.Y + (_startMousePosition.Y - e.Location.Y));
                    }

                    position = new Point(x, y);

                    UpdateScrollPosition(position);
                }
            }
        }
ImageBox