예제 #1
0
        /// <summary>
        /// Initializes a new instance of the Graph class.
        /// </summary>
        public Graph()
        {
            _drawHelper = new GraphDrawingHelper(this);
            _integralDrawHelper = new IntegralDrawingHelper(this);

            _resolution = 1;
            _window = Window.Standard;

            Calculator = new Calculator();

            _zoom = new ZoomMouseAdapter(this);
            _zoom.Zoom +=
                delegate(object sender, GenericEventArgs<Window> e)
                {
                    Window = e.Data;

                    RestoreDefaultAdapter();

                    var handler = WindowChanged;
                    if (handler != null)
                    {
                        handler(this, EventArgs.Empty);
                    }
                };

            _xRange = new XRangeMouseAdapter(this);
            _xRange.XRangeCreated +=
                delegate(object sender, XRangeCreatedEventArgs e)
                {
                    RestoreDefaultAdapter();

                    var handler = XRangeCreated;
                    if (handler != null)
                    {
                        handler(this, e);
                    }
                };

            _dragging = new DraggingMouseAdapter(this);
            _current = _dragging;

            // Prevents flickering
            DoubleBuffered = true;

            ResizeRedraw = true;
        }
예제 #2
0
 public void ActivateBoxZoom()
 {
     _current.Enabled = false;
     _current = _zoom;
     _current.Enabled = true;
 }
예제 #3
0
        public void ActivateXRangeSelection()
        {
            _current.Enabled = false;
            _current = _xRange;
            _current.Enabled = true;

            _displayedPoint = null;

            Invalidate();
        }
예제 #4
0
 private void RestoreDefaultAdapter()
 {
     _current.Enabled = false;
     if (_enableWindowDragging)
     {
         _current = _dragging;
         _current.Enabled = true;
     }
 }