public static void Open(TimelineWindow.TreeNode _node, GEvent e) { Open(); rootNode = _node.root; curEvt = e; Inst.Repaint(); }
private int DrawTreeTimeline(GPEditor.TimelineWindow.TreeNode node, int level) { if (object.Equals(node, null) || string.IsNullOrEmpty(node.name)) { return(level); } treeIndex2++; EditorGUILayout.BeginHorizontal(); GEvent evt = node.evt; if (evt == curEvent) { GUI.contentColor = Color.green; } else { GUI.contentColor = Color.white; } GEventStyle tStyle = evt.mStyle; FrameRange validRange = evt.GetMaxFrameRange(); FrameRange rang = tStyle.range; float sliderStartFrame = rang.Start; float sliderEndFrame = rang.End; EditorGUI.BeginChangeCheck(); float allW = position.width - 150f; float evtW = allW * (float)validRange.Length / evt.root.Length; float startX = allW * (float)validRange.Start / evt.root.Length; GUILayout.Space(startX); if (GUILayout.Button(tStyle.Attr.name, GUILayout.Width(60f))) { SetSelect(node); } GUILayout.Label(validRange.Start.ToString(), GUILayout.Width(30f)); EditorGUILayout.MinMaxSlider(ref sliderStartFrame, ref sliderEndFrame, validRange.Start, validRange.End, GUILayout.Width(evtW)); GUILayout.Label(validRange.End.ToString(), GUILayout.Width(30f)); if (EditorGUI.EndChangeCheck()) { rang.Start = (int)sliderStartFrame; rang.End = (int)sliderEndFrame; tStyle.range = rang; rootNode.isChange = true; evt.OnStyleChange(); SetSelect(node); } EditorGUILayout.EndHorizontal(); EventType eType = Event.current.type; if (node.Length == 0) { return(level); } for (int i = 0; i < node.childs.Count; i++) { DrawTreeTimeline(node.childs[i], level + 1); } return(level); }