private void RestartInitValues() { // Reinitialize status moveAction = null; isMultiSelection = false; isAddSelection = false; isAddLink = false; changed = false; connStart = null; selectionArea.FillColor1 = SystemColors.Control; selectionArea.BorderColor = SystemColors.Control; selectionArea.Visible = false; document.CalcWindow(true); }
private void StartSelectElements(BaseElement selectedElement, Point mousePoint) { // Vefiry if element is in selection if (!document.SelectedElements.Contains(selectedElement)) { //Clear selection and add new element to selection document.ClearSelection(); document.SelectElement(selectedElement); } changed = false; moveAction = new MoveAction(); MoveAction.OnElementMovingDelegate onElementMovingDelegate = new Dalssoft.DiagramNet.MoveAction.OnElementMovingDelegate(OnElementMoving); moveAction.Start(mousePoint, document, onElementMovingDelegate); // Get Controllers controllers = new IController[document.SelectedElements.Count]; for(int i = document.SelectedElements.Count - 1; i >= 0; i--) { if (document.SelectedElements[i] is IControllable) { // Get General Controller controllers[i] = ((IControllable) document.SelectedElements[i]).GetController(); } else { controllers[i] = null; } } resizeAction = new ResizeAction(); resizeAction.Select(document); }
protected override void OnMouseUp(MouseEventArgs e) { Rectangle selectionRectangle = selectionArea.GetUnsignedRectangle(); if ((moveAction != null) && (moveAction.IsMoving)) { ElementEventArgs eventClickArg = new ElementEventArgs(selectedElement); OnElementClick(eventClickArg); moveAction.End(); moveAction = null; ElementMouseEventArgs eventMouseUpArg = new ElementMouseEventArgs(selectedElement, e.X, e.Y); OnElementMouseUp(eventMouseUpArg); if (changed) AddUndo(); } // Select if (isMultiSelection) { EndSelectElements(selectionRectangle); } // Add element else if (isAddSelection) { EndAddElement(selectionRectangle); } // Add link else if (isAddLink) { Point mousePoint = Gsc2Goc(new Point(e.X, e.Y)); EndAddLink(); AddUndo(); } // Resize if (resizeAction != null) { if (resizeAction.IsResizing) { Point mousePoint = Gsc2Goc(new Point(e.X, e.Y)); resizeAction.End(mousePoint); AddUndo(); } resizeAction.UpdateResizeCorner(); } RestartInitValues(); base.Invalidate(); base.OnMouseUp (e); }