internal static void ResetDragged() { DraggedElement?.OnDragReset(); aStage?.getElements().Remove(myDraggedItem); myDraggedItem.setDrawable(null); DraggedElement = null; }
internal static void AcceptElement(IDropTarget myResult) { if (DraggedElement == null) { return; } var myItem = DraggedElement.GetDraggedItem(); myResult.Accept(myItem); DraggedElement?.OnDragEnd(true); DraggedElement = null; aStage?.getElements().Remove(myDraggedItem); }
internal static void StartDrag(Vector2 Position, Stage myStageImage, IDraggableElement myElement) { aStage?.getElements().Remove(myDraggedItem); aStage = myStageImage; DraggedElement?.OnDragReset(); DraggedElement = myElement; myElement.OnDragStart(); if (!myStageImage.getElements().Contains(myDraggedItem)) { myStageImage.addElement(myDraggedItem); } myDraggedItem.setDrawable(DraggedElement.GetGraphic()); myDraggedItem.setPosition(Position.X, Position.Y); }
/// <summary> /// Mouse or touch is being moved. /// </summary> /// <param name="inputPos">location of cursor</param> /// <param name="over">element under cursor</param> /// <param name="lastOver">element that was previously under the cursor</param> void updateInputMoved(Vector2 inputPos, Element over, Element lastOver) { for (var i = _inputFocusListeners.Count - 1; i >= 0; i--) { ((IInputListener)_inputFocusListeners[i]).onMouseMoved(_inputFocusListeners[i].stageToLocalCoordinates(inputPos)); } if (pressed) { if (over != null) { IDraggableElement myOver = over as IDraggableElement; if (myOver != null) { DragAndDropSystem.StartDrag(inputPos, this, myOver); } } } if (over != lastOver) { (over as IInputListener)?.onMouseEnter(); (lastOver as IInputListener)?.onMouseExit(); } }