public void MouseUp(MouseManager m, PointF pt) { var r = Compute.GetRectangleByPoints(pt, m.PressedPoint); var shapes = m.UserLayers.IsVisible(r); #if PerfMon System.Diagnostics.Debug.WriteLine( $@"{StateManager.GetCurrentStateAndAction()} At ({pt}). Rect:{r}. Selected:{string.Join(Environment.NewLine, shapes.Select(s => s.ToDebugString()))}"); #endif shapes.ForEach(s => s.Select()); m.SelectedShapes.AddRange(shapes); if (m.OperationLayer.Selection.Visible) { m.OperationLayer.DeleteSelectionRectangle(); } m.State = StateManager.Normal; }
public List <AbstractShape> MouseMove(MouseManager m, PointF pt) { if (m.IsPressed) { var shapes = m.SelectedShapes; var size = pt - m.LastPoint.ToSizeF(); #if PerfMon System.Diagnostics.Debug.WriteLine( $@"{StateManager.GetCurrentStateAndAction()} At ({pt}) Move ({size}). Selected:{string.Join(Environment.NewLine, shapes)}"); #endif shapes.ForEach(s => s.Move(size)); } else { throw new InvalidOperationException(StateManager.GetNotExistStateErrorMessage()); } return(null); }
public List <AbstractShape> MouseMove(MouseManager m, PointF pt) { if (m.IsPressed && !m.IsDoubleClicked) { if (!m.MultiSelect && shape?.Selected != true) { m.SelectedShapes.ForEach(s => s.UnSelect()); m.SelectedShapes.Clear(); } if (shape == null) { m.State = StateManager.Selecting; return(m.State.MouseMove(m, pt)); } else { if (shape.CanSelect) { shape.Select(); m.SelectedShapes.Add(shape); var state = StateManager.GetStateByShape(shape, m.IsPressed); if (state != null) { m.State = state; return(m.State.MouseMove(m, pt)); } else { throw new InvalidOperationException(StateManager.GetNotExistStateErrorMessage()); } } else { if (shape is AbstractHandle) { var state = StateManager.GetStateByShape(shape, m.IsPressed); if (state != null) { m.State = state; return(m.State.MouseMove(m, pt)); } else { throw new InvalidOperationException(StateManager.GetNotExistStateErrorMessage()); } } else { m.State = StateManager.Selecting; return(m.State.MouseMove(m, pt)); } } } } else { List <AbstractShape> list = new List <AbstractShape>(); var shape = m.HitShape(pt); if (shape != null) { list.Add(shape); var state = StateManager.GetStateByShape(shape, m.IsPressed, m.IsDoubleClicked); if (state != null) { m.State = state; #if PerfMon System.Diagnostics.Debug.WriteLine( $"{StateManager.GetCurrentStateAndAction()} Hit {shape} Enter State : {m.State}"); #endif } } else { m.State = StateManager.Normal; } return(list); } }
public void MouseUp(MouseManager m, PointF pt) { }
public List <AbstractShape> MouseMove(MouseManager m, PointF pt) { return(null); }
public AbstractShape MouseDown(MouseManager m, PointF pt) { throw new InvalidOperationException(StateManager.GetNotExistStateErrorMessage()); }
public void MouseUp(MouseManager m, PointF pt) { m.State = StateManager.Normal; }