public void OnTreeViewContextClick(int index) { TreeViewItem node = this.m_AudioGroupTree.FindNode(index); if (node == null) { return; } AudioMixerTreeViewNode mixerTreeViewNode = node as AudioMixerTreeViewNode; if (mixerTreeViewNode == null || !((UnityEngine.Object)mixerTreeViewNode.group != (UnityEngine.Object)null)) { return; } GenericMenu genericMenu = new GenericMenu(); if (!EditorApplication.isPlaying) { genericMenu.AddItem(new GUIContent("Add child group"), false, new GenericMenu.MenuFunction2(this.AddChildGroupPopupCallback), (object)new AudioMixerGroupPopupContext(this.m_Controller, mixerTreeViewNode.group)); if ((UnityEngine.Object)mixerTreeViewNode.group != (UnityEngine.Object) this.m_Controller.masterGroup) { genericMenu.AddItem(new GUIContent("Add sibling group"), false, new GenericMenu.MenuFunction2(this.AddSiblingGroupPopupCallback), (object)new AudioMixerGroupPopupContext(this.m_Controller, mixerTreeViewNode.group)); genericMenu.AddSeparator(string.Empty); genericMenu.AddItem(new GUIContent("Rename"), false, new GenericMenu.MenuFunction2(this.RenameGroupCallback), (object)node); AudioMixerGroupController[] array = this.GetGroupSelectionWithoutMasterGroup().ToArray(); genericMenu.AddItem(new GUIContent(array.Length <= 1 ? "Duplicate group (and children)" : "Duplicate groups (and children)"), false, new GenericMenu.MenuFunction2(this.DuplicateGroupPopupCallback), (object)this); genericMenu.AddItem(new GUIContent(array.Length <= 1 ? "Remove group (and children)" : "Remove groups (and children)"), false, new GenericMenu.MenuFunction2(this.DeleteGroupsPopupCallback), (object)this); } } else { genericMenu.AddDisabledItem(new GUIContent("Modifying group topology in play mode is not allowed")); } genericMenu.ShowAsContext(); }
private void OnNodeToggled(AudioMixerTreeViewNode node, bool nodeWasEnabled) { List <AudioMixerGroupController> mixerGroupControllerList = this.GetAudioMixerGroupsFromNodeIDs(this.m_AudioGroupTree.GetSelection()); if (!mixerGroupControllerList.Contains(node.group)) { mixerGroupControllerList = new List <AudioMixerGroupController>() { node.group } } ; List <GUID> guidList = new List <GUID>(); using (List <AudioMixerGroupController> .Enumerator enumerator = this.m_Controller.GetAllAudioGroupsSlow().GetEnumerator()) { while (enumerator.MoveNext()) { AudioMixerGroupController current = enumerator.Current; bool flag1 = this.m_Controller.CurrentViewContainsGroup(current.groupID); bool flag2 = mixerGroupControllerList.Contains(current); bool flag3 = flag1 && !flag2; if (!flag1 && flag2) { flag3 = nodeWasEnabled; } if (flag3) { guidList.Add(current.groupID); } } } this.m_Controller.SetCurrentViewVisibility(guidList.ToArray()); }
public void OnTreeViewContextClick(int index) { TreeViewItem treeViewItem = this.m_AudioGroupTree.FindItem(index); if (treeViewItem != null) { AudioMixerTreeViewNode audioMixerTreeViewNode = treeViewItem as AudioMixerTreeViewNode; if (audioMixerTreeViewNode != null && audioMixerTreeViewNode.group != null) { GenericMenu genericMenu = new GenericMenu(); if (!EditorApplication.isPlaying) { genericMenu.AddItem(EditorGUIUtility.TrTextContent("Add child group", null, null), false, new GenericMenu.MenuFunction2(this.AddChildGroupPopupCallback), new AudioMixerGroupPopupContext(this.m_Controller, audioMixerTreeViewNode.group)); if (audioMixerTreeViewNode.group != this.m_Controller.masterGroup) { genericMenu.AddItem(EditorGUIUtility.TrTextContent("Add sibling group", null, null), false, new GenericMenu.MenuFunction2(this.AddSiblingGroupPopupCallback), new AudioMixerGroupPopupContext(this.m_Controller, audioMixerTreeViewNode.group)); genericMenu.AddSeparator(""); genericMenu.AddItem(EditorGUIUtility.TrTextContent("Rename", null, null), false, new GenericMenu.MenuFunction2(this.RenameGroupCallback), treeViewItem); AudioMixerGroupController[] array = this.GetGroupSelectionWithoutMasterGroup().ToArray(); genericMenu.AddItem(new GUIContent((array.Length <= 1) ? "Duplicate group (and children)" : "Duplicate groups (and children)"), false, new GenericMenu.MenuFunction2(this.DuplicateGroupPopupCallback), this); genericMenu.AddItem(new GUIContent((array.Length <= 1) ? "Remove group (and children)" : "Remove groups (and children)"), false, new GenericMenu.MenuFunction2(this.DeleteGroupsPopupCallback), this); } } else { genericMenu.AddDisabledItem(EditorGUIUtility.TrTextContent("Modifying group topology in play mode is not allowed", null, null)); } genericMenu.ShowAsContext(); } } }
protected override void RenameEnded() { bool userAcceptedRename = base.GetRenameOverlay().userAcceptedRename; if (userAcceptedRename) { string name = (!string.IsNullOrEmpty(base.GetRenameOverlay().name)) ? base.GetRenameOverlay().name : base.GetRenameOverlay().originalName; int userData = base.GetRenameOverlay().userData; AudioMixerTreeViewNode audioMixerTreeViewNode = this.m_TreeView.FindNode(userData) as AudioMixerTreeViewNode; if (audioMixerTreeViewNode != null) { ObjectNames.SetNameSmartWithInstanceID(userData, name); AudioMixerEffectController[] effects = audioMixerTreeViewNode.group.effects; for (int i = 0; i < effects.Length; i++) { AudioMixerEffectController audioMixerEffectController = effects[i]; audioMixerEffectController.ClearCachedDisplayName(); } this.m_TreeView.ReloadData(); if (this.m_Controller != null) { this.m_Controller.OnSubAssetChanged(); } } } }
public void OnTreeViewContextClick(int index) { var node = m_AudioGroupTree.FindItem(index); if (node != null) { AudioMixerTreeViewNode mixerNode = node as AudioMixerTreeViewNode; if (mixerNode != null && mixerNode.group != null) { GenericMenu pm = new GenericMenu(); if (!EditorApplication.isPlaying) { pm.AddItem(EditorGUIUtility.TrTextContent("Add child group"), false, AddChildGroupPopupCallback, new AudioMixerGroupPopupContext(m_Controller, mixerNode.group)); if (mixerNode.group != m_Controller.masterGroup) { pm.AddItem(EditorGUIUtility.TrTextContent("Add sibling group"), false, AddSiblingGroupPopupCallback, new AudioMixerGroupPopupContext(m_Controller, mixerNode.group)); pm.AddSeparator(""); pm.AddItem(EditorGUIUtility.TrTextContent("Rename"), false, RenameGroupCallback, node); // Mastergroup cannot be deleted nor duplicated var selection = GetGroupSelectionWithoutMasterGroup().ToArray(); pm.AddItem(new GUIContent((selection.Length > 1) ? "Duplicate groups (and children)" : "Duplicate group (and children)"), false, DuplicateGroupPopupCallback, this); pm.AddItem(new GUIContent((selection.Length > 1) ? "Remove groups (and children)" : "Remove group (and children)"), false, DeleteGroupsPopupCallback, this); } } else { pm.AddDisabledItem(EditorGUIUtility.TrTextContent("Modifying group topology in play mode is not allowed")); } pm.ShowAsContext(); } } }
private void OnNodeToggled(AudioMixerTreeViewNode node, bool nodeWasEnabled) { List <AudioMixerGroupController> list = this.GetAudioMixerGroupsFromNodeIDs(this.m_AudioGroupTree.GetSelection()); if (!list.Contains(node.group)) { list = new List <AudioMixerGroupController> { node.group }; } List <GUID> list2 = new List <GUID>(); List <AudioMixerGroupController> allAudioGroupsSlow = this.m_Controller.GetAllAudioGroupsSlow(); foreach (AudioMixerGroupController current in allAudioGroupsSlow) { bool flag = this.m_Controller.CurrentViewContainsGroup(current.groupID); bool flag2 = list.Contains(current); bool flag3 = flag && !flag2; if (!flag && flag2) { flag3 = nodeWasEnabled; } if (flag3) { list2.Add(current.groupID); } } this.m_Controller.SetCurrentViewVisibility(list2.ToArray()); }
private void OpenGroupContextMenu(AudioMixerTreeViewNode audioNode, bool visible) { GenericMenu genericMenu = new GenericMenu(); if (this.NodeWasToggled != null) { genericMenu.AddItem(new GUIContent((!visible) ? "Show Group" : "Hide group"), false, delegate { this.NodeWasToggled(audioNode, !visible); }); } genericMenu.AddSeparator(string.Empty); AudioMixerGroupController[] groups; if (this.m_Controller.CachedSelection.Contains(audioNode.group)) { groups = this.m_Controller.CachedSelection.ToArray(); } else { groups = new AudioMixerGroupController[] { audioNode.group }; } AudioMixerColorCodes.AddColorItemsToGenericMenu(genericMenu, groups); genericMenu.ShowAsContext(); }
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); }
protected override void RenameEnded() { if (!this.GetRenameOverlay().userAcceptedRename) { return; } string name = !string.IsNullOrEmpty(this.GetRenameOverlay().name) ? this.GetRenameOverlay().name : this.GetRenameOverlay().originalName; int userData = this.GetRenameOverlay().userData; AudioMixerTreeViewNode node = this.m_TreeView.FindNode(userData) as AudioMixerTreeViewNode; if (node == null) { return; } ObjectNames.SetNameSmartWithInstanceID(userData, name); foreach (AudioMixerEffectController effect in node.group.effects) { effect.ClearCachedDisplayName(); } this.m_TreeView.ReloadData(); if (!((UnityEngine.Object) this.m_Controller != (UnityEngine.Object)null)) { return; } this.m_Controller.OnSubAssetChanged(); }
public override DragAndDropVisualMode DoDrag(TreeViewItem parentNode, TreeViewItem targetNode, bool perform, TreeViewDragging.DropPosition dragPos) { AudioMixerTreeViewNode node = parentNode as AudioMixerTreeViewNode; List <AudioMixerGroupController> groupsToBeMoved = new List <Object>(DragAndDrop.objectReferences).OfType <AudioMixerGroupController>().ToList <AudioMixerGroupController>(); if ((node != null) && (groupsToBeMoved.Count > 0)) { if (< > f__am$cache0 == null) {
public override bool IsRenamingItemAllowed(TreeViewItem node) { AudioMixerTreeViewNode node2 = node as AudioMixerTreeViewNode; if (node2.group == this.m_Controller.masterGroup) { return(false); } return(true); }
private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem parent, int depth) { List<TreeViewItem> treeViewItemList = new List<TreeViewItem>(); for (int index = 0; index < group.children.Length; ++index) { AudioMixerTreeViewNode mixerTreeViewNode = new AudioMixerTreeViewNode(AudioGroupDataSource.GetUniqueNodeID(group.children[index]), depth, parent, group.children[index].name, group.children[index]); mixerTreeViewNode.parent = parent; treeViewItemList.Add((TreeViewItem) mixerTreeViewNode); this.AddNodesRecursively(group.children[index], (TreeViewItem) mixerTreeViewNode, depth + 1); } parent.children = treeViewItemList; }
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) {
void OnNodeToggled(AudioMixerTreeViewNode node, bool nodeWasEnabled) { Undo.RecordObject(m_Controller, "Changed Group Visibility"); var treeSelection = GetAudioMixerGroupsFromNodeIDs(m_AudioGroupTree.GetSelection()); if (!treeSelection.Contains(node.group)) { treeSelection = new List <AudioMixerGroupController> { node.group } } ; var newSelection = new List <GUID>(); var allGroups = m_Controller.GetAllAudioGroupsSlow(); foreach (var g in allGroups) { bool inOldSelection = m_Controller.CurrentViewContainsGroup(g.groupID); bool inNewSelection = treeSelection.Contains(g); bool add = inOldSelection && !inNewSelection; if (!inOldSelection && inNewSelection) { add = nodeWasEnabled; } if (add) { newSelection.Add(g.groupID); } } m_Controller.SetCurrentViewVisibility(newSelection.ToArray()); } List <AudioMixerGroupController> GetAudioMixerGroupsFromNodeIDs(int[] instanceIDs) { List <AudioMixerGroupController> newSelectedGroups = new List <AudioMixerGroupController>(); foreach (var s in instanceIDs) { var node = m_AudioGroupTree.FindItem(s); if (node != null) { AudioMixerTreeViewNode mixerNode = node as AudioMixerTreeViewNode; if (mixerNode != null) { newSelectedGroups.Add(mixerNode.group); } } } return(newSelectedGroups); }
private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem parent, int depth) { List<TreeViewItem> list = new List<TreeViewItem>(); for (int i = 0; i < group.children.Length; i++) { AudioMixerTreeViewNode item = new AudioMixerTreeViewNode(GetUniqueNodeID(group.children[i]), depth, parent, group.children[i].name, group.children[i]) { parent = parent }; list.Add(item); this.AddNodesRecursively(group.children[i], item, depth + 1); } parent.children = list; }
private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem parent, int depth) { List <TreeViewItem> treeViewItemList = new List <TreeViewItem>(); for (int index = 0; index < group.children.Length; ++index) { AudioMixerTreeViewNode mixerTreeViewNode = new AudioMixerTreeViewNode(AudioGroupDataSource.GetUniqueNodeID(group.children[index]), depth, parent, group.children[index].name, group.children[index]); mixerTreeViewNode.parent = parent; treeViewItemList.Add((TreeViewItem)mixerTreeViewNode); this.AddNodesRecursively(group.children[index], (TreeViewItem)mixerTreeViewNode, depth + 1); } parent.children = treeViewItemList; }
private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem parent, int depth) { List<TreeViewItem> list = new List<TreeViewItem>(); for (int i = 0; i < group.children.Length; i++) { int uniqueNodeID = AudioGroupDataSource.GetUniqueNodeID(group.children[i]); AudioMixerTreeViewNode audioMixerTreeViewNode = new AudioMixerTreeViewNode(uniqueNodeID, depth, parent, group.children[i].name, group.children[i]); audioMixerTreeViewNode.parent = parent; list.Add(audioMixerTreeViewNode); this.AddNodesRecursively(group.children[i], audioMixerTreeViewNode, depth + 1); } parent.children = list; }
public void AddSiblingGroupPopupCallback(object obj) { AudioMixerGroupPopupContext context = (AudioMixerGroupPopupContext)obj; if ((context.groups != null) && (context.groups.Length > 0)) { AudioMixerTreeViewNode node = this.m_AudioGroupTree.FindNode(context.groups[0].GetInstanceID()) as AudioMixerTreeViewNode; if (node != null) { AudioMixerTreeViewNode parent = node.parent as AudioMixerTreeViewNode; this.AddAudioMixerGroup(parent.group); } } }
public void AddSiblingGroupPopupCallback(object obj) { AudioMixerGroupPopupContext audioMixerGroupPopupContext = (AudioMixerGroupPopupContext)obj; if (audioMixerGroupPopupContext.groups != null && audioMixerGroupPopupContext.groups.Length > 0) { AudioMixerTreeViewNode audioMixerTreeViewNode = this.m_AudioGroupTree.FindItem(audioMixerGroupPopupContext.groups[0].GetInstanceID()) as AudioMixerTreeViewNode; if (audioMixerTreeViewNode != null) { AudioMixerTreeViewNode audioMixerTreeViewNode2 = audioMixerTreeViewNode.parent as AudioMixerTreeViewNode; this.AddAudioMixerGroup(audioMixerTreeViewNode2.group); } } }
private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem parent, int depth) { var children = new List <TreeViewItem>(); for (int i = 0; i < group.children.Length; ++i) { int uniqueNodeID = GetUniqueNodeID(group.children[i]); var node = new AudioMixerTreeViewNode(uniqueNodeID, depth, parent, group.children[i].name, group.children[i]); node.parent = parent; children.Add(node); AddNodesRecursively(group.children[i], node, depth + 1); } parent.children = children; }
private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem parent, int depth) { List <TreeViewItem> list = new List <TreeViewItem>(); for (int i = 0; i < group.children.Length; i++) { int uniqueNodeID = AudioGroupDataSource.GetUniqueNodeID(group.children[i]); AudioMixerTreeViewNode audioMixerTreeViewNode = new AudioMixerTreeViewNode(uniqueNodeID, depth, parent, group.children[i].name, group.children[i]); audioMixerTreeViewNode.parent = parent; list.Add(audioMixerTreeViewNode); this.AddNodesRecursively(group.children[i], audioMixerTreeViewNode, depth + 1); } parent.children = list; }
private void OpenGroupContextMenu(AudioMixerTreeViewNode audioNode, bool visible) { GenericMenu genericMenu = new GenericMenu(); if (this.NodeWasToggled != null) { genericMenu.AddItem(new GUIContent((!visible) ? "Show Group" : "Hide group"), false, delegate { this.NodeWasToggled(audioNode, !visible); }); } genericMenu.AddSeparator(string.Empty); AudioMixerColorCodes.AddColorItemsToGenericMenu(genericMenu, audioNode.group); genericMenu.ShowAsContext(); }
private void AddNodesRecursively(AudioMixerGroupController group, TreeViewItem parent, int depth) { List <TreeViewItem> list = new List <TreeViewItem>(); for (int i = 0; i < group.children.Length; i++) { AudioMixerTreeViewNode item = new AudioMixerTreeViewNode(GetUniqueNodeID(group.children[i]), depth, parent, group.children[i].name, group.children[i]) { parent = parent }; list.Add(item); this.AddNodesRecursively(group.children[i], item, depth + 1); } parent.children = list; }
public void AddSiblingGroupPopupCallback(object obj) { AudioMixerGroupPopupContext groupPopupContext = (AudioMixerGroupPopupContext)obj; if (groupPopupContext.groups == null || groupPopupContext.groups.Length <= 0) { return; } AudioMixerTreeViewNode node = this.m_AudioGroupTree.FindNode(groupPopupContext.groups[0].GetInstanceID()) as AudioMixerTreeViewNode; if (node == null) { return; } this.AddAudioMixerGroup((node.parent as AudioMixerTreeViewNode).group); }
private List <AudioMixerGroupController> GetAudioMixerGroupsFromNodeIDs(int[] instanceIDs) { List <AudioMixerGroupController> mixerGroupControllerList = new List <AudioMixerGroupController>(); foreach (int instanceId in instanceIDs) { TreeViewItem node = this.m_AudioGroupTree.FindNode(instanceId); if (node != null) { AudioMixerTreeViewNode mixerTreeViewNode = node as AudioMixerTreeViewNode; if (mixerTreeViewNode != null) { mixerGroupControllerList.Add(mixerTreeViewNode.group); } } } return(mixerGroupControllerList); }
private void HandleKeyboardEvents(int treeViewKeyboardControlID) { if (GUIUtility.keyboardControl == treeViewKeyboardControlID) { Event current = Event.current; if (current.keyCode == KeyCode.Space && current.type == EventType.KeyDown) { int[] selection = this.m_AudioGroupTree.GetSelection(); if (selection.Length > 0) { AudioMixerTreeViewNode audioMixerTreeViewNode = this.m_AudioGroupTree.FindItem(selection[0]) as AudioMixerTreeViewNode; bool flag = this.m_Controller.CurrentViewContainsGroup(audioMixerTreeViewNode.group.groupID); this.OnNodeToggled(audioMixerTreeViewNode, !flag); current.Use(); } } } }
private List <AudioMixerGroupController> GetAudioMixerGroupsFromNodeIDs(int[] instanceIDs) { List <AudioMixerGroupController> list = new List <AudioMixerGroupController>(); for (int i = 0; i < instanceIDs.Length; i++) { int id = instanceIDs[i]; TreeViewItem treeViewItem = this.m_AudioGroupTree.FindItem(id); if (treeViewItem != null) { AudioMixerTreeViewNode audioMixerTreeViewNode = treeViewItem as AudioMixerTreeViewNode; if (audioMixerTreeViewNode != null) { list.Add(audioMixerTreeViewNode.group); } } } return(list); }
public override void OnRowGUI(Rect rowRect, TreeViewItem node, int row, bool selected, bool focused) { Event current = Event.current; this.DoNodeGUI(rowRect, row, node, selected, focused, false); if ((UnityEngine.Object) this.m_Controller == (UnityEngine.Object)null) { return; } AudioMixerTreeViewNode audioNode = node as AudioMixerTreeViewNode; if (audioNode == null) { return; } bool visible = this.m_Controller.CurrentViewContainsGroup(audioNode.group.groupID); float num = 3f; Rect position = new Rect(rowRect.x + num, rowRect.y, 16f, 16f); Rect rect1 = new Rect(position.x + 1f, position.y + 1f, position.width - 2f, position.height - 2f); int userColorIndex = audioNode.group.userColorIndex; if (userColorIndex > 0) { EditorGUI.DrawRect(new Rect(rowRect.x, rect1.y, 2f, rect1.height), AudioMixerColorCodes.GetColor(userColorIndex)); } EditorGUI.DrawRect(rect1, new Color(0.5f, 0.5f, 0.5f, 0.2f)); if (visible) { GUI.DrawTexture(position, (Texture)this.k_VisibleON); } Rect rect2 = new Rect(2f, rowRect.y, rowRect.height, rowRect.height); if (current.type == EventType.MouseUp && current.button == 0 && (rect2.Contains(current.mousePosition) && this.NodeWasToggled != null)) { this.NodeWasToggled(audioNode, !visible); } if (current.type != EventType.ContextClick || !position.Contains(current.mousePosition)) { return; } this.OpenGroupContextMenu(audioNode, visible); current.Use(); }
public override Rect OnRowGUI(TreeViewItem node, int row, float rowWidth, bool selected, bool focused) { Event current = Event.current; Rect rect = new Rect(0f, (float)row * this.k_LineHeight + this.k_TopRowMargin, rowWidth, this.k_LineHeight); this.DoNodeGUI(rect, node, selected, focused, false); if (this.m_Controller == null) { return(rect); } AudioMixerTreeViewNode audioMixerTreeViewNode = node as AudioMixerTreeViewNode; if (audioMixerTreeViewNode != null) { bool flag = this.m_Controller.CurrentViewContainsGroup(audioMixerTreeViewNode.group.groupID); float num = 3f; Rect position = new Rect(rect.x + num, rect.y, 16f, 16f); Rect rect2 = new Rect(position.x + 1f, position.y + 1f, position.width - 2f, position.height - 2f); int userColorIndex = audioMixerTreeViewNode.group.userColorIndex; if (userColorIndex > 0) { EditorGUI.DrawRect(new Rect(rect.x, rect2.y, 2f, rect2.height), AudioMixerColorCodes.GetColor(userColorIndex)); } EditorGUI.DrawRect(rect2, new Color(0.5f, 0.5f, 0.5f, 0.2f)); if (flag) { GUI.DrawTexture(position, this.k_VisibleON); } Rect rect3 = new Rect(2f, rect.y, rect.height, rect.height); if (current.type == EventType.MouseDown && current.button == 0 && rect3.Contains(current.mousePosition) && this.NodeWasToggled != null) { this.NodeWasToggled(audioMixerTreeViewNode, !flag); } if (current.type == EventType.ContextClick && position.Contains(current.mousePosition)) { this.OpenGroupContextMenu(audioMixerTreeViewNode, flag); current.Use(); } } return(rect); }
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); }
void HandleKeyboardEvents(int treeViewKeyboardControlID) { if (GUIUtility.keyboardControl != treeViewKeyboardControlID) { return; } Event evt = Event.current; if (evt.keyCode == KeyCode.Space && evt.type == EventType.KeyDown) { int[] selection = m_AudioGroupTree.GetSelection(); if (selection.Length > 0) { AudioMixerTreeViewNode node = m_AudioGroupTree.FindItem(selection[0]) as AudioMixerTreeViewNode; bool shown = m_Controller.CurrentViewContainsGroup(node.group.groupID); OnNodeToggled(node, !shown); evt.Use(); } } }
public override void FetchData() { if (m_Controller == null) { m_RootItem = null; return; } if (m_Controller.masterGroup == null) { Debug.LogError("The Master group is missing !!!"); m_RootItem = null; return; } int uniqueNodeID = GetUniqueNodeID(m_Controller.masterGroup); m_RootItem = new AudioMixerTreeViewNode(uniqueNodeID, 0, null, m_Controller.masterGroup.name, m_Controller.masterGroup); AddNodesRecursively(m_Controller.masterGroup, m_RootItem, 1); m_NeedRefreshRows = true; }
public override Rect OnRowGUI(TreeViewItem node, int row, float rowWidth, bool selected, bool focused) { Event current = Event.current; Rect rect = new Rect(0f, (row * base.k_LineHeight) + base.k_TopRowMargin, rowWidth, base.k_LineHeight); this.DoNodeGUI(rect, node, selected, focused, false); if (this.m_Controller != null) { AudioMixerTreeViewNode node2 = node as AudioMixerTreeViewNode; if (node2 == null) { return(rect); } bool visible = this.m_Controller.CurrentViewContainsGroup(node2.group.groupID); float num2 = 3f; Rect position = new Rect(rect.x + num2, rect.y, 16f, 16f); Rect rect3 = new Rect(position.x + 1f, position.y + 1f, position.width - 2f, position.height - 2f); int userColorIndex = node2.group.userColorIndex; if (userColorIndex > 0) { EditorGUI.DrawRect(new Rect(rect.x, rect3.y, 2f, rect3.height), AudioMixerColorCodes.GetColor(userColorIndex)); } EditorGUI.DrawRect(rect3, new Color(0.5f, 0.5f, 0.5f, 0.2f)); if (visible) { GUI.DrawTexture(position, this.k_VisibleON); } Rect rect4 = new Rect(2f, rect.y, rect.height, rect.height); if (((current.type == EventType.MouseUp) && (current.button == 0)) && (rect4.Contains(current.mousePosition) && (this.NodeWasToggled != null))) { this.NodeWasToggled(node2, !visible); } if ((current.type == EventType.ContextClick) && position.Contains(current.mousePosition)) { this.OpenGroupContextMenu(node2, visible); current.Use(); } } return(rect); }
private void OpenGroupContextMenu(AudioMixerTreeViewNode audioNode, bool visible) { // ISSUE: object of a compiler-generated type is created // ISSUE: variable of a compiler-generated type AudioGroupTreeViewGUI.\u003COpenGroupContextMenu\u003Ec__AnonStorey64 menuCAnonStorey64 = new AudioGroupTreeViewGUI.\u003COpenGroupContextMenu\u003Ec__AnonStorey64(); // ISSUE: reference to a compiler-generated field menuCAnonStorey64.audioNode = audioNode; // ISSUE: reference to a compiler-generated field menuCAnonStorey64.visible = visible; // ISSUE: reference to a compiler-generated field menuCAnonStorey64.\u003C\u003Ef__this = this; GenericMenu menu = new GenericMenu(); if (this.NodeWasToggled != null) { // ISSUE: reference to a compiler-generated field // ISSUE: reference to a compiler-generated method menu.AddItem(new GUIContent(!menuCAnonStorey64.visible ? "Show Group" : "Hide group"), false, new GenericMenu.MenuFunction(menuCAnonStorey64.\u003C\u003Em__B2)); } menu.AddSeparator(string.Empty); AudioMixerGroupController[] groups; // ISSUE: reference to a compiler-generated field if (this.m_Controller.CachedSelection.Contains(menuCAnonStorey64.audioNode.group)) { groups = this.m_Controller.CachedSelection.ToArray(); } else { // ISSUE: reference to a compiler-generated field groups = new AudioMixerGroupController[1] { menuCAnonStorey64.audioNode.group }; } AudioMixerColorCodes.AddColorItemsToGenericMenu(menu, groups); menu.ShowAsContext(); }
private void OnNodeToggled(AudioMixerTreeViewNode node, bool nodeWasEnabled) { List<AudioMixerGroupController> list = this.GetAudioMixerGroupsFromNodeIDs(this.m_AudioGroupTree.GetSelection()); if (!list.Contains(node.group)) { list = new List<AudioMixerGroupController> { node.group }; } List<GUID> list2 = new List<GUID>(); List<AudioMixerGroupController> allAudioGroupsSlow = this.m_Controller.GetAllAudioGroupsSlow(); foreach (AudioMixerGroupController current in allAudioGroupsSlow) { bool flag = this.m_Controller.CurrentViewContainsGroup(current.groupID); bool flag2 = list.Contains(current); bool flag3 = flag && !flag2; if (!flag && flag2) { flag3 = nodeWasEnabled; } if (flag3) { list2.Add(current.groupID); } } this.m_Controller.SetCurrentViewVisibility(list2.ToArray()); }
private void OnNodeToggled(AudioMixerTreeViewNode node, bool nodeWasEnabled) { List<AudioMixerGroupController> mixerGroupControllerList = this.GetAudioMixerGroupsFromNodeIDs(this.m_AudioGroupTree.GetSelection()); if (!mixerGroupControllerList.Contains(node.group)) mixerGroupControllerList = new List<AudioMixerGroupController>() { node.group }; List<GUID> guidList = new List<GUID>(); using (List<AudioMixerGroupController>.Enumerator enumerator = this.m_Controller.GetAllAudioGroupsSlow().GetEnumerator()) { while (enumerator.MoveNext()) { AudioMixerGroupController current = enumerator.Current; bool flag1 = this.m_Controller.CurrentViewContainsGroup(current.groupID); bool flag2 = mixerGroupControllerList.Contains(current); bool flag3 = flag1 && !flag2; if (!flag1 && flag2) flag3 = nodeWasEnabled; if (flag3) guidList.Add(current.groupID); } } this.m_Controller.SetCurrentViewVisibility(guidList.ToArray()); }