public static void Draw(InAudioNode node) { //node.ScrollPosition = GUILayout.BeginScrollView(node.ScrollPosition); EditorGUILayout.BeginVertical(); var trackData = (node._nodeData as InTrackData); NodeTypeDataDrawer.DrawName(node); //UndoHelper.GUIUndo(trackData, "Track length", ref trackData.TrackLength, () => EditorGUILayout.FloatField("Track length", trackData.TrackLength)); selectedArea = GUILayout.SelectionGrid(selectedArea, new [] { "Track", "Standard Settings" }, 2); EditorGUILayout.HelpBox("Hold control to drag a child node onto a track.", MessageType.None); if (selectedArea == 1) { NodeTypeDataDrawer.Draw(node); } else { EditorGUILayout.BeginVertical(); ScrollArea = EditorGUILayout.BeginScrollView(ScrollArea, false, false); EditorGUILayout.BeginVertical(); foreach (var layer in trackData.Layers) { DrawItem(node, layer); } if (GUILayout.Button("Add Layer", GUILayout.Width(150))) { InUndoHelper.RecordObjectFull(trackData, "Add layer"); trackData.Layers.Add(new InLayerData()); } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); if (toRemove != null) { if (trackData.Layers.Remove(toRemove)) { GUI.FocusControl("none"); InUndoHelper.RegisterUndo(trackData, "Removed Layer"); } } //GUILayout.EndScrollView(); }
//private static InAudioNode activeNode; public static void Draw(InAudioNode node) { EditorGUILayout.BeginVertical(); var trackData = (node.NodeData as InTrackData); NodeTypeDataDrawer.DrawName(node); UndoHelper.GUIUndo(trackData, "Track length", ref trackData.TrackLength, () => EditorGUILayout.FloatField("Track length", trackData.TrackLength)); UndoHelper.GUIUndo(trackData, "Zoom", ref trackData.Zoom, () => EditorGUILayout.FloatField("Zoom", trackData.Zoom)); selectedArea = GUILayout.SelectionGrid(selectedArea, new [] { "Track", "Normal" }, 2); if (selectedArea == 1) { NodeTypeDataDrawer.Draw(node); } else { EditorGUILayout.BeginVertical(); ScrollArea = EditorGUILayout.BeginScrollView(ScrollArea, false, true); foreach (var layer in trackData.Layers) { DrawItem(node, layer); } if (GUILayout.Button("Add Layer", GUILayout.Width(150))) { UndoHelper.RecordObjectFull(trackData, "Add layer"); trackData.Layers.Add(new InLayerData()); } if (GUILayout.Button("Delete Last Layer", GUILayout.Width(150))) { UndoHelper.RecordObjectFull(trackData, "Remove layer"); { if (trackData.Layers.Count > 0) { trackData.Layers.RemoveAt(trackData.Layers.Count - 1); } } } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); }