update CCK to 3.10, fixing unity 2021 crash :)
This commit is contained in:
parent
48a978fa2a
commit
d11e0fb3a9
492 changed files with 2165204 additions and 437687 deletions
177
Assets/ABI.CCK/Scripts/Editor/GUIExtensions/SharedComponentGUI.cs
Executable file
177
Assets/ABI.CCK/Scripts/Editor/GUIExtensions/SharedComponentGUI.cs
Executable file
|
@ -0,0 +1,177 @@
|
|||
#if UNITY_EDITOR
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ABI.CCK.Scripts.Editor
|
||||
{
|
||||
// Shared between all Custom Editors for CCK Components specifically
|
||||
public static class SharedComponentGUI
|
||||
{
|
||||
public static readonly GUIStyle s_BoldLabelStyle;
|
||||
public static readonly GUIStyle s_BoldFoldoutStyle;
|
||||
|
||||
static SharedComponentGUI()
|
||||
{
|
||||
// Foldout scope styles
|
||||
s_BoldLabelStyle = new GUIStyle(EditorStyles.label) { fontStyle = FontStyle.Bold };
|
||||
s_BoldFoldoutStyle = new GUIStyle(EditorStyles.foldout) { fontStyle = FontStyle.Bold };
|
||||
}
|
||||
|
||||
public static void Separator()
|
||||
{
|
||||
GUILayout.Space(2);
|
||||
GUILayout.Box("", EditorStyles.helpBox, GUILayout.ExpandWidth(true), GUILayout.Height(2));
|
||||
GUILayout.Space(2);
|
||||
}
|
||||
|
||||
public static bool InnerFoldout(ref bool foldoutState, string label, GUIStyle style = null)
|
||||
{
|
||||
return foldoutState = EditorGUILayout.Foldout(foldoutState, label, true, style ?? EditorStyles.foldout);
|
||||
}
|
||||
|
||||
public static bool InnerFoldout(ref bool foldoutState, GUIContent label, GUIStyle style = null)
|
||||
{
|
||||
return foldoutState = EditorGUILayout.Foldout(foldoutState, label, true, style ?? EditorStyles.foldout);
|
||||
}
|
||||
|
||||
public class LabelScope : GUI.Scope
|
||||
{
|
||||
// Magic numbers
|
||||
private const float LabelHeight = 24.0f;
|
||||
private const float IndentX = 8.0f;
|
||||
private const float VerticalSpacingAdjust = -26.0f;
|
||||
|
||||
public LabelScope(string label, GUIStyle style = null)
|
||||
{
|
||||
InitLabelScope(new GUIContent(label), style ?? s_BoldLabelStyle);
|
||||
}
|
||||
|
||||
public LabelScope(GUIContent label, GUIStyle style = null)
|
||||
{
|
||||
InitLabelScope(label, style ?? s_BoldLabelStyle);
|
||||
}
|
||||
|
||||
private void InitLabelScope(GUIContent label, GUIStyle style)
|
||||
{
|
||||
// Label
|
||||
Rect labelRect = GUILayoutUtility.GetRect(1.0f, LabelHeight);
|
||||
EditorGUI.HelpBox(labelRect, "", MessageType.None);
|
||||
labelRect.x += IndentX;
|
||||
labelRect.width -= IndentX;
|
||||
EditorGUI.LabelField(labelRect, label, style);
|
||||
|
||||
// Content
|
||||
GUILayout.Space(VerticalSpacingAdjust);
|
||||
GUILayout.BeginVertical(EditorStyles.helpBox);
|
||||
GUILayout.Space(LabelHeight);
|
||||
}
|
||||
|
||||
protected override void CloseScope()
|
||||
{
|
||||
GUILayout.Space(3f);
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
|
||||
public class FoldoutScope : GUI.Scope
|
||||
{
|
||||
// Magic numbers
|
||||
private const float FoldoutHeight = 24.0f;
|
||||
private const float IndentX = 18.0f;
|
||||
private const float VerticalSpacingAdjust = -26.0f;
|
||||
|
||||
public FoldoutScope(ref bool foldoutState, string label, GUIStyle style = null)
|
||||
{
|
||||
InitFoldoutScope(ref foldoutState, new GUIContent(label), style ?? s_BoldFoldoutStyle);
|
||||
}
|
||||
|
||||
public FoldoutScope(ref bool foldoutState, GUIContent label, GUIStyle style = null)
|
||||
{
|
||||
InitFoldoutScope(ref foldoutState, label, style ?? s_BoldFoldoutStyle);
|
||||
}
|
||||
|
||||
private void InitFoldoutScope(ref bool foldoutState, GUIContent label, GUIStyle style)
|
||||
{
|
||||
// Foldout
|
||||
Rect foldoutRect = GUILayoutUtility.GetRect(1.0f, FoldoutHeight);
|
||||
EditorGUI.HelpBox(foldoutRect, "", MessageType.None);
|
||||
foldoutRect.x += IndentX;
|
||||
foldoutRect.width -= IndentX;
|
||||
foldoutState = EditorGUI.Foldout(foldoutRect, foldoutState, label, true, style);
|
||||
|
||||
// Content
|
||||
GUILayout.Space(VerticalSpacingAdjust);
|
||||
GUILayout.BeginVertical(EditorStyles.helpBox);
|
||||
GUILayout.Space(foldoutState ? FoldoutHeight : 21);
|
||||
}
|
||||
|
||||
protected override void CloseScope()
|
||||
{
|
||||
GUILayout.Space(3f);
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
|
||||
public class ToggleFoldoutScope : GUI.Scope
|
||||
{
|
||||
// Magic numbers 2
|
||||
private const float FoldoutHeight = 24.0f;
|
||||
private const float IndentX = 18.0f;
|
||||
private const float VerticalSpacingAdjust = -26.0f;
|
||||
private const float ToggleWidth = 16.0f;
|
||||
|
||||
public ToggleFoldoutScope(ref bool foldoutState, ref bool toggleState, string label, GUIStyle style = null)
|
||||
{
|
||||
InitToggleFoldoutScope(ref foldoutState, ref toggleState, new GUIContent(label), style ?? s_BoldFoldoutStyle);
|
||||
}
|
||||
|
||||
public ToggleFoldoutScope(ref bool foldoutState, ref bool toggleState, GUIContent label, GUIStyle style = null)
|
||||
{
|
||||
InitToggleFoldoutScope(ref foldoutState, ref toggleState, label, style ?? s_BoldFoldoutStyle);
|
||||
}
|
||||
|
||||
private void InitToggleFoldoutScope(ref bool foldoutState, ref bool toggleState, GUIContent label, GUIStyle style)
|
||||
{
|
||||
// Foldout
|
||||
Rect fullRect = GUILayoutUtility.GetRect(1.0f, FoldoutHeight);
|
||||
EditorGUI.HelpBox(fullRect, "", MessageType.None);
|
||||
|
||||
// Toggle
|
||||
Rect toggleRect = new Rect(fullRect.x + IndentX + 1f, fullRect.y + 1f, ToggleWidth, FoldoutHeight);
|
||||
toggleState = EditorGUI.Toggle(toggleRect, toggleState);
|
||||
|
||||
// Foldout
|
||||
Rect foldoutRect = new Rect(fullRect.x + IndentX, fullRect.y, fullRect.width - IndentX, FoldoutHeight);
|
||||
foldoutState = EditorGUI.Foldout(foldoutRect, foldoutState, " " + label, true, style);
|
||||
|
||||
// Content
|
||||
GUILayout.Space(VerticalSpacingAdjust);
|
||||
GUILayout.BeginVertical(EditorStyles.helpBox);
|
||||
GUILayout.Space(foldoutState ? FoldoutHeight : 21);
|
||||
}
|
||||
|
||||
protected override void CloseScope()
|
||||
{
|
||||
GUILayout.Space(3f);
|
||||
GUILayout.EndVertical();
|
||||
}
|
||||
}
|
||||
|
||||
public class SetIndentLevelScope : GUI.Scope
|
||||
{
|
||||
private readonly int originalIndentLevel;
|
||||
|
||||
public SetIndentLevelScope(int indentLevel)
|
||||
{
|
||||
originalIndentLevel = EditorGUI.indentLevel;
|
||||
EditorGUI.indentLevel = indentLevel;
|
||||
}
|
||||
|
||||
protected override void CloseScope()
|
||||
{
|
||||
EditorGUI.indentLevel = originalIndentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue