示例#1
0
 public ItemDropArgs(object[] dragItems, object dropTarget, ItemDropAction action, bool isExternal)
 {
     DragItems  = dragItems;
     DropTarget = dropTarget;
     Action     = action;
     IsExternal = isExternal;
 }
示例#2
0
 public ItemDropCancelArgs(
     object[] dragItems,
     object dropTarget,
     ItemDropAction action,
     bool isExternal,
     PointerEventData pointerEventData)
     : base(dragItems, dropTarget, action, isExternal, pointerEventData)
 {
 }
示例#3
0
 public ItemDropArgs(
     object[] dragItems,
     object dropTarget,
     ItemDropAction action,
     bool isExternal,
     PointerEventData pointerEventData)
 {
     this.DragItems        = dragItems;
     this.DropTarget       = dropTarget;
     this.Action           = action;
     this.IsExternal       = isExternal;
     this.PointerEventData = pointerEventData;
 }
示例#4
0
 protected virtual void OnDrag(PointerEventData pointerEventData)
 {
     object[] dragObjects = Editor.DragDrop.DragObjects;
     m_treeView.ExternalItemDrag(pointerEventData.position);
     m_lastDropAction = m_treeView.DropAction;
     if (CanDrop(dragObjects))
     {
         Editor.DragDrop.SetCursor(KnownCursor.DropAllowed);
     }
     else
     {
         Editor.DragDrop.SetCursor(KnownCursor.DropNotAllowed);
         m_treeView.ClearTarget();
     }
 }
示例#5
0
        private void ExecuteDropItemAction(String techTypeString, GameObject gameObject)
        {
            Optional <TechType> opTechType = ApiHelper.TechType(techTypeString);

            if (opTechType.IsEmpty())
            {
                Console.WriteLine("Attempted to drop unknown tech type: " + techTypeString);
                return;
            }

            TechType techType = opTechType.Get();

            Console.WriteLine("Performing drop action for tech type: " + techType);

            ItemDropAction itemDropAction = ItemDropAction.FromTechType(techType);

            itemDropAction.ProcessDroppedItem(gameObject);
        }
示例#6
0
        protected override void Drop(
            ItemContainerData[] dragItems,
            ItemContainerData dropTarget,
            ItemDropAction action)
        {
            TreeViewItemContainerData parent = (TreeViewItemContainerData)dropTarget;

            switch (action)
            {
            case ItemDropAction.SetLastChild:
                for (int index = 0; index < dragItems.Length; ++index)
                {
                    TreeViewItemContainerData dragItem = (TreeViewItemContainerData)dragItems[index];
                    if (parent == null || parent != dragItem && !parent.IsDescendantOf(dragItem))
                    {
                        this.SetParent(parent, dragItem);
                    }
                    else
                    {
                        break;
                    }
                }
                break;

            case ItemDropAction.SetPrevSibling:
                for (int index = 0; index < dragItems.Length; ++index)
                {
                    this.SetPrevSiblingInternal((ItemContainerData)parent, dragItems[index]);
                }
                break;

            case ItemDropAction.SetNextSibling:
                for (int index = dragItems.Length - 1; index >= 0; --index)
                {
                    this.SetNextSiblingInternal((ItemContainerData)parent, dragItems[index]);
                }
                break;
            }
            this.UpdateSelectedItemIndex();
        }
        public override void SetPosition(Vector2 position)
        {
            if(Item == null)
            {
                return;
            }

            RectTransform rt = Item.RectTransform;
            TreeViewItem tvItem = (TreeViewItem)Item;
            Vector2 localPoint;

            Camera camera = null;
            if(ParentCanvas.renderMode == RenderMode.WorldSpace)
            {
                camera = m_treeView.Camera;
            }

            if(RectTransformUtility.ScreenPointToLocalPointInRectangle(rt, position, camera, out localPoint))
            {
                if (localPoint.y > -rt.rect.height / 4)
                {
                    Action = ItemDropAction.SetPrevSibling;
                    RectTransform.position = rt.position;
                }
                else if (localPoint.y < rt.rect.height / 4 - rt.rect.height && !tvItem.HasChildren)
                {
                    Action = ItemDropAction.SetNextSibling;
                    RectTransform.position = rt.position - new Vector3(0, rt.rect.height, 0);
                }
                else
                {
                    Action = ItemDropAction.SetLastChild;
                    RectTransform.position = rt.position;
                }
            }

           
        }
示例#8
0
        protected override void Drop(
            ItemContainer[] dragItems,
            ItemContainer dropTarget,
            ItemDropAction action)
        {
            TreeViewItem treeViewItem = (TreeViewItem)dropTarget;

            switch (action)
            {
            case ItemDropAction.SetLastChild:
                for (int index = 0; index < dragItems.Length; ++index)
                {
                    TreeViewItem dragItem = (TreeViewItem)dragItems[index];
                    if (Object.op_Inequality((Object)treeViewItem, (Object)dragItem))
                    {
                        dragItem.Parent = treeViewItem;
                    }
                }
                break;

            case ItemDropAction.SetPrevSibling:
                for (int index = 0; index < dragItems.Length; ++index)
                {
                    this.SetPrevSibling((ItemContainer)treeViewItem, dragItems[index]);
                }
                break;

            case ItemDropAction.SetNextSibling:
                for (int index = dragItems.Length - 1; index >= 0; --index)
                {
                    this.SetNextSibling((ItemContainer)treeViewItem, dragItems[index]);
                }
                break;
            }
            this.UpdateSelectedItemIndex();
        }
        protected override void Drop(ItemContainer[] dragItems, ItemContainer dropTarget, ItemDropAction action)
        {
            TreeViewItem tvDropTarget = (TreeViewItem)dropTarget;

            if (action == ItemDropAction.SetLastChild)
            {
                for (int i = 0; i < dragItems.Length; ++i)
                {
                    TreeViewItem tvDragItem = (TreeViewItem)dragItems[i];
                    tvDragItem.Parent = tvDropTarget;
                }
            }
            else if (action == ItemDropAction.SetPrevSibling)
            {
                for (int i = 0; i < dragItems.Length; ++i)
                {
                    TreeViewItem tvDragItem    = (TreeViewItem)dragItems[i];
                    TreeViewItem dragItemChild = tvDragItem.FirstChild();

                    DropItemBefore(tvDropTarget, tvDragItem);
                    if (dragItemChild != null)
                    {
                        MoveSubtree(tvDragItem, dragItemChild);
                    }

                    tvDragItem.Parent = tvDropTarget.Parent;
                }
            }
            else if (action == ItemDropAction.SetNextSibling)
            {
                for (int i = dragItems.Length - 1; i >= 0; --i)
                {
                    TreeViewItem tvDragItem    = (TreeViewItem)dragItems[i];
                    TreeViewItem dragItemChild = tvDragItem.FirstChild();

                    DropItemAfter(tvDropTarget, tvDragItem);
                    if (dragItemChild != null)
                    {
                        MoveSubtree(tvDragItem, dragItemChild);
                    }

                    tvDragItem.Parent = tvDropTarget.Parent;
                }
            }

            UpdateSelectedItemIndex();
        }
        protected override void Drop(ItemContainerData[] dragItems, ItemContainerData dropTarget, ItemDropAction action)
        {
            TreeViewItemContainerData tvDropTarget = (TreeViewItemContainerData)dropTarget;

            if (action == ItemDropAction.SetLastChild)
            {
                for (int i = 0; i < dragItems.Length; ++i)
                {
                    TreeViewItemContainerData dragItemData = (TreeViewItemContainerData)dragItems[i];
                    if (tvDropTarget == null || tvDropTarget != dragItemData && !tvDropTarget.IsDescendantOf(dragItemData)) //disallow self parenting
                    {
                        SetParent(tvDropTarget, dragItemData);
                    }
                    else
                    {
                        break;
                    }
                }
            }
            else if (action == ItemDropAction.SetPrevSibling)
            {
                for (int i = 0; i < dragItems.Length; ++i)
                {
                    SetPrevSiblingInternal(tvDropTarget, dragItems[i]);
                }
            }
            else if (action == ItemDropAction.SetNextSibling)
            {
                for (int i = dragItems.Length - 1; i >= 0; --i)
                {
                    SetNextSiblingInternal(tvDropTarget, dragItems[i]);
                }
            }

            UpdateSelectedItemIndex();
        }
示例#11
0
 public ListDropCommand(ItemDropArgs _args)
 {
     this.target = (ObjectCtrl)_args.DropTarget;
     this.action = _args.Action;
     this.infos  = ((IEnumerable <object>)_args.DragItems).Select <object, ListDropCommand.Info>((Func <object, ListDropCommand.Info>)(v => new ListDropCommand.Info((ObjectCtrl)v))).ToArray <ListDropCommand.Info>();
 }
示例#12
0
 public override void SetPosition(Vector2 position)
 {
     if (Object.op_Equality((Object)this.Item, (Object)null))
     {
         return;
     }
     if (!this.m_treeView.CanReparent)
     {
         base.SetPosition(position);
     }
     else
     {
         RectTransform rectTransform1 = this.Item.RectTransform;
         TreeViewItem  treeViewItem   = (TreeViewItem)this.Item;
         Camera        camera         = (Camera)null;
         if (this.ParentCanvas.get_renderMode() == 2 || this.ParentCanvas.get_renderMode() == 1)
         {
             camera = this.m_treeView.Camera;
         }
         if (!this.m_treeView.CanReorder)
         {
             if (!treeViewItem.CanDrop)
             {
                 return;
             }
             this.Action = ItemDropAction.SetLastChild;
             ((Transform)this.RectTransform).set_position(((Transform)rectTransform1).get_position());
         }
         else
         {
             Vector2 vector2;
             if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform1, position, camera, ref vector2))
             {
                 return;
             }
             // ISSUE: variable of the null type
             __Null y1    = vector2.y;
             Rect   rect1 = rectTransform1.get_rect();
             double num1  = -(double)((Rect) ref rect1).get_height() / 4.0;
             if (y1 > num1)
             {
                 this.Action = ItemDropAction.SetPrevSibling;
                 ((Transform)this.RectTransform).set_position(((Transform)rectTransform1).get_position());
             }
             else
             {
                 // ISSUE: variable of the null type
                 __Null y2     = vector2.y;
                 Rect   rect2  = rectTransform1.get_rect();
                 double num2   = (double)((Rect) ref rect2).get_height() / 4.0;
                 Rect   rect3  = rectTransform1.get_rect();
                 double height = (double)((Rect) ref rect3).get_height();
                 double num3   = num2 - height;
                 if (y2 < num3 && !treeViewItem.HasChildren)
                 {
                     this.Action = ItemDropAction.SetNextSibling;
                     ((Transform)this.RectTransform).set_position(((Transform)rectTransform1).get_position());
                     RectTransform rectTransform2 = this.RectTransform;
                     Vector3       localPosition  = ((Transform)this.RectTransform).get_localPosition();
                     Rect          rect4          = rectTransform1.get_rect();
                     Vector3       vector3_1      = new Vector3(0.0f, (float)((double)((Rect) ref rect4).get_height() * (double)this.ParentCanvas.get_scaleFactor()), 0.0f);
                     Vector3       vector3_2      = Vector3.op_Subtraction(localPosition, vector3_1);
                     ((Transform)rectTransform2).set_localPosition(vector3_2);
                 }
                 else
                 {
                     if (!treeViewItem.CanDrop)
                     {
                         return;
                     }
                     this.Action = ItemDropAction.SetLastChild;
                     ((Transform)this.RectTransform).set_position(((Transform)rectTransform1).get_position());
                 }
             }
         }
     }
 }
示例#13
0
 public TreeReparentingEventArgs(T draggingItem, T target, ItemDropAction action) : base(draggingItem, target, action)
 {
 }
示例#14
0
 public TreeReparentEventArgs(T draggingItem, T target, ItemDropAction action)
 {
     DraggingItem = draggingItem;
     Target       = target;
     Action       = action;
 }
示例#15
0
 protected virtual bool InvokeOnReparenting(object draggingItem, object target, ItemDropAction action)
 {
     throw new NotImplementedException("Make sure to override InvokeOnReparenting!");
 }
        public override void SetPosition(Vector2 position)
        {
            if (Item == null)
            {
                return;
            }

            if (!m_treeView.CanReparent)
            {
                base.SetPosition(position);
                return;
            }

            RectTransform rt     = Item.RectTransform;
            TreeViewItem  tvItem = (TreeViewItem)Item;
            Vector2       localPoint;

            Camera camera = null;

            if (ParentCanvas.renderMode == RenderMode.WorldSpace || ParentCanvas.renderMode == RenderMode.ScreenSpaceCamera)
            {
                camera = m_treeView.Camera;
            }


            if (!m_treeView.CanReorder)
            {
                if (!tvItem.CanDrop)
                {
                    return;
                }

                Action = ItemDropAction.SetLastChild;
                RectTransform.position = rt.position;
            }
            else
            {
                if (RectTransformUtility.ScreenPointToLocalPointInRectangle(rt, position, camera, out localPoint))
                {
                    if (localPoint.y > -rt.rect.height / 4)
                    {
                        Action = ItemDropAction.SetPrevSibling;
                        RectTransform.position = rt.position;
                    }
                    else if (localPoint.y < rt.rect.height / 4 - rt.rect.height && !tvItem.HasChildren)
                    {
                        Action = ItemDropAction.SetNextSibling;
                        RectTransform.position = rt.position + Vector3.Scale(Vector3.down * rt.rect.height, ParentCanvas.transform.localScale);
                    }
                    else
                    {
                        if (!tvItem.CanDrop)
                        {
                            return;
                        }

                        Action = ItemDropAction.SetLastChild;
                        RectTransform.position = rt.position;
                    }
                }
            }
        }