Beispiel #1
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            BringToFront();
            if ((Parent != null) && (e.Button == MouseButtons.Left))
            {
                if (!_selected)
                {
                    owner.unselectAll();
                    owner.selectMe(this);
                }
                else
                {
                    // Was part of the selection
                    // owner.unselectNets();
                }

                Rectangle deleteButton = getDeleteButton();
                Rectangle shrinkButton = getShrinkButton();
                Rectangle activeButton = getActiveButton();

                if (deleteButton.Contains(e.Location))
                {
                    dragMode       = DragMode.DeleteBtn;
                    onDeleteButton = true;
                    Invalidate();
                }
                else if (_canShrink && shrinkButton.Contains(e.Location))
                {
                    dragMode       = DragMode.ShrinkBtn;
                    onShrinkButton = true;
                    Invalidate();
                }
                else if (_hasActiveSwitch && activeButton.Contains(e.Location))
                {
                    dragMode       = DragMode.ActiveBtn;
                    onActiveButton = true;
                    Invalidate();
                }
                else
                {
                    dragPa    = (SystemPanel)Parent;
                    dragStart = dragPa.fromScreen(Vector.V(e.X + Location.X, e.Y + Location.Y));
                    prevPos   = center;
                    dragMode  = DragMode.Moving;
                    dragPa.initiateMove(this);
                }
            }
        }
Beispiel #2
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);
            switch (dragMode)
            {
            case DragMode.Moving:
                Vector mpos  = Vector.V(Location.X + e.X, Location.Y + e.Y);
                Vector delta = dragPa.fromScreen(mpos) - dragStart;
                center = prevPos + delta;
                Vector loc = center - dim / 2;
                if (shrinked)
                {
                    loc = center - Vector.V(_shrinkSize) * scale / 2;
                }
                // loc.round(20);
                Location = dragPa.toScreen(loc).Point;
                dragPa.temporaryMove(this, delta);
                dragPa.Invalidate();
                break;

            case DragMode.DeleteBtn:
                Rectangle deleteButton = getDeleteButton();
                if (deleteButton.Contains(e.Location))
                {
                    if (!onDeleteButton)
                    {
                        onDeleteButton = true;
                        Invalidate();
                    }
                }
                else
                {
                    if (onDeleteButton)
                    {
                        onDeleteButton = false;
                        Invalidate();
                    }
                }
                break;

            case DragMode.ShrinkBtn:
                Rectangle shrinkButton = getShrinkButton();
                if (shrinkButton.Contains(e.Location))
                {
                    if (!onShrinkButton)
                    {
                        onShrinkButton = true;
                        Invalidate();
                    }
                }
                else
                {
                    if (onShrinkButton)
                    {
                        onShrinkButton = false;
                        Invalidate();
                    }
                }
                break;

            case DragMode.ActiveBtn:
                Rectangle activeButton = getActiveButton();
                if (activeButton.Contains(e.Location))
                {
                    if (!onActiveButton)
                    {
                        onActiveButton = true;
                        Invalidate();
                    }
                }
                else
                {
                    if (onActiveButton)
                    {
                        onActiveButton = false;
                        Invalidate();
                    }
                }
                break;
            }
        }