예제 #1
0
 private void Form1_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         using (Teigha.GraphicsSystem.View pView = helperDevice.ActiveView)
         {
             ClearSelection();
             selRect = new RectFram(toEyeToWorld(e.X, e.Y));
             pView.Add(selRect);
             startSelPoint = new Point2d(e.X, e.Y);
             Invalidate();
             selRect.setValue(toEyeToWorld(e.X + _SelectRegion, e.Y + _SelectRegion));
             pView.Select(
                 new Point2dCollection(new Point2d[] { startSelPoint, new Point2d(e.X + _SelectRegion, e.Y + _SelectRegion) }),
                 new SR(selected, database.CurrentSpaceId),
                 startSelPoint.X < e.X
       ? Teigha.GraphicsSystem.SelectionMode.Window
       : Teigha.GraphicsSystem.SelectionMode.Crossing);
             pView.Erase(selRect);
             selRect = null;
             gripManager.updateSelection(selected);
             helperDevice.Invalidate();
             Invalidate();
         }
     }
     else if (e.Button == MouseButtons.Right)
     {
         _IsMoving     = true;
         startSelPoint = new Point2d(e.X, e.Y);
     }
 }
예제 #2
0
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            switch (mouseMode)
            {
            case Mode.Quiescent:
            {
                if (gripManager.OnMouseDown(e.X, e.Y))
                {
                    mouseMode = Mode.DragDrop;
                }
                else
                {
                    using (Teigha.GraphicsSystem.View pView = helperDevice.ActiveView)
                    {
                        selRect = new RectFram(toEyeToWorld(e.X, e.Y));
                        pView.Add(selRect);
                        startSelPoint = new Point2d(e.X, e.Y);
                        Invalidate();
                        mouseMode = Mode.Selection;
                    }
                }
                break;
            }

            case Mode.Selection:
            {
                using (Teigha.GraphicsSystem.View pView = helperDevice.ActiveView)
                {
                    pView.Select(new Point2dCollection(new Point2d[] { startSelPoint, new Point2d(e.X, e.Y) }),
                                 new SR(selected, database.CurrentSpaceId), startSelPoint.X < e.X ? Teigha.GraphicsSystem.SelectionMode.Window : Teigha.GraphicsSystem.SelectionMode.Crossing);
                    pView.Erase(selRect);
                    selRect = null;

                    gripManager.updateSelection(selected);
                    helperDevice.Invalidate();
                    Invalidate();
                }
                mouseMode = Mode.Quiescent;
                break;
            }

            case Mode.DragDrop:
            {
                using (Teigha.GraphicsSystem.View pView = helperDevice.ActiveView)
                {
                    gripManager.DragFinal(toEyeToWorld(e.X, e.Y), true);
                    helperDevice.Model.Invalidate(InvalidationHint.kInvalidateAll);
                    Invalidate();
                }
                mouseMode = Mode.Quiescent;
                break;
            }

            default:
                break;
            }
        }