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);
     }
 }
Esempio n. 3
0
        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);
     }
 }
Esempio n. 7
0
        public void WhenBeingDraggedOverEditor(ICanvas canvas, DraggingContext draggingContext)
        {
            _entityCreation.CurrentEditor.SetPosition(MouseStatus.WorldPosition);


            draggingContext.DragEventArgs.Effect = DRAG_DROP_EFFECTS;
        }
Esempio n. 8
0
        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;
                    }
                }
            }
        }
Esempio n. 9
0
        public void WhenBeingDraggedOverEditor(ICanvas canvas, DraggingContext draggingContext)
        {
            ITreeItem itemEditor = canvas.ItemUnderMouse;

            if (itemEditor == null)
            {
                draggingContext.DragEventArgs.Effect = DragDropEffects.None;
            }

            draggingContext.DragEventArgs.Effect = DragDropEffects.Link;
        }
Esempio n. 10
0
        public void WhenDroppedOntoEditor(ICanvas canvas, DraggingContext context)
        {
            ITreeItem itemEditor = canvas.ItemUnderMouse;

            if (itemEditor == null)
            {
                return;
            }

            IoC.Model.AttachBehaviour(itemEditor, _buildBehaviour(itemEditor));
        }
Esempio n. 11
0
    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);
        }
Esempio n. 13
0
        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);
            }
        }
Esempio n. 14
0
 public void WhenDroppedOntoEditor(ICanvas canvas, DraggingContext context)
 {
     canvas.AddNewItemAtMouse(_entityCreation.CurrentEditor);
     canvas.SetModeTo(UserActionInEditor.Idle);
 }
Esempio n. 15
0
 public void WhenEnteringEditor(ICanvas canvas, DraggingContext context)
 {
 }
Esempio n. 16
0
 void whenDroppedOntoEditor(ICanvas canvas, DraggingContext draggingContext)
 {
     canvas.StartCreatingEntityNow(
         new EntityCreationProperties(GetType(), UiAction.Dragging));
 }
Esempio n. 17
0
 void whenDraggingOverEditor(ICanvas canvas, DraggingContext draggingContext)
 {
     draggingContext.DragEventArgs.Effect = DragDropEffects.Move;
 }
Esempio n. 18
0
 void whenEnteringEditor(DraggingContext draggingContext)
 {
     draggingContext.DragEventArgs.Effect = DragDropEffects.Move;
 }
Esempio n. 19
0
 public void WhenLeavingEditor(ICanvas canvas, DraggingContext draggingContext)
 {
 }
Esempio n. 20
0
 public void WhenLeavingEditor(ICanvas canvas, DraggingContext draggingContext)
 {
     canvas.CancelCreatingEntity();
 }
Esempio n. 21
0
 public void WhenEnteringEditor(ICanvas canvas, DraggingContext context)
 {
     _entityCreation = canvas.StartCreatingEntityNow(_creationProperties);
 }