using UnityEngine; using UnityEngine.EventSystems; namespace UIWidgets { [RequireComponent(typeof(ListViewIcons))] public class ListViewIconsDropSupport : MonoBehaviour, IDropSupport>, IDropSupport { public bool CanReceiveDrop(TreeNode data, PointerEventData eventData) { return data.Nodes == null || data.Nodes.Count == 0; } public void Drop(TreeNode data, PointerEventData eventData) { ListViewIcons component = GetComponent(); component.DataSource.Add(new ListViewIconsItemDescription { Name = data.Item.Name, LocalizedName = data.Item.LocalizedName, Icon = data.Item.Icon, Value = data.Item.Value }); data.Parent = null; } public void DropCanceled(TreeNode data, PointerEventData eventData) { } public bool CanReceiveDrop(ListViewIconsItemDescription data, PointerEventData eventData) { return true; } public void Drop(ListViewIconsItemDescription data, PointerEventData eventData) { ListViewIcons component = GetComponent(); component.DataSource.Add(data); } public void DropCanceled(ListViewIconsItemDescription data, PointerEventData eventData) { } } }