internal static Rect DrawHeaderGUI(Editor editor, string header, float leftMargin)
{
if (s_Styles == null)
{
s_Styles = new Styles();
}
GUILayout.BeginHorizontal(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 != null)
{
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 iconRect = new Rect(r.x + 6f, r.y + 6f, 32f, 32f);
if (editor != null)
{
editor.OnHeaderIconGUI(iconRect);
}
else
{
GUI.Label(iconRect, AssetPreview.GetMiniTypeThumbnail(typeof(Object)), s_Styles.centerStyle);
}
Rect titleRect = new Rect(r.x + 44f, r.y + 6f, ((r.width - 44f) - 38f) - 4f, 16f);
if (editor != null)
{
editor.OnHeaderTitleGUI(titleRect, header);
}
else
{
GUI.Label(titleRect, header, EditorStyles.largeLabel);
}
if (editor != null)
{
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;
}