public object StartDragging(VisualElement item) { var items = _itemsContainer.Children().ToArray(); var context = new DraggingContext { items = items, originalPositions = items.Select(t => t.layout).ToArray(), draggedIndex = _itemsContainer.IndexOf(item), myOriginalPosition = _itemsContainer.layout }; Select(context.draggedIndex); for (int i = 0; i < context.items.Length; ++i) { VisualElement child = context.items[i]; Rect rect = context.originalPositions[i]; child.style.position = PositionType.Absolute; child.style.left = rect.x; child.style.top = rect.y; child.style.width = rect.width; child.style.height = rect.height; } item.BringToFront(); _itemsContainer.style.width = context.myOriginalPosition.width; _itemsContainer.style.height = context.myOriginalPosition.height; return(context); }
public void WhenDroppedOntoEditor(ICanvas canvas, DraggingContext context) { if (_whenDroppedOntoEditor != null) { _whenDroppedOntoEditor(canvas, context); } }
public object StartDragging(VisualElement item) { //Fix all item so that they can be animated and we can control their positions DraggingContext context = new DraggingContext(); context.items = m_ListContainer.Children().ToArray(); context.originalPositions = context.items.Select(t => t.layout).ToArray(); context.draggedIndex = m_ListContainer.IndexOf(item); context.myOriginalPosition = m_ListContainer.layout; Select(context.draggedIndex); for (int i = 0; i < context.items.Length; ++i) { VisualElement child = context.items[i]; Rect rect = context.originalPositions[i]; child.style.position = PositionType.Absolute; child.style.left = rect.x; child.style.top = rect.y; child.style.width = rect.width; child.style.height = rect.height; } item.BringToFront(); m_ListContainer.style.width = context.myOriginalPosition.width; m_ListContainer.style.height = context.myOriginalPosition.height; return(context); }
public void WhenLeavingEditor(ICanvas canvas, DraggingContext draggingContext) { if (_whenLeavingEditor != null) { _whenLeavingEditor(draggingContext); } }
public void WhenEnteringEditor(ICanvas canvas, DraggingContext context) { if (_whenEnteringEditor != null) { _whenEnteringEditor(context); } }
public void WhenBeingDraggedOverEditor(ICanvas canvas, DraggingContext draggingContext) { if (_whenDraggingOverEditor != null) { _whenDraggingOverEditor(canvas, draggingContext); } }
public void WhenBeingDraggedOverEditor(ICanvas canvas, DraggingContext draggingContext) { _entityCreation.CurrentEditor.SetPosition(MouseStatus.WorldPosition); draggingContext.DragEventArgs.Effect = DRAG_DROP_EFFECTS; }
public void ItemDragging(object ctx, VisualElement item, float offset, Vector2 mouseWorldPosition) { DraggingContext context = (DraggingContext)ctx; if (context == null) { return; } item.style.top = context.originalPositions[context.draggedIndex].y + offset; int hoveredIndex = GetHoveredIndex(context, mouseWorldPosition); if (hoveredIndex != -1) { float draggedHeight = context.originalPositions[context.draggedIndex].height; if (hoveredIndex < context.draggedIndex) { for (int i = 0; i < hoveredIndex; ++i) { context.items[i].style.top = context.originalPositions[i].y; } for (int i = hoveredIndex; i < context.draggedIndex; ++i) { context.items[i].style.top = context.originalPositions[i].y + draggedHeight; } for (int i = context.draggedIndex + 1; i < context.items.Length; ++i) { context.items[i].style.top = context.originalPositions[i].y; } } else if (hoveredIndex > context.draggedIndex) { for (int i = 0; i < context.draggedIndex; ++i) { context.items[i].style.top = context.originalPositions[i].y; } for (int i = hoveredIndex; i > context.draggedIndex; --i) { context.items[i].style.top = context.originalPositions[i].y - draggedHeight; } for (int i = hoveredIndex + 1; i < context.items.Length; ++i) { context.items[i].style.top = context.originalPositions[i].y; } } } else { for (int i = 0; i < context.items.Length; ++i) { if (i != context.draggedIndex) { context.items[i].style.top = context.originalPositions[i].y; } } } }
public void WhenBeingDraggedOverEditor(ICanvas canvas, DraggingContext draggingContext) { ITreeItem itemEditor = canvas.ItemUnderMouse; if (itemEditor == null) { draggingContext.DragEventArgs.Effect = DragDropEffects.None; } draggingContext.DragEventArgs.Effect = DragDropEffects.Link; }
public void WhenDroppedOntoEditor(ICanvas canvas, DraggingContext context) { ITreeItem itemEditor = canvas.ItemUnderMouse; if (itemEditor == null) { return; } IoC.Model.AttachBehaviour(itemEditor, _buildBehaviour(itemEditor)); }
private void clearAndSetupDraggingContext() { if (draggingContext) { Destroy(draggingContext.gameObject); } if (agent.draggingContext) { Destroy(agent.draggingContext.gameObject); } draggingContext = DraggingContextFactory.Instance.Build(agent); agent.draggingContext = draggingContext; }
private int GetHoveredIndex(DraggingContext context, Vector2 mouseWorldPosition) { var mousePosition = _itemsContainer.WorldToLocal(mouseWorldPosition); var hoveredIndex = -1; for (int i = 0; i < context.items.Length; ++i) { if (i != context.draggedIndex && context.originalPositions[i].Contains(mousePosition)) { hoveredIndex = i; break; } } return(hoveredIndex); }
public void EndDragging(object ctx, VisualElement item, float offset, Vector2 mouseWorldPosition) { DraggingContext context = (DraggingContext)ctx; foreach (var child in m_ListContainer.Children()) { child.ResetPositionProperties(); } int hoveredIndex = GetHoveredIndex(context, mouseWorldPosition); m_ListContainer.Insert(hoveredIndex != -1 ? hoveredIndex : context.draggedIndex, item); m_ListContainer.ResetPositionProperties(); if (hoveredIndex != -1) { ElementMoved(context.draggedIndex, hoveredIndex); } }
public void WhenDroppedOntoEditor(ICanvas canvas, DraggingContext context) { canvas.AddNewItemAtMouse(_entityCreation.CurrentEditor); canvas.SetModeTo(UserActionInEditor.Idle); }
public void WhenEnteringEditor(ICanvas canvas, DraggingContext context) { }
void whenDroppedOntoEditor(ICanvas canvas, DraggingContext draggingContext) { canvas.StartCreatingEntityNow( new EntityCreationProperties(GetType(), UiAction.Dragging)); }
void whenDraggingOverEditor(ICanvas canvas, DraggingContext draggingContext) { draggingContext.DragEventArgs.Effect = DragDropEffects.Move; }
void whenEnteringEditor(DraggingContext draggingContext) { draggingContext.DragEventArgs.Effect = DragDropEffects.Move; }
public void WhenLeavingEditor(ICanvas canvas, DraggingContext draggingContext) { }
public void WhenLeavingEditor(ICanvas canvas, DraggingContext draggingContext) { canvas.CancelCreatingEntity(); }
public void WhenEnteringEditor(ICanvas canvas, DraggingContext context) { _entityCreation = canvas.StartCreatingEntityNow(_creationProperties); }