Beispiel #1
0
        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)
        {
            mouseStart = e.Location;

            // check contextmenu
            if (e.Button == MouseButtons.Right) {
                DrawableContainerList selectedList = null;
                if (selectedElements != null && selectedElements.Count > 0) {
                    selectedList = selectedElements;
                } else {
                    // Single element
                    DrawableContainer rightClickedContainer = elements.ClickableElementAt(mouseStart.X, mouseStart.Y);
                    if (rightClickedContainer != null) {
                        selectedList = new DrawableContainerList();
                        selectedList.Add(rightClickedContainer);
                    }
                }
                if (selectedList != null && selectedList.Count > 0) {
                    selectedList.ShowContextMenu(e, this);
                }
                return;
            }

            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;
                }
            }
        }
Beispiel #3
0
        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;
                }
            }
        }