public static bool Draw <T>(T node, bool isSelected) where T : Object, InITreeNode <T> { if (noMargain == null) { noMargain = new GUIStyle(); noMargain.margin = new RectOffset(0, 0, 0, 0); } Rect area = EditorGUILayout.BeginHorizontal(); if (isSelected) { GUI.DrawTexture(area, EditorResources.Background); } GUILayout.Space(EditorGUI.indentLevel * 16); bool folded = node.IsFoldedOut; Texture picture; if (folded || node.GetChildren.Count == 0) { picture = EditorResources.Minus; } else { picture = EditorResources.Plus; } GUILayout.Label(picture, noMargain, GUILayout.Height(EditorResources.Minus.height), GUILayout.Width(EditorResources.Minus.width)); Rect foldRect = GUILayoutUtility.GetLastRect(); if (Event.current.ClickedWithin(foldRect)) { folded = !folded; Event.current.Use(); } Texture icon = TreeNodeDrawerHelper.LookUpIcon(node); TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), icon, noMargain); EditorGUILayout.LabelField(""); EditorGUILayout.EndHorizontal(); Rect labelArea = GUILayoutUtility.GetLastRect(); Rect buttonArea = labelArea; if (!node.IsRoot) { buttonArea.x = buttonArea.x + 56 + EditorGUI.indentLevel * 16; buttonArea.width = 20; buttonArea.height = 14; GUI.Label(buttonArea, EditorResources.Up, noMargain); if (Event.current.ClickedWithin(buttonArea)) { NodeWorker.MoveNodeOneUp(node); Event.current.Use(); } buttonArea.y += 15; GUI.Label(buttonArea, EditorResources.Down, noMargain); if (Event.current.ClickedWithin(buttonArea)) { NodeWorker.MoveNodeOneDown(node); Event.current.Use(); } labelArea.x += 20; } labelArea.y += 6; labelArea.x += 65; EditorGUI.LabelField(labelArea, node.GetName); return(folded); }
public static bool EventFoldout(InAudioEventNode node, bool isSelected) { if (noMargain == null) { noMargain = new GUIStyle(); noMargain.margin = new RectOffset(0, 0, 0, 0); } Rect area = EditorGUILayout.BeginHorizontal(); if (isSelected) { GUI.DrawTexture(area, EditorResources.Background); } if (node.Type != EventNodeType.Event) { GUILayout.Space(EditorGUI.indentLevel * 16); } else { GUILayout.Space(EditorGUI.indentLevel * 24); } bool folded = node.IsFoldedOut; if (node.Type != EventNodeType.Event) { Texture picture; if (folded || node.Children.Count == 0) { picture = EditorResources.Minus; } else { picture = EditorResources.Plus; } GUILayout.Label(picture, noMargain, GUILayout.Height(EditorResources.Minus.height), GUILayout.Width(EditorResources.Minus.width)); Rect foldRect = GUILayoutUtility.GetLastRect(); if (Event.current.ClickedWithin(foldRect)) { folded = !folded; Event.current.Use(); } TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), EditorResources.Folder, noMargain); } GUILayout.Space(30); EditorGUILayout.LabelField(""); EditorGUILayout.EndHorizontal(); Rect labelArea = GUILayoutUtility.GetLastRect(); Rect buttonArea = GUILayoutUtility.GetLastRect(); if (!node.IsRoot) { buttonArea.x = buttonArea.x + 56 + EditorGUI.indentLevel * 16; buttonArea.width = 20; buttonArea.height = 14; if (node.Type != EventNodeType.Event) { GUI.Label(buttonArea, EditorResources.Up, noMargain); if (Event.current.ClickedWithin(buttonArea)) { NodeWorker.MoveNodeOneUp(node); Event.current.Use(); } buttonArea.y += 15; GUI.Label(buttonArea, EditorResources.Down, noMargain); if (Event.current.ClickedWithin(buttonArea)) { NodeWorker.MoveNodeOneDown(node); Event.current.Use(); } } else { buttonArea.x -= 10; GUI.Label(buttonArea, EditorResources.Up, noMargain); if (Event.current.ClickedWithin(buttonArea)) { NodeWorker.MoveNodeOneUp(node); Event.current.Use(); } buttonArea.x += 15; GUI.Label(buttonArea, EditorResources.Down, noMargain); if (Event.current.ClickedWithin(buttonArea)) { NodeWorker.MoveNodeOneDown(node); Event.current.Use(); } } labelArea.x += 25; } if (node.Type != EventNodeType.Event)//As Events are smaller { labelArea.y += 6; } labelArea.x += 65; EditorGUI.LabelField(labelArea, node.Name); return(folded); }
public static bool EventFoldout(InAudioEventNode node, bool isSelected, out bool clicked) { clicked = false; if (noMargain == null) { noMargain = new GUIStyle(); noMargain.margin = new RectOffset(0, 0, 0, 0); } Rect fullArea = EditorGUILayout.BeginHorizontal(); Rect area = EditorGUILayout.BeginHorizontal(); if (isSelected) { GUI.DrawTexture(area, EditorResources.Instance.GetBackground()); } if (node._type != EventNodeType.Event) { GUILayout.Space(EditorGUI.indentLevel * 16); } else { GUILayout.Space(EditorGUI.indentLevel * 24); } if (node._type != EventNodeType.Event) { Texture picture; if (node.EditorSettings.IsFoldedOut || node._children.Count == 0) { picture = EditorResources.Instance.Minus; } else { picture = EditorResources.Instance.Plus; } if (GUILayout.Button(picture, GUIStyle.none, GUILayout.Height(EditorResources.Instance.Minus.height), GUILayout.Width(EditorResources.Instance.Minus.width))) { node.EditorSettings.IsFoldedOut = !node.EditorSettings.IsFoldedOut; Event.current.UseEvent(); } TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), EditorResources.Instance.Folder, noMargain); } GUILayout.Space(30); EditorGUILayout.LabelField(""); EditorGUILayout.EndHorizontal(); Rect labelArea = GUILayoutUtility.GetLastRect(); if (node._type != EventNodeType.Event)//As Events are smaller { labelArea.y += 6; } if (node._type != EventNodeType.Event) { labelArea.x += 60; } else { labelArea.x += 30; } EditorGUI.LabelField(labelArea, node.Name); EditorGUILayout.EndHorizontal(); if (Event.current.ClickedWithin(fullArea)) { clicked = true; } return(node.EditorSettings.IsFoldedOut); }
public static bool Draw(InMusicNode node, bool isSelected, out bool clicked) { var group = node as InMusicGroup; clicked = false; Rect fullArea = EditorGUILayout.BeginHorizontal(); Rect area = EditorGUILayout.BeginHorizontal(); if (isSelected) { GUI.DrawTexture(area, EditorResources.Instance.GetBackground()); } GUILayout.Space(EditorGUI.indentLevel * 16); DrawVolume(fullArea, node); bool folded = node.IsFoldedOut; Texture picture; if (folded || node._getChildren.Count == 0) { picture = EditorResources.Instance.Minus; } else { picture = EditorResources.Instance.Plus; } if (GUILayout.Button(picture, GUIStyle.none, GUILayout.Height(EditorResources.Instance.Minus.height), GUILayout.Width(EditorResources.Instance.Minus.width))) { node.IsFoldedOut = !node.IsFoldedOut; Event.current.UseEvent(); } Texture icon = LookUpIcon(node); TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), icon, GUIStyle.none); EditorGUILayout.LabelField(""); EditorGUILayout.EndHorizontal(); Rect labelArea = GUILayoutUtility.GetLastRect(); labelArea.y += 8; labelArea.x += 60; EditorGUI.LabelField(labelArea, node.GetName); if (group != null) { if (!Application.isPlaying) { GUI.enabled = false; } DrawPlayStop(fullArea, group); GUI.enabled = true; } DrawMuteSolo(fullArea, node); EditorGUILayout.EndHorizontal(); if (Event.current.ClickedWithin(fullArea)) { clicked = true; } return(node.IsFoldedOut); }
public static bool Draw <T>(T node, bool isSelected, out bool clicked) where T : Object, InITreeNode <T> { clicked = false; Rect fullArea = EditorGUILayout.BeginHorizontal(); Rect area = EditorGUILayout.BeginHorizontal(); if (isSelected) { GUI.DrawTexture(area, EditorResources.Instance.GetBackground()); } GUILayout.Space(EditorGUI.indentLevel * 16); bool folded = node.IsFoldedOut; Texture picture; if (EditorResources.Instance != null) { if (folded || node._getChildren.Count == 0) { picture = EditorResources.Instance.Minus; } else { picture = EditorResources.Instance.Plus; } } else { picture = null; } if (GUILayout.Button(picture, GUIStyle.none, GUILayout.Height(EditorResources.Instance.Minus.height), GUILayout.Width(EditorResources.Instance.Minus.width))) { node.IsFoldedOut = !node.IsFoldedOut; Event.current.UseEvent(); } Texture icon = TreeNodeDrawerHelper.LookUpIcon(node); TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), icon, GUIStyle.none); EditorGUILayout.LabelField(""); EditorGUILayout.EndHorizontal(); Rect labelArea = GUILayoutUtility.GetLastRect(); var audioNode = node as InAudioNode; if (audioNode != null) { TreeNodeDrawerHelper.DrawVolume(fullArea, audioNode._nodeData as InFolderData); } labelArea.y += 6; labelArea.x += 60; EditorGUI.LabelField(labelArea, node.GetName); EditorGUILayout.EndHorizontal(); if (Event.current.ClickedWithin(fullArea)) { clicked = true; } return(node.IsFoldedOut); }