//TODO Styles DragIndicator
        private void OnMouseMove_BeginReorder(Point mousePosition)
        {
            DataGridColumnHeader dragIndicator = new DataGridColumnHeader
            {
                OwningColumn    = OwningColumn,
                IsEnabled       = false,
                Content         = Content,
                ContentTemplate = ContentTemplate
            };

            dragIndicator.PseudoClasses.Add(":dragIndicator");

            IControl dropLocationIndicator = OwningGrid.DropLocationIndicatorTemplate?.Build();

            //dropLocationIndicator.SetStyleWithType(OwningGrid.DropLocationIndicatorStyle);

            //if (OwningColumn.DragIndicatorStyle != null)
            //{
            //    dragIndicator.SetStyleWithType(OwningColumn.DragIndicatorStyle);
            //}
            //else if (OwningGrid.DragIndicatorStyle != null)
            //{
            //    dragIndicator.SetStyleWithType(OwningGrid.DragIndicatorStyle);
            //}

            // If the user didn't style the dropLocationIndicator's Height, default to the column header's height
            if (dropLocationIndicator != null && double.IsNaN(dropLocationIndicator.Height) && dropLocationIndicator is Control element)
            {
                element.Height = Bounds.Height;
            }

            // pass the caret's data template to the user for modification
            DataGridColumnReorderingEventArgs columnReorderingEventArgs = new DataGridColumnReorderingEventArgs(OwningColumn)
            {
                DropLocationIndicator = dropLocationIndicator,
                DragIndicator         = dragIndicator
            };

            OwningGrid.OnColumnReordering(columnReorderingEventArgs);
            if (columnReorderingEventArgs.Cancel)
            {
                return;
            }

            // The user didn't cancel, so prepare for the reorder
            _dragColumn = OwningColumn;
            _dragMode   = DragMode.Reorder;
            _dragStart  = mousePosition;

            // Display the reordering thumb
            OwningGrid.ColumnHeaders.DragColumn            = OwningColumn;
            OwningGrid.ColumnHeaders.DragIndicator         = columnReorderingEventArgs.DragIndicator;
            OwningGrid.ColumnHeaders.DropLocationIndicator = columnReorderingEventArgs.DropLocationIndicator;

            // If the user didn't style the dragIndicator's Width, default it to the column header's width
            if (double.IsNaN(dragIndicator.Width))
            {
                dragIndicator.Width = Bounds.Width;
            }
        }
        internal void OnMouseMove(ref bool handled, Point mousePosition, Point mousePositionHeaders)
        {
            if (handled || this.OwningGrid == null || this.OwningGrid.ColumnHeaders == null)
            {
                return;
            }

            Debug.Assert(this.OwningGrid.Parent is UIElement);

            double distanceFromLeft  = mousePosition.X;
            double distanceFromRight = this.ActualWidth - distanceFromLeft;

            OnMouseMove_Resize(ref handled, mousePositionHeaders);

            OnMouseMove_Reorder(ref handled, mousePosition, mousePositionHeaders, distanceFromLeft, distanceFromRight);

            // if we still haven't done anything about moving the mouse while
            // the button is down, we remember that we're dragging, but we don't
            // claim to have actually handled the event
            if (_dragMode == DragMode.MouseDown)
            {
                _dragMode = DragMode.Drag;
            }

            if (_dragMode == DragMode.Drag)
            {
                DragDeltaEventArgs dragDeltaEventArgs = new DragDeltaEventArgs(mousePositionHeaders.X - _lastMousePositionHeaders.Value.X, mousePositionHeaders.Y - _lastMousePositionHeaders.Value.Y);
                this.OwningGrid.OnColumnHeaderDragDelta(dragDeltaEventArgs);
            }

            _lastMousePositionHeaders = mousePositionHeaders;

            SetDragCursor(mousePosition);
        }
Exemple #3
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);
            switch (dragMode)
            {
            case DragMode.None: return;

            case DragMode.MouseDownRight:
                dragMode = DragMode.None;
                Invalidate();
                break;

            case DragMode.MouseDown:
                // Window Select
                dragMode  = DragMode.SelectWin;
                dragStop  = fromScreen(new Vector(e.Location.X, e.Location.Y));
                showCaret = true;
                Invalidate();
                break;

            case DragMode.SelectWin:
                dragStop = fromScreen(new Vector(e.Location.X, e.Location.Y));
                Invalidate();
                break;
            }
        }
Exemple #4
0
        protected override void OnMouseDown(MouseButtonEventArgs e)
        {
            base.OnMouseDown(e);

            Vector3 point = new Vector3(0, 0, 0);

            Glu.UnProject(new Vector3(e.X, e.Y, 0.0f), ref point);
            Vector2 point2 = new Vector2(point.X, point.Y);

            if (e.Button == MouseButton.Left)
            {
                if (Vector2.Distance(start, point2) < selectionRadius)
                {
                    dragMode = DragMode.Start;
                    start    = point2;
                }
                else if (Vector2.Distance(end, point2) < selectionRadius)
                {
                    dragMode = DragMode.End;
                    end      = point2;
                }
            }
            else if (e.Button == MouseButton.Right)
            {
                pathSet = false;
                OnResize();
            }
        }
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);

            if (ArchiveMaintainer == null || ArchiveMaintainer.LoadingInitialData)
            {
                return;
            }

            // Do the same thing for everything here for consistency
            DataTimeRange everything = CurrentArchiveRange;

            if (MouseDragging == DragMode.New && e.X == MouseDragStart)
            {
                LongPoint virtualclicked = LongPoint.DeTranslateFromScreen(new LongPoint(e.Location), everything, DataRange.UnitRange, new LongRectangle(ScrollViewRectangle));
                long      proposedoffset = ArchiveMaintainer.GraphNow.Ticks - (virtualclicked.X + (GraphWidth.Ticks / 2));

                GraphOffset = TimeSpan.FromTicks(proposedoffset > 0 ? proposedoffset : 0);
            }

            TimerScroll = ScrollMode.None;
            Scroller.Stop();

            AutoScaleGraph();

            GridSpacing = BodgeSpacing(GraphWidth);
            RefreshXRange(false);

            MouseDragging = DragMode.None;
            MouseResizing = ResizeMode.None;
        }
Exemple #6
0
        //TODO DragEvents
        //TODO MouseCapture
        internal void OnMouseLeftButtonUp(ref bool handled, PointerEventArgs args, Point mousePosition, Point mousePositionHeaders)
        {
            IsPressed = false;

            if (OwningGrid != null && OwningGrid.ColumnHeaders != null)
            {
                if (_dragMode == DragMode.MouseDown)
                {
                    OnMouseLeftButtonUp_Click(args.KeyModifiers, ref handled);
                }
                else if (_dragMode == DragMode.Reorder)
                {
                    // Find header we're hovering over
                    int targetIndex = GetReorderingTargetDisplayIndex(mousePositionHeaders);

                    if (((!OwningColumn.IsFrozen && targetIndex >= OwningGrid.FrozenColumnCount) ||
                         (OwningColumn.IsFrozen && targetIndex < OwningGrid.FrozenColumnCount)))
                    {
                        OwningColumn.DisplayIndex = targetIndex;

                        DataGridColumnEventArgs ea = new DataGridColumnEventArgs(OwningColumn);
                        OwningGrid.OnColumnReordered(ea);
                    }
                }

                SetDragCursor(mousePosition);

                // Variables that track drag mode states get reset in DataGridColumnHeader_LostMouseCapture
                args.Pointer.Capture(null);
                OnLostMouseCapture();
                _dragMode = DragMode.None;
                handled   = true;
            }
        }
 public void endDrag()
 {
     if (dragMode == DragMode.none)
         return;
     dragMode = DragMode.none;
     editableObject.draged = false;
 }
Exemple #8
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            Rectangle seq = new Rectangle();

            getSequencerGeometry(ref seq);
            if (seq.Contains(e.Location))
            {
                dragMode = DragMode.Holding;
                dragcol  = (e.Location.X - seq.X) * _columns / seq.Width;
                if (dragcol < 0)
                {
                    dragcol = 0;
                }
                if (dragcol >= _columns)
                {
                    dragcol = _columns - 1;
                }
                dragrow = (e.Location.Y - seq.Y) * _rows / seq.Height;
                if (dragrow < 0)
                {
                    dragrow = 0;
                }
                if (dragrow >= _rows)
                {
                    dragrow = _rows - 1;
                }
                dragrow = _rows - 1 - dragrow;
                Invalidate();
            }
            else
            {
                forwardOnMouseDown(e);
            }
        }
Exemple #9
0
        //TODO DragEvents
        internal void OnMouseMove(ref bool handled, Point mousePosition, Point mousePositionHeaders)
        {
            if (handled || OwningGrid == null || OwningGrid.ColumnHeaders == null)
            {
                return;
            }

            Debug.Assert(OwningGrid.Parent is InputElement);

            double distanceFromLeft  = mousePosition.X;
            double distanceFromRight = Bounds.Width - distanceFromLeft;

            OnMouseMove_Resize(ref handled, mousePositionHeaders);

            OnMouseMove_Reorder(ref handled, mousePosition, mousePositionHeaders, distanceFromLeft, distanceFromRight);

            // if we still haven't done anything about moving the mouse while
            // the button is down, we remember that we're dragging, but we don't
            // claim to have actually handled the event
            if (_dragMode == DragMode.MouseDown)
            {
                _dragMode = DragMode.Drag;
            }

            _lastMousePositionHeaders = mousePositionHeaders;

            SetDragCursor(mousePosition);
        }
Exemple #10
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            if (m_dragActive == DragMode.dmWindowZoom)
            {
                ControlPaint.DrawReversibleFrame(m_dragWindowRectangle, Color.Black, FrameStyle.Dashed);
                Rectangle r  = RectangleToClient(m_dragWindowRectangle);
                float     x1 = absx(r.Left);
                float     y1 = absx(r.Top);
                float     w  = absx(r.Right) - absx(r.Left);
                float     h  = absy(r.Bottom) - absy(r.Top);
                Fit = false;
                if (Square)
                {
                    DisplayScale = Math.Min((float)this.Width / w, (float)this.Height / h);
                }
                else
                {
                    DisplayScaleXY = new PointF((float)this.Width / w, (float)this.Height / h);
                }

                PointF asPos = abs2scr(new PointF(x1, y1));
                AutoScrollPosition    = new Point((int)asPos.X, (int)asPos.Y);
                m_dragWindowRectangle = new Rectangle();
            }
            if (m_dragActive == DragMode.dmDragHandle)
            {
                if (m_dragOa != null && e_ArtworkChanged != null)
                {
                    e_ArtworkChanged(m_dragOa);
                }
            }
            m_dragActive = DragMode.dmNone;
            base.OnMouseUp(e);
        }
Exemple #11
0
        /**
         * <summary>Snaps the object to a track at a given position along it</summary>
         * <param name="newTrack">The new DragTrack to snap to</param>
         * <param name="positionAlong">How far along the track, as a decimal of its length, to snap to</param>
         */
        public void SnapToTrack(DragTrack newTrack, float positionAlong)
        {
            if (newTrack == null)
            {
                return;
            }

            if (track && newTrack != track)
            {
                track.OnDisconnect(this);
            }

            dragMode = DragMode.LockToTrack;

            if (IsAutoMoving())
            {
                activeAutoMove.Stop(track, this, true);
                activeAutoMove = null;
            }

            track = newTrack;
            track.SetPositionAlong(positionAlong, this);

            if (_rigidbody)
            {
                _rigidbody.velocity        = Vector3.zero;
                _rigidbody.angularVelocity = Vector3.zero;
            }
        }
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            if (ArchiveMaintainer == null || ArchiveMaintainer.LoadingInitialData)
            {
                return;
            }

            DataTimeRange everything = CurrentArchiveRange;

            long selectedleft  = LongPoint.TranslateToScreen(new LongPoint(GraphLeft.Ticks, 1), everything, DataRange.UnitRange, new LongRectangle(ScrollViewRectangle)).X;
            long selectedright = LongPoint.TranslateToScreen(new LongPoint(GraphRight.Ticks, 1), everything, DataRange.UnitRange, new LongRectangle(ScrollViewRectangle)).X;

            if (e.Location.X > selectedleft - 3 && e.Location.X < selectedleft + 3)
            {
                MouseResizing = ResizeMode.Left;
            }
            else if (e.Location.X > selectedright - 3 && e.Location.X < selectedright + 3)
            {
                MouseResizing = ResizeMode.Right;
            }
            else if (e.Location.X > selectedleft - 3 && e.Location.X < selectedright + 3)
            {
                MouseDragging = DragMode.Existing;
            }
            else
            {
                MouseDragStart = e.X;
                MouseDragging  = DragMode.New;
            }
        }
Exemple #13
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            if ((e.Button == MouseButtons.Left) || (e.Button == MouseButtons.Right))
            {
                if (dragMode != DragMode.None)
                {
                    abortDrag();
                    return;
                }

                Vector mp = fromScreen(new Vector(e.Location.X, e.Location.Y));

                if (selection.items > 0)
                {
                    selection.unselect();
                    Invalidate();
                }

                if (e.Button == MouseButtons.Left)
                {
                    dragMode = DragMode.MouseDown;
                }
                else
                {
                    dragMode = DragMode.MouseDownRight;
                }
                dragStart = mp;
            }
        }
        private void StartDrag(SAMTime gameTime, InputState istate)
        {
            for (int i = 0; i < _nodes.Length; i++)
            {
                if (_nodes[i].DrawingBoundingRect.Contains(istate.GamePointerPositionOnMap))
                {
                    isDragging       = true;
                    isActiveDragging = false;
                    mouseStartPos    = istate.GamePointerPositionOnMap.X;
                    offsetStart      = _nodes[i].NodePos.X;
                    dragAnchor       = i;
                    dragMode         = DragMode.Node;
                    dragStartTime    = gameTime.TotalElapsedSeconds;

                    return;
                }
            }

            isDragging    = true;
            mouseStartPos = istate.GamePointerPositionOnMap.X;
            offsetStart   = _nodes[0].Position.X;
            dragAnchor    = -1;
            dragMode      = DragMode.Global;
            dragStartTime = gameTime.TotalElapsedSeconds;
        }
Exemple #15
0
        private Point SetCursorForPosition(Point position)
        {
            DragMode dragMode = CalculateDragMode(position);

            CoreCursorType cursorType;

            if (dragMode == DragMode.Full)
            {
                cursorType = CoreCursorType.Hand;
            }
            else if (dragMode == DragMode.TopLeft || dragMode == DragMode.BottomRight)
            {
                cursorType = CoreCursorType.SizeNorthwestSoutheast;
            }
            else if (dragMode == DragMode.TopRight || dragMode == DragMode.BottomLeft)
            {
                cursorType = CoreCursorType.SizeNortheastSouthwest;
            }
            else if (dragMode == DragMode.Top || dragMode == DragMode.Bottom)
            {
                cursorType = CoreCursorType.SizeNorthSouth;
            }
            else if (dragMode == DragMode.Left || dragMode == DragMode.Right)
            {
                cursorType = CoreCursorType.SizeWestEast;
            }
            else
            {
                cursorType = CoreCursorType.Arrow;
            }

            FrameworkElementExtensions.SetCursor(this, new CoreCursor(cursorType, (uint)cursorType));
            return(position);
        }
Exemple #16
0
        private bool HandleMouseDown()
        {
            bool left  = Event.current.button == 0;
            bool right = Event.current.button == 1;

            if (!left && !right)
            {
                return(false);
            }

            if (MouseRect.Contains(Event.current.mousePosition))
            {
                var mousePos = Event.current.mousePosition - new Vector2(0, 16);
                var newNodes = new List <GraphNode>();
                newNodes.AddRange(AllNodes
                                  .Where(node => node.PhysicalRect.Contains(mousePos))
                                  .OrderByDescending(node => node.Id));

                if (!newNodes.Any())
                {
                    DeselectNodes(SelectedNodes);
                    GUI.FocusControl(string.Empty);
                }
                else if (!(CurrentMouseMode is ConnectMode))
                {
                    if (!SelectedNodes.Contains(newNodes.First()))
                    {
                        if (!CtrlPressed)
                        {
                            DeselectNodes(SelectedNodes);
                        }

                        SelectNodes(newNodes.First());
                    }

                    if (left)
                    {
                        NextMouseMode = new DragMode(this);
                    }
                    if (right)
                    {
                        newNodes.First().HandleRightClick();
                    }

                    Event.current.Use();
                    return(true);
                }

                if (CurrentMouseMode is NormalMode && left)
                {
                    NextMouseMode = new SelectMode(this);

                    Event.current.Use();
                    return(true);
                }
            }

            return(false);
        }
Exemple #17
0
 void OnMouseUp(object sender, MouseEventArgs mouseEventArgs)
 {
     _graph.PanningIsEnabled = true;
     _dragMode             = DragMode.None;
     _dragStart            = null;
     _hypotheticalDragMode = DragMode.None;
     _graph.Control.Cursor = Cursors.Default;
 }
Exemple #18
0
        public void CropUpProcess()
        {
            PreviewRect.Opacity = 0.0;
            Mode        = DragMode.Wait;
            this.Cursor = null;

            Croptmr.Stop();
        }
    public override void OnInspectorGUI()
    {
        if (GUILayout.Button("Import..."))
        {
            EditorUtility.SetDirty(positionData);
            Undo.RecordObject(positionData, "Load Positions");

            positionData.Import();
        }

        GUI.enabled = false;
        EditorGUILayout.TextField("Path", positionData.path);
        GUI.enabled = true;

        using (new GUILayout.HorizontalScope()) {
            if (GUILayout.Button("Reload", EditorStyles.miniButtonLeft))
            {
                EditorUtility.SetDirty(positionData);
                Undo.RecordObject(positionData, "Load Positions");

                positionData.Load();
            }

            if (GUILayout.Button("Save", EditorStyles.miniButtonMid))
            {
                positionData.Save();
            }

            if (GUILayout.Button("Export...", EditorStyles.miniButtonRight))
            {
                positionData.Export();
            }
        }

        dragMode = (DragMode)EditorGUILayout.EnumPopup("Drag Mode", dragMode);

        EditorGUILayout.Space();

        if (selectedNodeIndex != -1)
        {
            EditorGUILayout.LabelField(String.Format("Node Info [{0}]", selectedNodeIndex), EditorStyles.boldLabel);
            EditorGUI.indentLevel++;

            bool selectedIsFinishLine = selectedNodeIndex == positionData.finishLineIndex;
            GUI.enabled = !selectedIsFinishLine;
            bool setFinishLine = EditorGUILayout.Toggle("Start/Finish Line", selectedIsFinishLine);
            if (setFinishLine != selectedIsFinishLine)
            {
                EditorUtility.SetDirty(positionData);
                Undo.RecordObject(positionData, "Change Start/Finish Line");

                positionData.finishLineIndex = selectedNodeIndex;
            }

            EditorGUI.indentLevel--;
            GUI.enabled = true;
        }
    }
Exemple #20
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);
            if (dragMode == DragMode.Dial)
            {
                GraphicsUtil.TextPosition titlePos = new GraphicsUtil.TextPosition();
                GraphicsUtil.TextPosition valuePos = new GraphicsUtil.TextPosition();
                VectorRect bar    = new VectorRect();
                VectorRect handle = new VectorRect();
                Vector     vlow   = Vector.Zero;
                Vector     vhigh  = Vector.Zero;

                getPositions(ref titlePos, ref valuePos, ref bar, ref handle, ref vlow, ref vhigh);


                // Hit in Dial Region
                double n = 0;
                if (_slideDirection == SlideDirection.Horizontal)
                {
                    n = (e.X - vlow.x) / (vhigh.x - vlow.x);
                }
                else
                {
                    n = (e.Y - vlow.y) / (vhigh.y - vlow.y);
                }
                if (n < 0)
                {
                    n = 0;
                }
                if (n > 1.0)
                {
                    n = 1;
                }

                if (logScale)
                {
                    if ((_minVal <= 0) || (_maxVal <= 0) || (_minVal == _maxVal))
                    {
                        _val = _minVal;
                    }
                    else
                    {
                        _val = Math.Exp(n * (Math.Log(_maxVal) - Math.Log(_minVal)) + Math.Log(_minVal));
                    }
                }
                else
                {
                    _val = n * (_maxVal - _minVal) + _minVal;
                }
                newValue();
                Invalidate();
                dragMode = DragMode.Idle;
            }
            else
            {
                forwardOnMouseUp(e);
            }
        }
Exemple #21
0
 public EditorClip(EditorTrack tr, IClip c)
 {
     this.track = tr;
     this.clip  = c;
     rect       = Rect.zero;
     dragMode   = DragMode.None;
     e          = Event.current;
     clipMode   = ClipMode.None;
 }
Exemple #22
0
        public void SetVisible(bool visible)
        {
            GetComponentInChildren <Renderer>().enabled = visible;
            GetComponentInChildren <Collider>().enabled = visible;

            _dragging       = false;
            _mode           = DragMode.None;
            _material.color = _changed ? changedColor : inactiveColor;
        }
        private void OnMouseMove_BeginReorder(Point mousePosition)
        {
            DataGridColumnHeader dragIndicator = new DataGridColumnHeader();

            dragIndicator.OwningColumn    = this.OwningColumn;
            dragIndicator.IsEnabled       = false;
            dragIndicator.Content         = this.Content;
            dragIndicator.ContentTemplate = this.ContentTemplate;

            Control dropLocationIndicator = new ContentControl();

            dropLocationIndicator.SetStyleWithType(this.OwningGrid.DropLocationIndicatorStyle);

            if (this.OwningColumn.DragIndicatorStyle != null)
            {
                dragIndicator.SetStyleWithType(this.OwningColumn.DragIndicatorStyle);
            }
            else if (this.OwningGrid.DragIndicatorStyle != null)
            {
                dragIndicator.SetStyleWithType(this.OwningGrid.DragIndicatorStyle);
            }

            // If the user didn't style the dragIndicator's Width, default it to the column header's width
            if (double.IsNaN(dragIndicator.Width))
            {
                dragIndicator.Width = this.ActualWidth;
            }

            // If the user didn't style the dropLocationIndicator's Height, default to the column header's height
            if (double.IsNaN(dropLocationIndicator.Height))
            {
                dropLocationIndicator.Height = this.ActualHeight;
            }

            // pass the caret's data template to the user for modification
            DataGridColumnReorderingEventArgs columnReorderingEventArgs = new DataGridColumnReorderingEventArgs(this.OwningColumn)
            {
                DropLocationIndicator = dropLocationIndicator,
                DragIndicator         = dragIndicator
            };

            this.OwningGrid.OnColumnReordering(columnReorderingEventArgs);
            if (columnReorderingEventArgs.Cancel)
            {
                return;
            }

            // The user didn't cancel, so prepare for the reorder
            _dragColumn = this.OwningColumn;
            _dragMode   = DragMode.Reorder;
            _dragStart  = mousePosition;

            // Display the reordering thumb
            this.OwningGrid.ColumnHeaders.DragColumn            = this.OwningColumn;
            this.OwningGrid.ColumnHeaders.DragIndicator         = columnReorderingEventArgs.DragIndicator;
            this.OwningGrid.ColumnHeaders.DropLocationIndicator = columnReorderingEventArgs.DropLocationIndicator;
        }
Exemple #24
0
        protected void onMouseUp(object sender, MouseEventArgs ev)
        {
            if (ev.Button != MouseButtons.Left)
            {
                return;
            }

            dragMode = DragMode.None;
        }
Exemple #25
0
        protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonUp(e);

            isDown = false;
            mode   = DragMode.None;

            this.ReleaseMouseCapture();
        }
Exemple #26
0
 internal DragItem(object relativeObj, DockMode dockMode, DragMode dragMode, Point clickPos, Rect clickRect, Size size)
 {
     _relativeObj = relativeObj;
     _dockMode    = dockMode;
     _dragMode    = dragMode;
     _clickPos    = clickPos;
     _clickRect   = clickRect;
     _size        = size;
 }
 void CheckForDragMode(Vector3 mousePos)
 {
     if (Vector3.Distance(_mouseDownPos, mousePos) > DRAG_MODE_DISTANCE)
     {
         var diff = mousePos - _mouseDownPos;
         _dragMode = Mathf.Abs(diff.x) > Mathf.Abs(diff.y) ? DragMode.Horiz : DragMode.Vert;
         MAIN.uiCont.HideDragHelper();
     }
 }
Exemple #28
0
 /// <inheritdoc />
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         if (BgColor != null)
         {
             hashCode = hashCode * 59 + BgColor.GetHashCode();
         }
         if (Camera != null)
         {
             hashCode = hashCode * 59 + Camera.GetHashCode();
         }
         if (Domain != null)
         {
             hashCode = hashCode * 59 + Domain.GetHashCode();
         }
         if (AspectMode != null)
         {
             hashCode = hashCode * 59 + AspectMode.GetHashCode();
         }
         if (AspectRatio != null)
         {
             hashCode = hashCode * 59 + AspectRatio.GetHashCode();
         }
         if (XAxis != null)
         {
             hashCode = hashCode * 59 + XAxis.GetHashCode();
         }
         if (YAxis != null)
         {
             hashCode = hashCode * 59 + YAxis.GetHashCode();
         }
         if (ZAxis != null)
         {
             hashCode = hashCode * 59 + ZAxis.GetHashCode();
         }
         if (DragMode != null)
         {
             hashCode = hashCode * 59 + DragMode.GetHashCode();
         }
         if (HoverMode != null)
         {
             hashCode = hashCode * 59 + HoverMode.GetHashCode();
         }
         if (UiRevision != null)
         {
             hashCode = hashCode * 59 + UiRevision.GetHashCode();
         }
         if (Annotations != null)
         {
             hashCode = hashCode * 59 + Annotations.GetHashCode();
         }
         return(hashCode);
     }
 }
Exemple #29
0
        protected override void MouseUp(GUIMouseButtonEventArgs args)
        {
            base.MouseUp(args);

            DragOffsetTopLeft = DragOffsetBottomRight = Vector2.Zero;
            CurrentDrag       = DragMode.None;

            // If this is done in MouseDown, Godot won't fire MouseUp as you need focus to receive MouseUps.
            UserInterfaceManager.Focused?.ReleaseFocus();
        }
 public void endDrag()
 {
     if (dragMode == DragMode.none)
         return;
     dragedRigidbody = null;
     nowDrag.connectedBody = null;
     dragMode = DragMode.none;
     editableObject.draged = false;
     editableObject = null;
 }
Exemple #31
0
 protected override void OnMouseUp(MouseEventArgs e)
 {
     if (dragMode == DragMode.Workspace && e.Button == MouseButtons.Left)
     {
         Cursor   = Cursors.Default;
         dragMode = DragMode.Idle;
         Capture  = false;
         Invalidate();
     }
 }
 /// <summary>
 /// Handle "mouse up" event for end of resize/move.
 /// </summary>
 private void doMouseUpRM()
 {
     // Have been resizing or moving? Indicate it's now done.
     if (dragMode != DragMode.None)
     {
         DoMoveResizeFinished();
     }
     // Resize by dragging border ends
     dragMode = DragMode.None;
 }
 public static Vector3 getFlatCrossPoint(Vector3 pFlatPos, Ray pRay, DragMode pMode)
 {
     switch (pMode)
     {
         case DragMode.XY:
             return getZFlatCrossPoint(pFlatPos, pRay);
             break;
         case DragMode.XZ:
             return getYFlatCrossPoint(pFlatPos, pRay);
             break;
     }
     Debug.LogError("getFlatCrossPoint");
     return pFlatPos;
 }
        void OnMouseMove(object sender, MouseEventArgs args) {
            switch (_dragMode) {
                case DragMode.None:
                    var hit = HitTest(_graph.Window, args.Location);
                    switch (hit) {
                        case HitKind.None:
                            _graph.Control.Cursor = Cursors.Default;
                            _dragMode = DragMode.None;
                            _hypotheticalDragMode = DragMode.None;
                            _dragStart = null;
                            break;
                        case HitKind.LeftEdge:
                            _graph.Control.Cursor = Cursors.SizeWE;
                            _hypotheticalDragMode = DragMode.ResizeLeft;
                            break;
                        case HitKind.RightEdge:
                            _graph.Control.Cursor = Cursors.SizeWE;
                            _hypotheticalDragMode = DragMode.ResizeRight;
                            break;
                        case HitKind.Center:
                            _graph.Control.Cursor = Hand;
                            _hypotheticalDragMode = DragMode.Center;
                            break;
                    }
                    break;
                case DragMode.ResizeLeft:
                    ResizeLeft(_graph.Window, _dragStart.Value, args.Location);
                    _dragStart = args.Location;
                    _graph.Draw();
                    break;
                case DragMode.ResizeRight:
                    ResizeRight(_graph.Window, _dragStart.Value, args.Location);
                    _dragStart = args.Location;
                    _graph.Draw();
                    break;
                case DragMode.Center:
                    Drag(_graph.Window, _dragStart.Value, args.Location);
                    _dragStart = args.Location;
                    _graph.Draw();
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }

        }
 Vector3 getScale(Vector2 pPosChange,DragMode pDragMode)
 {
     pPosChange *= scaleValue;
     //switch (dragMode)
     //{
     //    case DragMode.XY:
     //        return new Vector3(getScale(pPosChange.x), getScale(pPosChange.y), 1f);
     //    case DragMode.XZ:
     //        return new Vector3(getScale(pPosChange.x), 1f, getScale(pPosChange.y));
     //}
     switch (dragMode)
     {
         case DragMode.XY:
             return new Vector3((pPosChange.x), (pPosChange.y), 0f);
         case DragMode.XZ:
             return new Vector3((pPosChange.x), 0f, (pPosChange.y));
     }
     Debug.LogError("dragMode error");
     return Vector3.one;
 }
Exemple #36
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);

            if (ArchiveMaintainer == null || ArchiveMaintainer.LoadingInitialData)
                return;

            // Do the same thing for everything here for consistency
            DataTimeRange everything = CurrentArchiveRange;

            if (MouseDragging == DragMode.New && e.X == MouseDragStart)
            {
                LongPoint virtualclicked = LongPoint.DeTranslateFromScreen(new LongPoint(e.Location), everything, DataRange.UnitRange, new LongRectangle(ScrollViewRectangle));
                long proposedoffset = ArchiveMaintainer.GraphNow.Ticks - (virtualclicked.X + (GraphWidth.Ticks / 2));

                GraphOffset = TimeSpan.FromTicks(proposedoffset > 0 ? proposedoffset : 0);
            }

            TimerScroll = ScrollMode.None;
            Scroller.Stop();

            AutoScaleGraph();

            GridSpacing = BodgeSpacing(GraphWidth);
            RefreshXRange(false);

            MouseDragging = DragMode.None;
            MouseResizing = ResizeMode.None;
        }
        internal void OnMouseMove(ref bool handled, Point mousePosition, Point mousePositionGridParent)
        {
            if (handled)
            {
                return;
            }

            Debug.Assert(this.OwningGrid.Parent is UIElement);

            // various useful positions
            Point mousePositionHeaders = this.Translate(this.OwningGrid.ColumnHeaders, mousePosition);
            Point mousePositionGrid = this.Translate(this.OwningGrid, mousePosition);

            double distanceFromLeft = mousePosition.X;
            double distanceFromRight = this.ActualWidth - distanceFromLeft;

            OnMouseMove_Resize(ref handled, mousePositionGrid);

            OnMouseMove_Reorder(ref handled, mousePosition, mousePositionHeaders, mousePositionGrid, mousePositionGridParent, distanceFromLeft, distanceFromRight);

            // if we still haven't done anything about moving the mouse while
            // the button is down, we remember that we're dragging, but we don't
            // claim to have actually handled the event
            if (_dragMode == DragMode.MouseDown)
            {
                _dragMode = DragMode.Drag;
            }

            if (_dragMode == DragMode.Drag)
            {
                DragDeltaEventArgs dragDeltaEventArgs = new DragDeltaEventArgs(mousePositionGrid.X - _lastMousePositionGrid.Value.X, mousePositionGrid.Y - _lastMousePositionGrid.Value.Y);
                this.OwningGrid.OnColumnHeaderDragDelta(dragDeltaEventArgs);
            }

            _lastMousePositionGrid = mousePositionGrid;

            SetDragCursor(mousePosition);
        }
        private void DataGridColumnHeader_LostMouseCapture(object sender, MouseEventArgs e)
        {
            // When we stop interacting with the column headers, we need to reset the drag mode
            // and close any popups if they are open.

            _dragMode = DragMode.None;
            _dragColumn = null;
            _dragStart = null;
            _lastMousePositionGrid = null;

            if (_reorderingThumb != null)
            {
                _reorderingThumb.IsOpen = false;
            }

            if (this.OwningGrid != null)
            {
                this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = false;
            }
        }
 void OnMouseUp(object sender, MouseEventArgs mouseEventArgs) {
     _graph.PanningIsEnabled = true;
     _dragMode = DragMode.None;
     _dragStart = null;
     _hypotheticalDragMode = DragMode.None;
     _graph.Control.Cursor = Cursors.Default;
 }
Exemple #40
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            if (ArchiveMaintainer == null || ArchiveMaintainer.LoadingInitialData)
                return;

            DataTimeRange everything = CurrentArchiveRange;

            long selectedleft = LongPoint.TranslateToScreen(new LongPoint(GraphLeft.Ticks, 1), everything, DataRange.UnitRange, new LongRectangle(ScrollViewRectangle)).X;
            long selectedright = LongPoint.TranslateToScreen(new LongPoint(GraphRight.Ticks, 1), everything, DataRange.UnitRange, new LongRectangle(ScrollViewRectangle)).X;

            if (e.Location.X > selectedleft - 3 && e.Location.X < selectedleft + 3)
            {
                MouseResizing = ResizeMode.Left;
            }
            else if (e.Location.X > selectedright - 3 && e.Location.X < selectedright + 3)
            {
                MouseResizing = ResizeMode.Right;
            }
            else if (e.Location.X > selectedleft - 3 && e.Location.X < selectedright + 3)
            {
                MouseDragging = DragMode.Existing;
            }
            else
            {
                MouseDragStart = e.X;
                MouseDragging = DragMode.New;
            }
        }
        /// <summary> Event handler for pressing the mouse button. A double click with the left mouse button results in
        /// zooming in the map. A double click with the right mouse button results in zooming out the map. Pressing the
        /// left button and the shift key, the zooming rectangle is shown on the map. </summary>
        /// <param name="sender"> Sender of the MouseDown event. </param>
        /// <param name="e"> Event parameters. </param>
        private void source_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (!IsActive)
                return;

            mapView.Focus();

            // NEW: Skip MouseDragMode == None
            if (MouseDragMode == DragMode.None)
            {
                e.Handled = true;
                return;
            }

            if (ZoomOnDoubleClick && e.ClickCount == 2)
            {
                Point p = MapView.CanvasToPtvMercator(MapView.GeoCanvas, e.GetPosition(MapView.GeoCanvas));

                if (e.RightButton == MouseButtonState.Pressed)
                {
                    MapView.ZoomAround(p, MapView.FinalZoom + -1, Map.UseAnimation);

                    e.Handled = true;
                    return;
                }

                if (e.LeftButton == MouseButtonState.Pressed)
                {
                    MapView.ZoomAround(p, MapView.FinalZoom + 1, Map.UseAnimation);

                    e.Handled = true;
                    return;
                }
            }

            // Save starting point, used later when determining how much to scroll.
            this.ScreenStartPoint = e.GetPosition(mapView);
            this.WorldStartPoint = mapView.CanvasToPtvMercator(mapView, e.GetPosition(mapView));

            // NEW: check for MouseDragMode
            if (e.LeftButton == MouseButtonState.Pressed && (MouseDragMode == DragMode.Select ||
                 MouseDragMode == DragMode.SelectOnShift && (Keyboard.Modifiers & ModifierKeys.Shift) > 0)) // was && (Keyboard.Modifiers & ModifierKeys.Shift) > 0))
            {
                mapView.Cursor = Cursors.Arrow;

                if (dragRectangle != null)
                    mapView.ForePaneCanvas.Children.Remove(dragRectangle);

                dragRectangle = new Rectangle();
                dragRectangle.IsHitTestVisible = false;
                dragRectangle.Fill = new SolidColorBrush(Color.FromArgb(0x3e, 0x11, 0x57, 0xdc));
                dragRectangle.Stroke = new SolidColorBrush(Color.FromArgb(0x55, 0x07, 0x81, 0xf7));
                dragRectangle.StrokeDashArray = new DoubleCollection(new double[] { 20, 8 });
                dragRectangle.StrokeEndLineCap = PenLineCap.Round;
                dragRectangle.StrokeDashCap = PenLineCap.Round;
                dragRectangle.StrokeThickness = 1.5;
                dragRectangle.RadiusX = 8;
                dragRectangle.RadiusY = 8;

                Canvas.SetZIndex(dragRectangle, 266);
                Canvas.SetLeft(dragRectangle, ScreenStartPoint.X);
                Canvas.SetTop(dragRectangle, ScreenStartPoint.Y);
                mapView.ForePaneCanvas.Children.Add(dragRectangle);
                dragMode = DragMode.Select;
                mapView.CaptureMouse();
            }
            else if (e.LeftButton == MouseButtonState.Pressed && mapView.CaptureMouse())
            {
                mapView.Cursor = Cursors.Hand;
                dragMode = DragMode.Pan;
                wasPanned = false;
            }
        }
Exemple #42
0
        protected void onMouseUp(object sender, MouseEventArgs ev)
        {
            if (ev.Button != MouseButtons.Left)
                return;

            dragMode = DragMode.None;
        }
 private void OnStartScale(RectangleTool.ToolCoord pivotCoord, RectangleTool.ToolCoord pickedCoord, Vector2 mousePos, DragMode dragMode, bool rippleTime)
 {
     Bounds selectionBounds = this.selectionBounds;
     this.m_DragMode = dragMode;
     this.m_Pivot = base.ToolCoordToPosition(pivotCoord, selectionBounds);
     this.m_Previous = base.ToolCoordToPosition(pickedCoord, selectionBounds);
     this.m_MouseOffset = mousePos - this.m_Previous;
     this.m_RippleTime = rippleTime;
     this.m_RippleTimeStart = selectionBounds.min.x;
     this.m_RippleTimeEnd = selectionBounds.max.x;
     this.m_CurveEditor.StartLiveEdit();
 }
        internal void OnMouseLeftButtonDown(ref bool handled, Point mousePosition)
        {
            this.IsPressed = true;

            if (this.OwningGrid != null)
            {
                this.CaptureMouse();

                _dragMode = DragMode.MouseDown;
                _frozenColumnsWidth = this.OwningGrid.ColumnsInternal.GetVisibleFrozenEdgedColumnsWidth();
                _lastMousePositionGrid = this.Translate(this.OwningGrid, mousePosition);

                double distanceFromLeft = mousePosition.X;
                double distanceFromRight = this.ActualWidth - distanceFromLeft;
                DataGridColumn currentColumn = this.OwningColumn;
                DataGridColumn previousColumn = null;
                if (!(this.OwningColumn is DataGridFillerColumn))
                {
                    previousColumn = this.OwningGrid.ColumnsInternal.GetPreviousVisibleNonFillerColumn(currentColumn);
                }

                if (_dragMode == DragMode.MouseDown && _dragColumn == null && (distanceFromRight <= DATAGRIDCOLUMNHEADER_resizeRegionWidth))
                {
                    handled = TrySetResizeColumn(currentColumn);
                }
                else if (_dragMode == DragMode.MouseDown && _dragColumn == null && distanceFromLeft <= DATAGRIDCOLUMNHEADER_resizeRegionWidth && previousColumn != null)
                {
                    handled = TrySetResizeColumn(previousColumn);
                }

                if (_dragMode == DragMode.Resize && _dragColumn != null)
                {
                    _dragStart = _lastMousePositionGrid;
                    _originalWidth = _dragColumn.ActualWidth;
                    _originalHorizontalOffset = this.OwningGrid.HorizontalOffset;

                    _lastResizeWidth = _originalWidth;
                    handled = true;
                }
            }
        }
Exemple #45
0
        protected void onMouseDown(object sender, MouseEventArgs ev)
        {
            if (ev.Button != MouseButtons.Left)
                return;

            dragMode = GetDragMode(ev, Size);
            screenStartMouse = Control.MousePosition;
            documentStartBox = new Rectangle(documentLeft, documentTop, documentWidth, documentHeight);
        }
        private void OnMouseMove_BeginReorder(Point mousePosition, Point mousePositionGridParent)
        {
            DataGridColumnHeader dragIndicator = new DataGridColumnHeader();
            dragIndicator.OwningColumn = this.OwningColumn;
            dragIndicator.IsEnabled = false;
            dragIndicator.Content = this.Content;
            dragIndicator.ContentTemplate = this.ContentTemplate;

            if (this.OwningColumn.DragIndicatorStyle != null)
            {
                dragIndicator.SetStyleWithType(this.OwningColumn.DragIndicatorStyle);
            }
            else if (this.OwningGrid.DragIndicatorStyle != null)
            {
                dragIndicator.SetStyleWithType(this.OwningGrid.DragIndicatorStyle);
            }

            // If the user didn't style the dragIndicator's Width, default it to the column header's width
            if (double.IsNaN(dragIndicator.Width))
            {
                dragIndicator.Width = this.ActualWidth;
            }

            // If the user didn't style the dropLocationIndicator's Height, default to the column header's height
            if (double.IsNaN(this.OwningGrid.ColumnDropLocationIndicator.Height))
            {
                this._autoSizeDropLocationIndicatorHeight = true;
                this.OwningGrid.ColumnDropLocationIndicator.Height = this.ActualHeight;
            }

            // pass the caret's data template to the user for modification
            DataGridColumnReorderingEventArgs columnReorderingEventArgs = new DataGridColumnReorderingEventArgs(this.OwningColumn)
            {
                DropLocationIndicator = this.OwningGrid.ColumnDropLocationIndicator,
                DragIndicator = dragIndicator
            };
            this.OwningGrid.OnColumnReordering(columnReorderingEventArgs);
            if (columnReorderingEventArgs.Cancel)
            {
                return;
            }

            // The user didn't cancel, so prepare for the reorder
            _dragColumn = this.OwningColumn;
            _dragMode = DragMode.Reorder;
            _dragStartParent = mousePositionGridParent;
            // the mouse position relative to the ColumnHeader needs to be scaled to be in the same
            // dimensions as the DataGrid, so that it doesn't get out of sync later on
            _dragStart = this.OwningGrid.RenderTransform.Transform(mousePosition);

            // Display the reordering thumb
            if (_reorderingThumb == null)
            {
                _reorderingThumb = new Popup();
            }

            _reorderingThumb.Child = columnReorderingEventArgs.DragIndicator;
            _reorderingThumb.IsOpen = true;

            // use the data template to populate the caret
            if (columnReorderingEventArgs.DropLocationIndicator != null)
            {
                System.Windows.Controls.Control child = columnReorderingEventArgs.DropLocationIndicator;

                this.OwningGrid.ColumnDropLocationIndicatorPopup.Child = child;
                this.OwningGrid.ColumnDropLocationIndicatorPopup.Height = child.ActualHeight;
                this.OwningGrid.ColumnDropLocationIndicatorPopup.Width = child.ActualWidth;

                this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = false;
            }
        }
        /// <summary>
        /// Resets the static DataGridColumnHeader properties when a header loses mouse capture
        /// </summary>
        private void OnLostMouseCapture()
        {
            // When we stop interacting with the column headers, we need to reset the drag mode
            // and close any popups if they are open.

            if (DataGridColumnHeader._dragColumn != null && DataGridColumnHeader._dragColumn.HeaderCell != null)
            {
                DataGridColumnHeader._dragColumn.HeaderCell.Cursor = DataGridColumnHeader._originalCursor;
            }
            _dragMode = DragMode.None;
            _dragColumn = null;
            _dragStart = null;
            _lastMousePositionGrid = null;

            if (_reorderingThumb != null)
            {
                _reorderingThumb.IsOpen = false;
            }

            if (this.OwningGrid != null)
            {
                this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = false;
            }
        }
        private static bool TrySetResizeColumn(DataGridColumn column)
        {
            // If datagrid.CanUserResizeColumns == false, then the column can still override it
            if (column.ActualCanUserResize)
            {
                _dragColumn = column;

                _dragMode = DragMode.Resize;

                return true;
            }
            return false;
        }
 void RoomDlg_MouseDown(object sender, MouseEventArgs e)
 {
     Point click = new Point(e.X, e.Y);
     Vec2i pos = new Vec2i(e.X, e.Y);
     mMousePos = pos;
     if (mMode == ViewMode.Objects)
     {
         bool dragDepthFound = false;
         foreach (ObjectInstance obj in mRoom.Objects)
         {
             if (obj.Layer != 1)
                 continue;
             Vec2i depthcenter = new Vec2i(obj.Position.x, obj.Depth * mData.WalkGridSize/2 - mData.WalkGridSize / 4);
             if ((depthcenter - pos - mRoom.ScrollOffset).length() <= 5)
             {
                 mDragObject = obj;
                 mDragOffset = depthcenter - pos;
                 mDragDepth = true;
                 dragDepthFound = true;
                 break;
             }
         }
         if (!dragDepthFound)
         {
             mDragDepth = false;
             bool dragSecond = e.Button == MouseButtons.Middle;
             mDragObject = getObjectAt(pos + mRoom.ScrollOffset, dragSecond);
             mControl.SelectedObject = mDragObject;
             if (mDragObject != null)
             {
                 mDragOffset = mDragObject.getPosition() - pos;
             }
         }
         if (e.Button == MouseButtons.Right)
         {
             if (mDragObject != null)
             {
                 if (mDragObject.GetType() == typeof(ObjectInstance))
                     menuObject.Items[2].Text = "Show in Object window";
                 else
                     menuObject.Items[2].Text = "Show in Character window";
                 menuObject.Show(this, click);
             }
             else
                 menuRemoveBackground.Show(this, click);
         }
     }
     else if (mMode == ViewMode.Walkmap)
     {
         if (e.Button == MouseButtons.Right)
         {
             Vec2i cp = clickToWalkmap(e.X, e.Y);
             ToolStripMenuItem it = menuWalkmap.Items[9] as ToolStripMenuItem;
             if (mRoom.Walkmap[cp.x, cp.y].hasScript)
             {
                 it.Enabled = true;
             }
             else
                 it.Enabled = false;
             menuWalkmap.Show(this, click);
             return;
         }
         modifyWalkmap(pos.x, pos.y);
         mDragDepth = true;
     }
     else if (mMode == ViewMode.Deepmap)
     {
         int depth = (e.Y+mData.WalkGridSize/2+mRoom.ScrollOffset.y) / mData.WalkGridSize;
         if (depth == mRoom.Depthmap.x)
             mDragDepth = true;
         if (depth == mRoom.Depthmap.y)
             mDragDepthBottom = true;
     }
     else if (mMode == ViewMode.Inventory)
     {
         if (mRoom.HasInventory)
         {
             if (e.Button == MouseButtons.Right)
             {
                 menuInventory.Show(this, click);
             }
             int sizex = mRoom.InvSize.x * ((int)(50 * mRoom.InvScale.x) + mRoom.InvSpacing) + 30;
             int sizey = mRoom.InvSize.y * ((int)(50 * mRoom.InvScale.y) + mRoom.InvSpacing) + 5;
             int ydown = -mRoom.ScrollOffset.y + mRoom.InvPos.y + sizey;
             int xmiddle = -mRoom.ScrollOffset.x + mRoom.InvPos.x + sizex / 2;
             int ymiddle = -mRoom.ScrollOffset.y + mRoom.InvPos.y + sizey / 2;
             int xright = -mRoom.ScrollOffset.x + mRoom.InvPos.x + sizex;
             int xleft = -mRoom.ScrollOffset.x + mRoom.InvPos.x;
             int yup = -mRoom.ScrollOffset.y + mRoom.InvPos.y;
             //bottom
             if (e.X >= xmiddle - 15 && e.X <= xmiddle + 15)
             {
                 if (e.Y <= ydown + 3 && e.Y >= ydown - 5 - 3)
                 {
                     mDragMode = DragMode.DragBottom;
                     mDragOffset.y = e.Y - ydown;
                 }
                 else
                     mDragMode = DragMode.DragNone;
             }
             //right
             else if (e.Y >= ymiddle - 15 && e.Y <= ymiddle + 15)
             {
                 if (e.X <= xright + 3 && e.X >= xright - 5 - 3)
                 {
                     mDragMode = DragMode.DragRight;
                     mDragOffset.x = e.X - xright;
                 }
                 else
                     mDragMode = DragMode.DragNone;
             }
             //corner
             else if (e.X >= xright - 11 - 3 && e.X <= xright + 3)
             {
                 if (e.Y >= ydown - 11 - 3 && e.Y <= ydown + 3)
                     mDragMode = DragMode.DragCorner;
                 else
                     mDragMode = DragMode.DragNone;
             }
             else
                 mDragMode = DragMode.DragNone;
             //elsewhere on inventory
             if (mDragMode == DragMode.DragNone && e.X >= xleft && e.X <= xright)
             {
                 if (e.Y >= yup && e.Y <= ydown)
                 {
                     mDragMode = DragMode.DragPosition;
                     mDragOffset = new Vec2i(e.X, e.Y) - mRoom.InvPos;
                 }
             }
         }
         else
         {
             if (e.Button == MouseButtons.Right)
             {
                 return;
             }
             mRoom.InvPos = new Vec2i(e.X + mRoom.ScrollOffset.x, e.Y + mRoom.ScrollOffset.y);
             mRoom.InvScale = new Vec2f(1.0f, 1.0f);
             mRoom.HasInventory = true;
             mDragMode = DragMode.DragCorner;
             this.Cursor = Cursors.SizeNWSE;
         }
     }
     else if (mMode == ViewMode.Specialfx)
     {
         Vec2i clickpos = pos;
         clickpos += mRoom.ScrollOffset;
         for (int shapeidx = 0; shapeidx < mRoom.FXShapes.Count; ++shapeidx)
         {
             FxShape shape = (FxShape)mRoom.FXShapes[shapeidx];
             if (!shape.Active)
                 continue;
             Vec2i center = new Vec2i();
             for (int i = 0; i < shape.Positions.Length; ++i)
             {
                 if ((shape.Positions[i] - clickpos).length() <= 4)
                 {
                     mDragMode = DragMode.DragCorner;
                     mDraggingShape = shape;
                     mShapeIndex = i;
                     mDragOffset = clickpos - center;
                     return;
                 }
                 center += shape.Positions[i];
             }
             center /= shape.Positions.Length;
             if ((center - clickpos).length() <= 10)
             {
                 mDragMode = DragMode.DragPosition;
                 mDraggingShape = shape;
                 mDragOffset = pos;
                 break;
             }
             Vec2i depthcenter = new Vec2i(center.x, (int)((shape.Depth + 0.5f) * mData.WalkGridSize - mData.WalkGridSize / 2));
             if ((depthcenter - clickpos).length() <= 5)
             {
                 mDragMode = DragMode.DragBottom;
                 mDraggingShape = shape;
                 mDragOffset = depthcenter - pos;
                 return;
             }
         }
     }
 }
 private void OnEndScale()
 {
     this.m_CurveEditor.EndLiveEdit();
     this.m_DragMode = DragMode.None;
     GUI.changed = true;
 }
 void RoomDlg_MouseUp(object sender, MouseEventArgs e)
 {
     mDragObject = null;
     mDragDepth = false;
     if (mMode == ViewMode.Deepmap)
         mDragDepthBottom = false;
     if (mMode == ViewMode.Inventory)
     {
         mDragMode = DragMode.DragNone;
         this.Cursor = Cursors.Default;
     }
     if (mMode == ViewMode.Specialfx)
     {
         mDragMode = DragMode.DragNone;
     }
 }
    void OnDragObject(GameObject pObject,DragMode pMode)
    {
        if (dragMode != DragMode.none)
            return;

        var lNowDrag = pMode == DragMode.XY ? jointXyDrag : jointXzDrag;
        if (!lNowDrag)
            return;

        var lEditableObject = zzEditableObjectContainer.findRoot(pObject);
        if (!lEditableObject)
            return;

        editableObject = lEditableObject;
        lEditableObject.draged = true;
        dragMode = pMode;
        nowDrag = lNowDrag;
        dragedRigidbody = lEditableObject.rigidbody;
        var lDragedTransform = lEditableObject.transform;
        var lDragWorldPos =
            zzRigidbodyDrag.getZFlatCrossPoint(lDragedTransform.position,
                zzObjectPicker.getMainCameraRay());
        //getFlatCrossPoint(lDragedTransform.position, getCameraRay(), dragMode);
        originalPosition = lDragWorldPos;
        nowDrag.transform.position = lDragWorldPos;
        nowDrag.connectedBody = dragedRigidbody;
    }
        /// <summary> Event handler for releasing the mouse button. The map is zoomed to the selected section. </summary>
        /// <param name="sender"> Sender of the MouseUp event. </param>
        /// <param name="e"> Event parameters. </param>
        private void source_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (!IsActive)
                return;

            if (mapView.IsMouseCaptured)
            {
                // we're done.  reset the cursor and release the mouse pointer
                mapView.Cursor = Cursors.Arrow;
                mapView.ReleaseMouseCapture();
            }

            if (dragMode == DragMode.Select)
            {
                mapView.ForePaneCanvas.Children.Remove(dragRectangle);
                dragRectangle = null;

                dragMode = DragMode.None;

                var physicalPoint = e.GetPosition(mapView);

                double minx = physicalPoint.X < ScreenStartPoint.X ? physicalPoint.X : ScreenStartPoint.X;
                double miny = physicalPoint.Y < ScreenStartPoint.Y ? physicalPoint.Y : ScreenStartPoint.Y;
                double maxx = physicalPoint.X > ScreenStartPoint.X ? physicalPoint.X : ScreenStartPoint.X;
                double maxy = physicalPoint.Y > ScreenStartPoint.Y ? physicalPoint.Y : ScreenStartPoint.Y;

                if (Math.Abs(maxx - minx) < 32 && Math.Abs(maxy - miny) < 32)
                    return;

                Point p1 = mapView.TranslatePoint(new Point(minx, miny), mapView.GeoCanvas);
                Point p2 = mapView.TranslatePoint(new Point(maxx, maxy), mapView.GeoCanvas);

                mapView.SetEnvelope(new MapRectangle(
                    (p1.X / MapView.ZoomAdjust * MapView.LogicalSize / MapView.ReferenceSize) - 1.0 / MapView.ZoomAdjust * MapView.LogicalSize / 2,
                    (p2.X / MapView.ZoomAdjust * MapView.LogicalSize / MapView.ReferenceSize) - 1.0 / MapView.ZoomAdjust * MapView.LogicalSize / 2,
                    -(p2.Y / MapView.ZoomAdjust * MapView.LogicalSize / MapView.ReferenceSize) + 1.0 / MapView.ZoomAdjust * MapView.LogicalSize / 2,
                    -(p1.Y / MapView.ZoomAdjust * MapView.LogicalSize / MapView.ReferenceSize) + 1.0 / MapView.ZoomAdjust * MapView.LogicalSize / 2),
                    Map.UseAnimation);

                e.Handled = true;
            }
            if (wasPanned)
            {
                wasPanned = false;
                e.Handled = true;
            }
        }
Exemple #54
0
        protected override void OnMouseUp(MouseEventArgs e)
        {
            if (mDragMode == DragMode.SelectRange)
            {
                int area = mSelectRect.Width * mSelectRect.Height;
                if (area > 10)
                {
                    float minX = GetValueX(mSelectRect.Left);
                    float maxX = GetValueX(mSelectRect.Right);
                    float minY = GetValueY(mSelectRect.Top);
                    float maxY = GetValueY(mSelectRect.Bottom);
                    SetZoom(minX, minY, maxX, maxY);
                }
            }

            mDragMode = DragMode.None;
            base.OnMouseUp(e);
        }
        private void OnMouseMove_Reorder(ref bool handled, Point mousePosition, Point mousePositionHeaders, Point mousePositionGrid, Point mousePositionGridParent, double distanceFromLeft, double distanceFromRight)
        {
            if (handled)
            {
                return;
            }

            #region handle entry into reorder mode
            if (_dragMode == DragMode.MouseDown && _dragColumn == null && (distanceFromRight > DATAGRIDCOLUMNHEADER_resizeRegionWidth && distanceFromLeft > DATAGRIDCOLUMNHEADER_resizeRegionWidth))
            {
                DragStartedEventArgs dragStartedEventArgs = new DragStartedEventArgs(mousePositionGrid.X - _lastMousePositionGrid.Value.X, mousePositionGrid.Y - _lastMousePositionGrid.Value.Y);
                this.OwningGrid.OnColumnHeaderDragStarted(dragStartedEventArgs);

                handled = CanReorderColumn(this.OwningColumn);

                if (handled)
                {
                    DataGridColumnHeader dragIndicator = new DataGridColumnHeader();
                    dragIndicator.OwningColumn = this.OwningColumn;
                    dragIndicator.IsEnabled = false;
                    dragIndicator.Content = this.Content;
                    dragIndicator.ContentTemplate = this.ContentTemplate;

                    if (this.OwningGrid.DragIndicatorStyle != null)
                    {
                        dragIndicator.Style = this.OwningGrid.DragIndicatorStyle;
                    }

                    // If the user didn't style the dragIndicator's Width, default it to the column header's width
                    if (double.IsNaN(dragIndicator.Width))
                    {
                        dragIndicator.Width = this.ActualWidth;
                    }

                    // If the user didn't style the dropLocationIndicator's Height, default to the column header's height
                    // 



                    if (double.IsNaN(this.OwningGrid.ColumnDropLocationIndicator.Height))
                    {
                        this.OwningGrid.ColumnDropLocationIndicator.Height = this.ActualHeight;
                    }

                    // pass the caret's data template to the user for modification
                    DataGridColumnReorderingEventArgs columnReorderingEventArgs = new DataGridColumnReorderingEventArgs(this.OwningColumn)
                    {
                        DropLocationIndicator = this.OwningGrid.ColumnDropLocationIndicator,
                        DragIndicator = dragIndicator
                    };
                    this.OwningGrid.OnColumnReordering(columnReorderingEventArgs);
                    if (columnReorderingEventArgs.Cancel)
                    {
                        return;
                    }

                    // The user didn't cancel, so prepare for the reorder
                    _dragColumn = this.OwningColumn;
                    _dragMode = DragMode.Reorder;
                    _dragStartParent = mousePositionGridParent;
                    // the mouse position relative to the ColumnHeader needs to be scaled to be in the same
                    // dimensions as the DataGrid, so that it doesn't get out of sync later on
                    _dragStart = this.OwningGrid.RenderTransform.Transform(mousePosition);

                    // Display the reordering thumb
                    if (_reorderingThumb == null)
                    {
                        _reorderingThumb = new Popup();
                    }

                    _reorderingThumb.Child = columnReorderingEventArgs.DragIndicator;
                    _reorderingThumb.IsOpen = true;

                    // use the data template to populate the caret
                    if (columnReorderingEventArgs.DropLocationIndicator != null)
                    {
                        Control child = columnReorderingEventArgs.DropLocationIndicator;

                        this.OwningGrid.ColumnDropLocationIndicatorPopup.Child = child;
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.Height = child.ActualHeight;
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.Width = child.ActualWidth;

                        this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = false;
                    }
                }
            }
            #endregion

            #region handle reorder mode (eg, positioning of the popup)
            if (_dragMode == DragMode.Reorder && _reorderingThumb != null)
            {
                DragDeltaEventArgs dragDeltaEventArgs = new DragDeltaEventArgs(mousePositionGrid.X - _lastMousePositionGrid.Value.X, mousePositionGrid.Y - _lastMousePositionGrid.Value.Y);
                this.OwningGrid.OnColumnHeaderDragDelta(dragDeltaEventArgs);

                _reorderingThumb.HorizontalOffset = mousePositionGridParent.X - _dragStart.Value.X;
                _reorderingThumb.VerticalOffset = _dragStartParent.Value.Y - _dragStart.Value.Y;

                // the mouse position relative to the ColumnHeadersPresenter can be scaled differently than
                // the same position relative to the DataGrid, so apply the grid's RenderTransform
                Point scaledMousePositionHeaders = this.OwningGrid.RenderTransform.Transform(mousePositionHeaders);

                // prepare some variables for clipping/hiding
                double dgX = mousePositionGridParent.X - scaledMousePositionHeaders.X;
                double dgY = mousePositionGridParent.Y - scaledMousePositionHeaders.Y;
                double dgW = this.OwningGrid.CellsWidth;
                double dgH = this.OwningGrid.CellsHeight + this.OwningGrid.ColumnHeaders.ActualHeight;

                // we need to transform the size of the clipping rectangle if the datagrid has a rendertransform set
                Point clipSize = new Point(dgW, dgH);
                clipSize = this.OwningGrid.RenderTransform.Transform(clipSize);

                // clip the thumb to the column headers region
                _reorderingThumb.Child.Clip = new RectangleGeometry
                {
                    Rect = new Rect(
                        dgX - _reorderingThumb.HorizontalOffset,
                        dgY - _reorderingThumb.VerticalOffset,
                        clipSize.X,
                        clipSize.Y
                        )
                };

                // if the datagrid has a scale transform, apply the inverse to the popup's clipping rectangle
                ScaleTransform scaleTransform = null;
                ScaleTransform gridScaleTransform = _reorderingThumb.Child.RenderTransform as ScaleTransform;
                if (gridScaleTransform != null && gridScaleTransform.ScaleY != 0.0 && gridScaleTransform.ScaleX != 0.0)
                {
                    scaleTransform = new ScaleTransform();
                    scaleTransform.ScaleX = 1.0 / gridScaleTransform.ScaleX;
                    scaleTransform.ScaleY = 1.0 / gridScaleTransform.ScaleY;
                }
                if (scaleTransform != null)
                {
                    _reorderingThumb.Child.Clip.Transform = scaleTransform;
                }

                // Find header we're hovering over
                DataGridColumn targetColumn = this.GetReorderingTargetColumn(mousePosition, true /* ignoreVertical */, true /* clipToVisible */);

                if (this.OwningGrid.ColumnDropLocationIndicator != null)
                {
                    if (targetColumn == this.OwningGrid.ColumnsInternal.FillerColumn)
                    {
                        // change target column to last column but position caret at the end

                        targetColumn = this.OwningGrid.ColumnsInternal.LastVisibleColumn;

                        Point targetPosition = this.OwningGrid.RenderTransform.Transform(this.Translate(targetColumn.HeaderCell, mousePosition));

                        this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = true;
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.HorizontalOffset = mousePositionGridParent.X - targetPosition.X + targetColumn.HeaderCell.ActualWidth;
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.VerticalOffset = mousePositionGridParent.Y - targetPosition.Y;
                    }
                    else if (targetColumn != null)
                    {
                        // try to position caret

                        Point targetPosition = this.OwningGrid.RenderTransform.Transform(this.Translate(targetColumn.HeaderCell, mousePosition));

                        this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = true;
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.HorizontalOffset = mousePositionGridParent.X - targetPosition.X;
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.VerticalOffset = mousePositionGridParent.Y - targetPosition.Y;
                    }
                    else
                    {
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = false;
                    }

                    // hide the caret if it's off the grid -- this is not the same as clipping
                    if (this.OwningGrid.ColumnDropLocationIndicatorPopup.HorizontalOffset < dgX
                        || dgX + clipSize.X < this.OwningGrid.ColumnDropLocationIndicatorPopup.HorizontalOffset)
                    {
                        this.OwningGrid.ColumnDropLocationIndicatorPopup.IsOpen = false;
                    }
                }

                handled = true;
            }
            #endregion
        }
Exemple #56
0
 protected override void OnMouseDown(MouseEventArgs e)
 {
     if (mGraphRect.Contains(new Point(e.X, e.Y)))
     {
         mMouseDownX = e.X;
         mMouseDownY = e.Y;
         if (e.Button == System.Windows.Forms.MouseButtons.Left)
         {
             mSelectRect = new Rectangle(e.X, e.Y, 0, 0);
             mDragMode = DragMode.SelectRange;
         }
         else if (e.Button == System.Windows.Forms.MouseButtons.Right)
         {
             mDragMode = DragMode.GraphDrag;
         }
     }
     base.OnMouseDown(e);
 }
 void OnMouseDown(object sender, MouseEventArgs args) {
     if (args.Button == MouseButtons.Left) {
         _dragMode = _hypotheticalDragMode;
         _dragStart = args.Location;
         if (_dragMode != DragMode.None) {
             _graph.PanningIsEnabled = false;
         }
         if (_dragMode == DragMode.Center) {
             _graph.Control.Cursor = HandDrag;
         }
     }
 }
 void OnDragObject(GameObject pObject, DragMode pMode)
 {
     if (dragMode != DragMode.none)
         return;
     var lEditableObject = zzEditableObjectContainer.findRoot(pObject);
     if (!lEditableObject)
         return;
     editableObject = lEditableObject;
     lEditableObject.draged = true;
     dragMode = pMode;
     //放缩的尺寸基于原始的放缩值
     var lObjectScale = lEditableObject.transform.localScale;
     switch (dragMode)
     {
         case DragMode.XY:
             scaleValue = Mathf.Sqrt(lObjectScale.x * lObjectScale.x + lObjectScale.y * lObjectScale.y) * 0.01f;
             break;
         case DragMode.XZ:
             scaleValue = Mathf.Sqrt(lObjectScale.x * lObjectScale.x + lObjectScale.z * lObjectScale.z) * 0.01f;
             break;
     }
     lastMousePosition = getMousePosition();
 }
 private void OnStartMove(Vector2 position, DragMode dragMode, bool rippleTime)
 {
     Bounds selectionBounds = this.selectionBounds;
     this.m_DragMode = dragMode;
     this.m_Previous = position;
     this.m_RippleTime = rippleTime;
     this.m_RippleTimeStart = selectionBounds.min.x;
     this.m_RippleTimeEnd = selectionBounds.max.x;
     this.m_CurveEditor.StartLiveEdit();
 }
        internal void OnMouseLeftButtonUp(ref bool handled, Point mousePosition)
        {
            this.IsPressed = false;

            if (_dragMode == DragMode.MouseDown)
            {
               OnMouseLeftButtonUp_Click(ref handled);
            }
            else if (_dragMode == DragMode.Reorder)
            {
                // Find header we're hovering over
                int? targetIndex = this.GetReorderingTargetDisplayIndex(mousePosition, true /* ignoreVertical */, true /* clipToVisible */);

                if (targetIndex.HasValue &&
                    ((!this.OwningColumn.IsFrozen && targetIndex.Value >= this.OwningGrid.FrozenColumnCount)
                      || (this.OwningColumn.IsFrozen && targetIndex.Value < this.OwningGrid.FrozenColumnCount)))
                {
                    this.OwningColumn.DisplayIndex = targetIndex.Value;

                    DataGridColumnEventArgs ea = new DataGridColumnEventArgs(this.OwningColumn);
                    this.OwningGrid.OnColumnReordered(ea);
                }

                DragCompletedEventArgs dragCompletedEventArgs = new DragCompletedEventArgs(mousePosition.X - _dragStart.Value.X, mousePosition.Y - _dragStart.Value.Y, false);
                this.OwningGrid.OnColumnHeaderDragCompleted(dragCompletedEventArgs);

                // If we autosized the indicator's height, set it back to NaN
                if (this._autoSizeDropLocationIndicatorHeight)
                {
                    this._autoSizeDropLocationIndicatorHeight = false;
                    this.OwningGrid.ColumnDropLocationIndicator.Height = double.NaN;
                }
            }
            else if (_dragMode == DragMode.Drag)
            {
                DragCompletedEventArgs dragCompletedEventArgs = new DragCompletedEventArgs(0, 0, false);
                this.OwningGrid.OnColumnHeaderDragCompleted(dragCompletedEventArgs);
            }

            SetDragCursor(mousePosition);

            // Variables that track drag mode states get reset in DataGridColumnHeader_LostMouseCapture
            ReleaseMouseCapture();
            DataGridColumnHeader._dragMode = DragMode.None;
            handled = true;
        }