public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { HierarchyProperty hierarchyProperty = new HierarchyProperty(HierarchyType.GameObjects); if (parentItem == null || targetItem == null) { return InternalEditorUtility.HierarchyWindowDrag(null, perform, InternalEditorUtility.HierarchyDropMode.kHierarchyDropUpon); } if (this.allowDragBetween) { if (dropPos == TreeViewDragging.DropPosition.Above || targetItem == null || !hierarchyProperty.Find(targetItem.id, null)) { hierarchyProperty = null; } } else { if (dropPos == TreeViewDragging.DropPosition.Above || parentItem == null || !hierarchyProperty.Find(parentItem.id, null)) { hierarchyProperty = null; } } InternalEditorUtility.HierarchyDropMode hierarchyDropMode = InternalEditorUtility.HierarchyDropMode.kHierarchyDragNormal; if (this.allowDragBetween) { hierarchyDropMode = ((dropPos != TreeViewDragging.DropPosition.Upon) ? InternalEditorUtility.HierarchyDropMode.kHierarchyDropBetween : InternalEditorUtility.HierarchyDropMode.kHierarchyDropUpon); } if (parentItem != null && parentItem == targetItem && dropPos != TreeViewDragging.DropPosition.Above) { hierarchyDropMode |= InternalEditorUtility.HierarchyDropMode.kHierarchyDropAfterParent; } return InternalEditorUtility.HierarchyWindowDrag(hierarchyProperty, perform, hierarchyDropMode); }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { HierarchyProperty property = new HierarchyProperty(HierarchyType.Assets); if (parentItem == null || !property.Find(parentItem.id, (int[]) null)) property = (HierarchyProperty) null; return InternalEditorUtility.ProjectWindowDrag(property, perform); }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { HierarchyProperty property = new HierarchyProperty(HierarchyType.GameObjects); if ((parentItem == null) || (targetItem == null)) { return InternalEditorUtility.HierarchyWindowDrag(null, perform, InternalEditorUtility.HierarchyDropMode.kHierarchyDropUpon); } if (this.allowDragBetween) { if (((dropPos == TreeViewDragging.DropPosition.Above) || (targetItem == null)) || !property.Find(targetItem.id, null)) { property = null; } } else if (((dropPos == TreeViewDragging.DropPosition.Above) || (parentItem == null)) || !property.Find(parentItem.id, null)) { property = null; } InternalEditorUtility.HierarchyDropMode kHierarchyDragNormal = InternalEditorUtility.HierarchyDropMode.kHierarchyDragNormal; if (this.allowDragBetween) { kHierarchyDragNormal = (dropPos != TreeViewDragging.DropPosition.Upon) ? InternalEditorUtility.HierarchyDropMode.kHierarchyDropBetween : InternalEditorUtility.HierarchyDropMode.kHierarchyDropUpon; } if (((parentItem != null) && (parentItem == targetItem)) && (dropPos != TreeViewDragging.DropPosition.Above)) { kHierarchyDragNormal |= InternalEditorUtility.HierarchyDropMode.kHierarchyDropAfterParent; } return InternalEditorUtility.HierarchyWindowDrag(property, perform, kHierarchyDragNormal); }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { AudioMixerTreeViewNode audioMixerTreeViewNode = parentNode as AudioMixerTreeViewNode; List <AudioMixerGroupController> list = new List <UnityEngine.Object>(DragAndDrop.objectReferences).OfType <AudioMixerGroupController>().ToList <AudioMixerGroupController>(); DragAndDropVisualMode result; if (audioMixerTreeViewNode != null && list.Count > 0) { List <int> list2 = (from i in list select i.GetInstanceID()).ToList <int>(); bool flag = this.ValidDrag(parentNode, list2) && !AudioMixerController.WillModificationOfTopologyCauseFeedback(this.m_owner.Controller.GetAllAudioGroupsSlow(), list, audioMixerTreeViewNode.group, null); if (perform && flag) { AudioMixerGroupController group = audioMixerTreeViewNode.group; int insertionIndex = TreeViewDragging.GetInsertionIndex(parentNode, targetNode, dragPos); this.m_owner.Controller.ReparentSelection(group, insertionIndex, list); this.m_owner.ReloadTree(); this.m_TreeView.SetSelection(list2.ToArray(), true); } result = ((!flag) ? DragAndDropVisualMode.Rejected : DragAndDropVisualMode.Move); } else { result = DragAndDropVisualMode.None; } return(result); }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { AudioMixerTreeViewDragging.DragData dragData = DragAndDrop.GetGenericData("AudioMixerDragging") as AudioMixerTreeViewDragging.DragData; if (dragData == null) { return DragAndDropVisualMode.None; } List<AudioMixerItem> draggedItems = dragData.m_DraggedItems; AudioMixerItem audioMixerItem = parentNode as AudioMixerItem; if (audioMixerItem != null && dragData != null) { List<AudioMixerGroupController> groupsToBeMoved = ( from i in draggedItems select i.mixer.masterGroup).ToList<AudioMixerGroupController>(); List<AudioMixerGroupController> allAudioGroupsSlow = audioMixerItem.mixer.GetAllAudioGroupsSlow(); bool flag = AudioMixerController.WillModificationOfTopologyCauseFeedback(allAudioGroupsSlow, groupsToBeMoved, audioMixerItem.mixer.masterGroup, null); bool flag2 = this.ValidDrag(parentNode, draggedItems) && !flag; if (perform && flag2 && this.m_MixersDroppedOnMixerCallback != null) { this.m_MixersDroppedOnMixerCallback(this.GetAudioMixersFromItems(draggedItems), audioMixerItem.mixer); } return (!flag2) ? DragAndDropVisualMode.Rejected : DragAndDropVisualMode.Move; } return DragAndDropVisualMode.None; }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { if (targetItem == null) { return DragAndDropVisualMode.None; } object genericData = DragAndDrop.GetGenericData(ProjectWindowUtil.k_DraggingFavoriteGenericData); if (genericData != null) { int instanceID = (int) genericData; if (!(targetItem is SearchFilterTreeItem) || !(parentItem is SearchFilterTreeItem)) { return DragAndDropVisualMode.None; } bool flag = SavedSearchFilters.CanMoveSavedFilter(instanceID, parentItem.id, targetItem.id, true); if (flag && perform) { SavedSearchFilters.MoveSavedFilter(instanceID, parentItem.id, targetItem.id, true); } return (!flag ? DragAndDropVisualMode.None : DragAndDropVisualMode.Copy); } if (!(targetItem is SearchFilterTreeItem) || !(parentItem is SearchFilterTreeItem)) { return base.DoDrag(parentItem, targetItem, perform, dropPos); } string str = DragAndDrop.GetGenericData(ProjectWindowUtil.k_IsFolderGenericData) as string; if (!(str == "isFolder")) { return DragAndDropVisualMode.None; } if (perform) { UnityEngine.Object[] objectReferences = DragAndDrop.objectReferences; if (objectReferences.Length > 0) { HierarchyProperty property = new HierarchyProperty(HierarchyType.Assets); if (property.Find(objectReferences[0].GetInstanceID(), null)) { SearchFilter filter = new SearchFilter(); string assetPath = AssetDatabase.GetAssetPath(property.instanceID); if (!string.IsNullOrEmpty(assetPath)) { filter.folders = new string[] { assetPath }; bool addAsChild = targetItem == parentItem; float listAreaGridSize = ProjectBrowserColumnOneTreeViewGUI.GetListAreaGridSize(); Selection.activeInstanceID = SavedSearchFilters.AddSavedFilterAfterInstanceID(property.name, filter, listAreaGridSize, targetItem.id, addAsChild); } else { Debug.Log("Could not get asset path from id " + property.name); } } } } return DragAndDropVisualMode.Copy; }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { AudioMixerTreeViewNode node = targetNode as AudioMixerTreeViewNode; AudioMixerTreeViewNode node2 = parentNode as AudioMixerTreeViewNode; List<AudioMixerGroupController> source = new List<Object>(DragAndDrop.objectReferences).OfType<AudioMixerGroupController>().ToList<AudioMixerGroupController>(); if ((node2 == null) || (source.Count <= 0)) { return DragAndDropVisualMode.None; } if (<>f__am$cache1 == null) {
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { DragData genericData = DragAndDrop.GetGenericData("AudioMixerDragging") as DragData; if (genericData == null) { return DragAndDropVisualMode.None; } List<AudioMixerItem> draggedItems = genericData.m_DraggedItems; AudioMixerItem item = parentNode as AudioMixerItem; if ((item == null) || (genericData == null)) { return DragAndDropVisualMode.None; } if (<>f__am$cache1 == null) {
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { AudioMixerTreeViewDragging.DragData genericData = DragAndDrop.GetGenericData("AudioMixerDragging") as AudioMixerTreeViewDragging.DragData; if (genericData == null) return DragAndDropVisualMode.None; List<AudioMixerItem> draggedItems = genericData.m_DraggedItems; AudioMixerItem audioMixerItem = parentNode as AudioMixerItem; if (audioMixerItem == null || genericData == null) return DragAndDropVisualMode.None; List<AudioMixerGroupController> list = draggedItems.Select<AudioMixerItem, AudioMixerGroupController>((Func<AudioMixerItem, AudioMixerGroupController>) (i => i.mixer.masterGroup)).ToList<AudioMixerGroupController>(); bool flag1 = AudioMixerController.WillModificationOfTopologyCauseFeedback(audioMixerItem.mixer.GetAllAudioGroupsSlow(), list, audioMixerItem.mixer.masterGroup, (List<AudioMixerController.ConnectionNode>) null); bool flag2 = this.ValidDrag(parentNode, draggedItems) && !flag1; if (perform && flag2 && this.m_MixersDroppedOnMixerCallback != null) this.m_MixersDroppedOnMixerCallback(this.GetAudioMixersFromItems(draggedItems), audioMixerItem.mixer); return flag2 ? DragAndDropVisualMode.Move : DragAndDropVisualMode.Rejected; }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { AudioMixerTreeViewNode mixerTreeViewNode1 = targetNode as AudioMixerTreeViewNode; AudioMixerTreeViewNode mixerTreeViewNode2 = parentNode as AudioMixerTreeViewNode; List<AudioMixerGroupController> list1 = new List<UnityEngine.Object>((IEnumerable<UnityEngine.Object>) DragAndDrop.objectReferences).OfType<AudioMixerGroupController>().ToList<AudioMixerGroupController>(); if (mixerTreeViewNode2 == null || list1.Count <= 0) return DragAndDropVisualMode.None; List<int> list2 = list1.Select<AudioMixerGroupController, int>((Func<AudioMixerGroupController, int>) (i => i.GetInstanceID())).ToList<int>(); bool flag = this.ValidDrag(parentNode, list2) && !AudioMixerController.WillModificationOfTopologyCauseFeedback(this.m_owner.Controller.GetAllAudioGroupsSlow(), list1, mixerTreeViewNode2.group, (List<AudioMixerController.ConnectionNode>) null); if (perform && flag) { this.m_owner.Controller.ReparentSelection(mixerTreeViewNode2.group, mixerTreeViewNode1.group, list1); this.m_owner.ReloadTree(); this.m_TreeView.SetSelection(list2.ToArray(), true); } return flag ? DragAndDropVisualMode.Move : DragAndDropVisualMode.Rejected; }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { if (targetItem == null) return DragAndDropVisualMode.None; object genericData = DragAndDrop.GetGenericData(ProjectWindowUtil.k_DraggingFavoriteGenericData); if (genericData != null) { int instanceID = (int) genericData; if (!(targetItem is SearchFilterTreeItem) || !(parentItem is SearchFilterTreeItem)) return DragAndDropVisualMode.None; bool flag = SavedSearchFilters.CanMoveSavedFilter(instanceID, parentItem.id, targetItem.id, true); if (flag && perform) SavedSearchFilters.MoveSavedFilter(instanceID, parentItem.id, targetItem.id, true); return flag ? DragAndDropVisualMode.Copy : DragAndDropVisualMode.None; } if (!(targetItem is SearchFilterTreeItem) || !(parentItem is SearchFilterTreeItem)) return base.DoDrag(parentItem, targetItem, perform, dropPos); if (!(DragAndDrop.GetGenericData(ProjectWindowUtil.k_IsFolderGenericData) as string == "isFolder")) return DragAndDropVisualMode.None; if (perform) { Object[] objectReferences = DragAndDrop.objectReferences; if (objectReferences.Length > 0) { string assetPath = AssetDatabase.GetAssetPath(objectReferences[0].GetInstanceID()); if (!string.IsNullOrEmpty(assetPath)) { string name = new DirectoryInfo(assetPath).Name; SearchFilter filter = new SearchFilter(); filter.folders = new string[1]{ assetPath }; bool addAsChild = targetItem == parentItem; float listAreaGridSize = ProjectBrowserColumnOneTreeViewGUI.GetListAreaGridSize(); Selection.activeInstanceID = SavedSearchFilters.AddSavedFilterAfterInstanceID(name, filter, listAreaGridSize, targetItem.id, addAsChild); } else Debug.Log((object) ("Could not get asset path from id " + (object) objectReferences[0].GetInstanceID())); } } return DragAndDropVisualMode.Copy; }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { DragAndDropVisualMode andDropVisualMode = this.DoDragScenes(parentItem as GameObjectTreeViewItem, targetItem as GameObjectTreeViewItem, perform, dropPos); if (andDropVisualMode != DragAndDropVisualMode.None) return andDropVisualMode; if (parentItem == null || targetItem == null) return InternalEditorUtility.HierarchyWindowDrag((HierarchyProperty) null, perform, InternalEditorUtility.HierarchyDropMode.kHierarchyDropUpon); HierarchyProperty property = new HierarchyProperty(HierarchyType.GameObjects); if (this.allowDragBetween) { if (dropPos == TreeViewDragging.DropPosition.Above || !property.Find(targetItem.id, (int[]) null)) property = (HierarchyProperty) null; } else if (dropPos == TreeViewDragging.DropPosition.Above || !property.Find(parentItem.id, (int[]) null)) property = (HierarchyProperty) null; InternalEditorUtility.HierarchyDropMode dropMode = InternalEditorUtility.HierarchyDropMode.kHierarchyDragNormal; if (this.allowDragBetween) dropMode = dropPos != TreeViewDragging.DropPosition.Upon ? InternalEditorUtility.HierarchyDropMode.kHierarchyDropBetween : InternalEditorUtility.HierarchyDropMode.kHierarchyDropUpon; if (parentItem != null && parentItem == targetItem && dropPos != TreeViewDragging.DropPosition.Above) dropMode |= InternalEditorUtility.HierarchyDropMode.kHierarchyDropAfterParent; return InternalEditorUtility.HierarchyWindowDrag(property, perform, dropMode); }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { AudioMixerTreeViewNode audioMixerTreeViewNode = targetNode as AudioMixerTreeViewNode; AudioMixerTreeViewNode audioMixerTreeViewNode2 = parentNode as AudioMixerTreeViewNode; List<AudioMixerGroupController> list = new List<UnityEngine.Object>(DragAndDrop.objectReferences).OfType<AudioMixerGroupController>().ToList<AudioMixerGroupController>(); if (audioMixerTreeViewNode2 != null && list.Count > 0) { List<int> list2 = ( from i in list select i.GetInstanceID()).ToList<int>(); bool flag = this.ValidDrag(parentNode, list2) && !AudioMixerController.WillModificationOfTopologyCauseFeedback(this.m_owner.Controller.GetAllAudioGroupsSlow(), list, audioMixerTreeViewNode2.group, null); if (perform && flag) { AudioMixerGroupController group = audioMixerTreeViewNode2.group; this.m_owner.Controller.ReparentSelection(group, audioMixerTreeViewNode.group, list); this.m_owner.ReloadTree(); this.m_TreeView.SetSelection(list2.ToArray(), true); } return (!flag) ? DragAndDropVisualMode.Rejected : DragAndDropVisualMode.Move; } return DragAndDropVisualMode.None; }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { TreeViewTest.TestDragging.FooDragData fooDragData = DragAndDrop.GetGenericData("FooDragging") as TreeViewTest.TestDragging.FooDragData; TreeViewTest.FooTreeViewItem fooTreeViewItem = targetItem as TreeViewTest.FooTreeViewItem; TreeViewTest.FooTreeViewItem fooTreeViewItem2 = parentItem as TreeViewTest.FooTreeViewItem; if (fooTreeViewItem2 != null && fooDragData != null) { bool flag = this.ValidDrag(parentItem, fooDragData.m_DraggedItems); if (perform && flag) { List<TreeViewTest.BackendData.Foo> draggedItems = ( from x in fooDragData.m_DraggedItems where x is TreeViewTest.FooTreeViewItem select ((TreeViewTest.FooTreeViewItem)x).foo).ToList<TreeViewTest.BackendData.Foo>(); this.m_BackendData.ReparentSelection(fooTreeViewItem2.foo, fooTreeViewItem.foo, draggedItems); this.m_TreeView.ReloadData(); } return (!flag) ? DragAndDropVisualMode.None : DragAndDropVisualMode.Move; } return DragAndDropVisualMode.None; }
public abstract DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPosition);
public override DragAndDropVisualMode DoDrag(TreeViewItem parentItem, TreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { FooDragData genericData = DragAndDrop.GetGenericData("FooDragging") as FooDragData; TreeViewTest.FooTreeViewItem item = targetItem as TreeViewTest.FooTreeViewItem; TreeViewTest.FooTreeViewItem item2 = parentItem as TreeViewTest.FooTreeViewItem; if ((item2 == null) || (genericData == null)) { return DragAndDropVisualMode.None; } bool flag = this.ValidDrag(parentItem, genericData.m_DraggedItems); if (perform && flag) { if (<>f__am$cache1 == null) {
private DragAndDropVisualMode DoDragScenes(GameObjectTreeViewItem parentItem, GameObjectTreeViewItem targetItem, bool perform, TreeViewDragging.DropPosition dropPos) { List<Scene> genericData = DragAndDrop.GetGenericData("SceneHeaderList") as List<Scene>; bool flag1 = genericData != null; bool flag2 = false; if (!flag1 && DragAndDrop.objectReferences.Length > 0) { int num = 0; foreach (UnityEngine.Object objectReference in DragAndDrop.objectReferences) { if (objectReference is SceneAsset) ++num; } flag2 = num == DragAndDrop.objectReferences.Length; } if (!flag1 && !flag2) return DragAndDropVisualMode.None; if (perform) { List<Scene> sceneList = (List<Scene>) null; if (flag2) { List<Scene> source = new List<Scene>(); foreach (UnityEngine.Object objectReference in DragAndDrop.objectReferences) { string assetPath = AssetDatabase.GetAssetPath(objectReference); Scene sceneByPath = SceneManager.GetSceneByPath(assetPath); if (SceneHierarchyWindow.IsSceneHeaderInHierarchyWindow(sceneByPath)) { this.m_TreeView.Frame(sceneByPath.handle, true, true); } else { Scene scene = !Event.current.alt ? EditorSceneManager.OpenScene(assetPath, OpenSceneMode.Additive) : EditorSceneManager.OpenScene(assetPath, OpenSceneMode.AdditiveWithoutLoading); if (SceneHierarchyWindow.IsSceneHeaderInHierarchyWindow(scene)) source.Add(scene); } } if (targetItem != null) sceneList = source; if (SceneManager.sceneCount - source.Count == 1) ((TreeViewDataSource) this.m_TreeView.data).SetExpanded(SceneManager.GetSceneAt(0).handle, true); if (source.Count > 0) { Selection.instanceIDs = source.Select<Scene, int>((Func<Scene, int>) (x => x.handle)).ToArray<int>(); this.m_TreeView.Frame(source.Last<Scene>().handle, true, false); } } else sceneList = genericData; if (sceneList != null) { if (targetItem != null) { Scene scene = targetItem.scene; if (SceneHierarchyWindow.IsSceneHeaderInHierarchyWindow(scene)) { if (!targetItem.isSceneHeader || dropPos == TreeViewDragging.DropPosition.Upon) dropPos = TreeViewDragging.DropPosition.Below; if (dropPos == TreeViewDragging.DropPosition.Above) { for (int index = 0; index < sceneList.Count; ++index) EditorSceneManager.MoveSceneBefore(sceneList[index], scene); } else if (dropPos == TreeViewDragging.DropPosition.Below) { for (int index = sceneList.Count - 1; index >= 0; --index) EditorSceneManager.MoveSceneAfter(sceneList[index], scene); } } } else { Scene sceneAt = SceneManager.GetSceneAt(SceneManager.sceneCount - 1); for (int index = sceneList.Count - 1; index >= 0; --index) EditorSceneManager.MoveSceneAfter(sceneList[index], sceneAt); } } } return DragAndDropVisualMode.Move; }