public void OnAnimEditorGUI(EditorWindow parent, Rect position) { m_DopeSheet.m_Owner = parent; m_OwnerWindow = parent; m_Position = position; if (!m_Initialized) { Initialize(); } m_State.OnGUI(); if (m_State.disabled && controlInterface.recording) { m_State.StopRecording(); } SynchronizeLayout(); using (new EditorGUI.DisabledScope(m_State.disabled || m_State.animatorIsOptimized)) { OverlayEventOnGUI(); GUILayout.BeginHorizontal(); SplitterGUILayout.BeginHorizontalSplit(m_HorizontalSplitter); // Left side GUILayout.BeginVertical(); // First row of controls GUILayout.BeginHorizontal(EditorStyles.toolbarButton); PlayControlsOnGUI(); GUILayout.EndHorizontal(); // Second row of controls GUILayout.BeginHorizontal(EditorStyles.toolbarButton); LinkOptionsOnGUI(); ClipSelectionDropDownOnGUI(); GUILayout.FlexibleSpace(); FrameRateInputFieldOnGUI(); AddKeyframeButtonOnGUI(); AddEventButtonOnGUI(); GUILayout.EndHorizontal(); HierarchyOnGUI(); // Bottom row of controls GUILayout.BeginHorizontal(AnimationWindowStyles.miniToolbar); TabSelectionOnGUI(); GUILayout.EndHorizontal(); GUILayout.EndVertical(); // Right side GUILayout.BeginVertical(); // Acquire Rects Rect timerulerRect = GUILayoutUtility.GetRect(contentWidth, kLayoutRowHeight); Rect eventsRect = GUILayoutUtility.GetRect(contentWidth, kLayoutRowHeight); Rect contentLayoutRect = GUILayoutUtility.GetRect(contentWidth, contentWidth, 0f, float.MaxValue, GUILayout.ExpandHeight(true)); // MainContent must be done first since it resizes the Zoomable area. MainContentOnGUI(contentLayoutRect); TimeRulerOnGUI(timerulerRect); EventLineOnGUI(eventsRect); GUILayout.EndVertical(); SplitterGUILayout.EndHorizontalSplit(); GUILayout.EndHorizontal(); // Overlay OverlayOnGUI(contentLayoutRect); RenderEventTooltip(); } }