forked from Shardstone/trail-into-darkness
44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
|
|
using UnityEngine;
|
|
|
|
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
namespace Jovian.InspectorTools.Internal {
|
|
|
|
public static class RequiredUtil {
|
|
private const float ICON_X_OFFSET = 15f;
|
|
private const float ICON_SIZE = 18f;
|
|
private static Color ErrorColor = new(1f, 0.5f, 0.5f, 1f);
|
|
private static GUIContent errorIcon;
|
|
private static GUIStyle errorStyle;
|
|
|
|
public static void LayoutRequired(ref Rect position, string tooltip, bool indent = true) {
|
|
if (indent) {
|
|
position.x += ICON_SIZE;
|
|
position.width -= ICON_SIZE;
|
|
}
|
|
}
|
|
|
|
public static void DrawRequired(ref Rect position, string tooltip, bool indent = true) {
|
|
if(errorIcon == null || errorStyle == null) {
|
|
errorIcon = new GUIContent(EditorGUIUtility.IconContent("console.erroricon.sml").image);
|
|
errorStyle = new GUIStyle(GUI.skin.label) {
|
|
padding = new RectOffset(0, 0, 0, 0),
|
|
imagePosition = ImagePosition.ImageOnly
|
|
};
|
|
}
|
|
|
|
errorIcon.tooltip = tooltip;
|
|
|
|
Rect errorIconRect = new Rect(position.x - ICON_X_OFFSET, position.y + 1, ICON_SIZE, EditorGUIUtility.singleLineHeight);
|
|
GUI.Label(errorIconRect, errorIcon, errorStyle);
|
|
GUI.color = ErrorColor;
|
|
|
|
if (indent) {
|
|
position.x += ICON_SIZE;
|
|
position.width -= ICON_SIZE;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif |