void SurfaceMouseDown(object sender, MouseEventArgs e) { mouseStart = MouseHelper.FixMouseCoordinates(e); mouseDown = true; isSurfaceMoveMadeUndoable = false; if (cropContainer != null && ((undrawnElement == null) || (undrawnElement != null && DrawingMode != DrawingModes.Crop))) { RemoveElement(cropContainer, false); cropContainer = null; drawingElement = null; } if (drawingElement == null && DrawingMode != DrawingModes.None) { if (undrawnElement == null) { DeselectAllElements(); if (undrawnElement == null) { CreateUndrawnElement(); } } drawingElement = undrawnElement; drawingElement.Status = EditStatus.DRAWING; undrawnElement = null; // if a new element has been drawn, set location and register it if (drawingElement != null) { drawingElement.PropertyChanged += ElementPropertyChanged; if (!drawingElement.HandleMouseDown(mouseStart.X, mouseStart.Y)) { drawingElement.Left = mouseStart.X; drawingElement.Top = mouseStart.Y; } AddElement(drawingElement); drawingElement.Selected = true; } } else { // check whether an existing element was clicked // we save mouse down element separately from selectedElements (checked on mouse up), // since it could be moved around before it is actually selected mouseDownElement = elements.ClickableElementAt(mouseStart.X, mouseStart.Y); if (mouseDownElement != null) { mouseDownElement.Status = EditStatus.MOVING; } } }
void SurfaceMouseDown(object sender, MouseEventArgs e) { mX = e.X; mY = e.Y; mouseDown = true; drawingElement = null; if (DrawingMode == DrawingModes.Rect) // draw rectangle { DeselectAllElements(); drawingElement = new RectangleContainer(this); } else if (DrawingMode == DrawingModes.Ellipse) // draw ellipse { DeselectAllElements(); drawingElement = new EllipseContainer(this); } else if (DrawingMode == DrawingModes.Text) // draw textbox { DeselectAllElements(); drawingElement = new TextContainer(this); } else if (DrawingMode == DrawingModes.Line) // draw line { DeselectAllElements(); drawingElement = new LineContainer(this); } else if (DrawingMode == DrawingModes.Arrow) // draw arrow { DeselectAllElements(); drawingElement = new LineContainer(this); ((LineContainer)drawingElement).HasEndPointArrowHead = true; } else // check whether an existing element was clicked { // we save mouse down element separately from selectedElements (checked on mouse up), // since it could be moved around before it is actually selected mouseDownElement = elements.ClickableElementAt(e.X, e.Y); } // if a new element has been drawn, set location and register it if (drawingElement != null) { drawingElement.Left = e.X; drawingElement.Top = e.Y; drawingElement.Selected = true; drawingElement.ForeColor = conf.Editor_ForeColor; drawingElement.BackColor = conf.Editor_BackColor; drawingElement.Thickness = conf.Editor_Thickness; AddElement(drawingElement); } }
private void SurfaceMouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { mX = e.X; mY = e.Y; mouseDown = true; drawingElement = null; if (DrawingMode == DrawingModes.Rect) // Draw rectangle { drawingElement = new RectangleContainer(this); } else if (DrawingMode == DrawingModes.Ellipse) // Draw ellipse { drawingElement = new EllipseContainer(this); } else if (DrawingMode == DrawingModes.Line) // Draw line { drawingElement = new LineContainer(this); } else if (DrawingMode == DrawingModes.Text) // Draw textbox { drawingElement = new TextContainer(this); } // check whether an existing element was clicked // we save mouse down element separately from selectedElements (checked on mouse up), // since it could be moved around before it is actually selected if (DrawingMode == DrawingModes.None) { mouseDownElement = elements.ClickableElementAt(e.X, e.Y); } else { mouseDownElement = selectedElements.ClickableElementAt(e.X, e.Y); } if (mouseDownElement == null) { DeselectAllElements(); } // if a new element has been drawn, set location and register it if (drawingElement != null) { drawingElement.Left = e.X; drawingElement.Top = e.Y; drawingElement.Selected = true; drawingElement.ForeColor = conf.Editor_ForeColor; drawingElement.BackColor = conf.Editor_BackColor; drawingElement.GradientColor = conf.Editor_GradientColor; drawingElement.GradientType = conf.Editor_GradientType; drawingElement.Thickness = conf.Editor_Thickness; drawingElement.ArrowHeads = conf.Editor_ArrowHeads; AddElement(drawingElement); } } else if (e.Button == MouseButtons.Right) { DeselectAllElements(); } }