internal static Rect DrawHeaderGUI(Editor editor, string header, float leftMargin)
{
if (Editor.s_Styles == null)
{
Editor.s_Styles = new Editor.Styles();
}
GUILayout.BeginHorizontal(Editor.s_Styles.inspectorBig, new GUILayoutOption[0]);
GUILayout.Space(38f);
GUILayout.BeginVertical(new GUILayoutOption[0]);
GUILayout.Space(19f);
GUILayout.BeginHorizontal(new GUILayoutOption[0]);
if (leftMargin > 0f)
{
GUILayout.Space(leftMargin);
}
if (editor)
{
editor.OnHeaderControlsGUI();
}
else
{
EditorGUILayout.GetControlRect(new GUILayoutOption[0]);
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
GUILayout.EndHorizontal();
Rect lastRect = GUILayoutUtility.GetLastRect();
Rect r = new Rect(lastRect.x + leftMargin, lastRect.y, lastRect.width - leftMargin, lastRect.height);
Rect rect = new Rect(r.x + 6f, r.y + 6f, 32f, 32f);
if (editor)
{
editor.OnHeaderIconGUI(rect);
}
else
{
GUI.Label(rect, AssetPreview.GetMiniTypeThumbnail(typeof(UnityEngine.Object)), Editor.s_Styles.centerStyle);
}
if (editor)
{
editor.DrawPostIconContent(rect);
}
Rect rect2 = new Rect(r.x + 44f, r.y + 6f, r.width - 44f - 38f - 4f, 16f);
if (editor)
{
editor.OnHeaderTitleGUI(rect2, header);
}
else
{
GUI.Label(rect2, header, EditorStyles.largeLabel);
}
if (editor)
{
editor.DrawHeaderHelpAndSettingsGUI(r);
}
Event current = Event.current;
if (editor != null && current.type == EventType.MouseDown && current.button == 1 && r.Contains(current.mousePosition))
{
EditorUtility.DisplayObjectContextMenu(new Rect(current.mousePosition.x, current.mousePosition.y, 0f, 0f), editor.targets, 0);
current.Use();
}
return(lastRect);
}