Esempio n. 1
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);

            if (_isDragStarted)
            {
                var oldRect = _rubberbandRect;

                _rubberbandRect = RectUtil.GetRectangleFromDiagonalPoints(_dragStartPoint, e.Location);

                var newRect = _rubberbandRect;

                oldRect.Inflate(8, 8);
                newRect.Inflate(8, 8);

                Invalidate(oldRect);
                Invalidate(newRect);
            }
            else if (_isDragPrepared)
            {
                if (!_dragStartRect.Contains(e.X, e.Y))
                {
                    _isDragStarted = true;
                }
            }
        }
Esempio n. 2
0
 protected virtual void HandleDragFinish(object sender, MouseEventArgs e)
 {
     _rubberbandRequest.Toggle = _toggle;
     _rubberbandRequest.Bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, e.Location);
     Handle.Host.HideFeedback(_rubberbandRequest);
     Handle.Host.PerformRequest(_rubberbandRequest);
     Host.Site.EditorCanvas.Cursor = _oldCursor;
 }
Esempio n. 3
0
        protected override void OnFigureDragMove(MouseEventArgs e)
        {
            base.OnFigureDragMove(e);

            _rubberbandRequest.Toggle = _toggle;
            _rubberbandRequest.Bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, e.Location);
            Host.ShowFeedback(_rubberbandRequest);
        }
Esempio n. 4
0
 public override bool HandleDragMove(MouseEventArgs e)
 {
     if (_target != null)
     {
         _request.Bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, e.Location);
         _target.ShowFeedback(_request);
     }
     return(true);
 }
Esempio n. 5
0
        protected override void OnFigureDragFinish(MouseEventArgs e)
        {
            base.OnFigureDragFinish(e);

            _rubberbandRequest.Toggle = _toggle;
            _rubberbandRequest.Bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, e.Location);
            Host.HideFeedback(_rubberbandRequest);
            Host.PerformRequest(_rubberbandRequest);
            Host.Site.EditorCanvas.Cursor = _oldCursor;
        }
Esempio n. 6
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);

            if (_isDragStarted)
            {
                _rubberbandRect = RectUtil.GetRectangleFromDiagonalPoints(_dragStartPoint, e.Location);
            }

            ClearDragState();
        }
Esempio n. 7
0
 public override bool HandleDragFinish(MouseEventArgs e)
 {
     if (_target != null)
     {
         var bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, e.Location);
         _request.Bounds = bounds;
         _target.HideFeedback(_request);
         CreateNode(_target, bounds);
         if (!KeyUtil.IsControlPressed())
         {
             _target.Site.EditorCanvas.Tool = _defaultTool;
         }
         _target = null;
     }
     return(true);
 }
Esempio n. 8
0
        public override bool HandleDragMove(MouseEventArgs e)
        {
            using (_Host.RootEditor.Figure.DirtManager.BeginDirty()) {
                if (_targets != null)
                {
                    _targets.HideFeedback(_moveRequest);
                }

                var delta      = (Size)e.Location - (Size)_startPoint;
                var horizontal = Math.Abs(delta.Width) > Math.Abs(delta.Height);
                horizontal = Math.Abs(delta.Width) < 40 && Math.Abs(delta.Height) < 40 ? false: horizontal;

                var content = _Host.RootEditor.Content;
                if (horizontal)
                {
                    _moveRequest.MovingEditors = content.Children.Where(edi => edi.Figure.Left > _startPoint.X).ToArray();
                }
                else
                {
                    _moveRequest.MovingEditors = content.Children.Where(edi => edi.Figure.Top > _startPoint.Y).ToArray();
                }
                _targets = new EditorBundle(_moveRequest.MovingEditors);

                var moveDelta = horizontal ?
                                new Size(delta.Width, 0) :
                                new Size(0, delta.Height);
                _moveRequest.MoveDelta = moveDelta;
                _targets.ShowFeedback(_moveRequest);

                _spaceRequest.Horizontal = horizontal;
                if (horizontal)
                {
                    _spaceRequest.Bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, new Point(e.X, _startPoint.Y + 20));
                }
                else
                {
                    _spaceRequest.Bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, new Point(_startPoint.X + 20, e.Y));
                }
                _Host.RootEditor.Content.ShowFeedback(_spaceRequest);
            }

            return(true);
        }
Esempio n. 9
0
        public override bool HandleDragMove(System.Windows.Forms.MouseEventArgs e)
        {
            if (e.Location == _prevPoint)
            {
                return(true);
            }

            var r = RectUtil.GetRectangleFromDiagonalPoints(e.Location, _prevPoint);

            var target = _Host.RootEditor.FindEditor(
                editor => _selectJudge(editor) && editor.Figure.IntersectsWith(r) && editor.CanUnderstand(_request)
                );

            if (target != null)
            {
                target.RequestSelect(SelectKind.True, false);
            }

            _prevPoint = e.Location;

            return(true);
        }
Esempio n. 10
0
 protected virtual void HandleDragMove(object sender, MouseEventArgs e)
 {
     _rubberbandRequest.Toggle = _toggle;
     _rubberbandRequest.Bounds = RectUtil.GetRectangleFromDiagonalPoints(_startPoint, e.Location);
     Handle.Host.ShowFeedback(_rubberbandRequest);
 }