public void InvokeOnGUI(Rect onGUIPosition) { if (Unsupported.IsDeveloperMode() && this.actualView != null && Event.current.type == EventType.KeyUp && Event.current.keyCode == KeyCode.F5) { this.Reload(this.actualView); } else { base.DoWindowDecorationStart(); GUIStyle gUIStyle = "dockareaoverlay"; if (this.actualView is GameView) { GUI.Box(onGUIPosition, GUIContent.none, gUIStyle); } HostView.BeginOffsetArea(new Rect(onGUIPosition.x + 2f, onGUIPosition.y + 17f, onGUIPosition.width - 4f, onGUIPosition.height - 17f - 2f), GUIContent.none, "TabWindowBackground"); EditorGUIUtility.ResetGUIState(); bool flag = false; try { this.Invoke("OnGUI"); } catch (TargetInvocationException ex) { if (ex.InnerException is ExitGUIException) { flag = true; } throw; } finally { if (!flag) { if (this.actualView != null && this.actualView.m_FadeoutTime != 0f && Event.current != null && Event.current.type == EventType.Repaint) { this.actualView.DrawNotification(); } HostView.EndOffsetArea(); EditorGUIUtility.ResetGUIState(); base.DoWindowDecorationEnd(); if (Event.current.type == EventType.Repaint) { gUIStyle.Draw(onGUIPosition, GUIContent.none, 0); } } } } }
public void OldOnGUI() { base.ClearBackground(); EditorGUIUtility.ResetGUIState(); SplitView splitView = base.parent as SplitView; if (Event.current.type == EventType.Repaint && splitView) { View child = this; while (splitView) { int controlID = splitView.controlID; if (controlID == GUIUtility.hotControl || GUIUtility.hotControl == 0) { int num = splitView.IndexOfChild(child); if (splitView.vertical) { if (num != 0) { EditorGUIUtility.AddCursorRect(new Rect(0f, 0f, base.position.width, 5f), MouseCursor.SplitResizeUpDown, controlID); } if (num != splitView.children.Length - 1) { EditorGUIUtility.AddCursorRect(new Rect(0f, base.position.height - 5f, base.position.width, 5f), MouseCursor.SplitResizeUpDown, controlID); } } else { if (num != 0) { EditorGUIUtility.AddCursorRect(new Rect(0f, 0f, 5f, base.position.height), MouseCursor.SplitResizeLeftRight, controlID); } if (num != splitView.children.Length - 1) { EditorGUIUtility.AddCursorRect(new Rect(base.position.width - 5f, 0f, 5f, base.position.height), MouseCursor.SplitResizeLeftRight, controlID); } } } child = splitView; splitView = (splitView.parent as SplitView); } splitView = (base.parent as SplitView); } bool flag = false; if (base.window.rootView.GetType() != typeof(MainView)) { flag = true; if (base.windowPosition.y == 0f) { this.background = "dockareaStandalone"; } else { this.background = "dockarea"; } } else { this.background = "dockarea"; } if (splitView) { Event @event = new Event(Event.current); @event.mousePosition += new Vector2(base.position.x, base.position.y); splitView.SplitGUI(@event); if (@event.type == EventType.Used) { Event.current.Use(); } } Rect rect = this.background.margin.Remove(new Rect(0f, 0f, base.position.width, base.position.height)); rect.x = (float)this.background.margin.left; rect.y = (float)this.background.margin.top; Rect windowPosition = base.windowPosition; float num2 = 2f; if (windowPosition.x == 0f) { rect.x -= num2; rect.width += num2; } if (windowPosition.xMax == base.window.position.width) { rect.width += num2; } if (windowPosition.yMax == base.window.position.height) { rect.height += ((!flag) ? 2f : 2f); } if (Event.current.type == EventType.Repaint) { this.background.Draw(rect, GUIContent.none, 0); } if (this.tabStyle == null) { this.tabStyle = "dragtab"; } if (this.m_Panes.Count > 0) { HostView.BeginOffsetArea(new Rect(rect.x + 2f, rect.y + 17f, rect.width - 4f, rect.height - 17f - 2f), GUIContent.none, "TabWindowBackground"); Vector2 vector = GUIUtility.GUIToScreenPoint(Vector2.zero); Rect pos = base.borderSize.Remove(base.position); pos.x = vector.x; pos.y = vector.y; this.m_Panes[this.selected].m_Pos = pos; HostView.EndOffsetArea(); } this.DragTab(new Rect(rect.x + 1f, rect.y, rect.width - 40f, 17f), this.tabStyle); this.tabStyle = "dragtab"; base.ShowGenericMenu(); if (this.m_Panes.Count > 0) { base.InvokeOnGUI(rect); } EditorGUI.ShowRepaints(); Highlighter.ControlHighlightGUI(this); }