public void DeselectElement(DrawableContainer element)
 {
     element.HideGrippers();
     element.Selected = false;
     selectedElements.Remove(element);
     MovingElementChanged(this, selectedElements);
 }
Esempio n. 2
0
        public void DeselectElement(IDrawableContainer container)
        {
            DrawableContainer element = container as DrawableContainer;

            element.HideGrippers();
            element.Selected = false;
            selectedElements.Remove(element);
            FieldAggregator.UnbindElement(element);
            if (MovingElementChanged != null)
            {
                MovingElementChanged(this, selectedElements);
            }
        }
        void SurfaceMouseUp(object sender, MouseEventArgs e)
        {
            mouseDown        = false;
            mouseDownElement = null;
            if (DrawingMode == DrawingModes.None) // check whether an existing element was clicked
            {
                DrawableContainer element = elements.ClickableElementAt(e.X, e.Y);
                bool shiftModifier        = (Control.ModifierKeys & Keys.Shift) == Keys.Shift;
                if (element != null)
                {
                    bool alreadySelected = selectedElements.Contains(element);
                    if (shiftModifier)
                    {
                        if (alreadySelected)
                        {
                            DeselectElement(element);
                        }
                        else
                        {
                            SelectElement(element);
                        }
                    }
                    else
                    {
                        if (!alreadySelected)
                        {
                            DeselectAllElements();
                            SelectElement(element);
                        }
                    }
                }
                else if (!shiftModifier)
                {
                    DeselectAllElements();
                }
            }

            if (selectedElements.Count > 0)
            {
                selectedElements.ShowGrippers();
                selectedElements.Selected = true;
            }
            if (drawingElement != null)
            {
                if (!drawingElement.InitContent())
                {
                    elements.Remove(drawingElement);
                    Invalidate();
                }
                else
                {
                    if (Math.Abs(drawingElement.Width) < 5 && Math.Abs(drawingElement.Height) < 5)
                    {
                        drawingElement.Width  = 25;
                        drawingElement.Height = 25;
                    }
                    SelectElement(drawingElement);
                    drawingElement.Selected = true;
                }
                drawingElement = null;
            }
            Invalidate();
        }