Tri-Inspector/Editor.Extras/Drawers/BuiltinDrawers.cs

224 lines
7.8 KiB
C#
Raw Normal View History

2022-01-07 12:21:36 -05:00
using System;
using TriInspector;
using TriInspector.Drawers;
using UnityEditor;
2023-10-25 10:05:09 -04:00
using UnityEditorInternal;
2022-01-07 12:21:36 -05:00
using UnityEngine;
[assembly: RegisterTriValueDrawer(typeof(IntegerDrawer), TriDrawerOrder.Fallback)]
2022-12-06 05:33:03 -05:00
[assembly: RegisterTriValueDrawer(typeof(LongDrawer), TriDrawerOrder.Fallback)]
2022-01-07 12:21:36 -05:00
[assembly: RegisterTriValueDrawer(typeof(BooleanDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(FloatDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(StringDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(ColorDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(Color32Drawer), TriDrawerOrder.Fallback)]
2022-01-07 12:21:36 -05:00
[assembly: RegisterTriValueDrawer(typeof(LayerMaskDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(EnumDrawer), TriDrawerOrder.Fallback)]
2022-01-07 12:21:36 -05:00
[assembly: RegisterTriValueDrawer(typeof(Vector2Drawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(Vector3Drawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(Vector4Drawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(RectDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(AnimationCurveDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(BoundsDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(GradientDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(Vector2IntDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(Vector3IntDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(RectIntDrawer), TriDrawerOrder.Fallback)]
[assembly: RegisterTriValueDrawer(typeof(BoundsIntDrawer), TriDrawerOrder.Fallback)]
namespace TriInspector.Drawers
{
public class StringDrawer : BuiltinDrawerBase<string>
{
protected override string OnValueGUI(Rect position, GUIContent label, string value)
{
return EditorGUI.TextField(position, label, value);
}
}
2023-10-25 10:05:09 -04:00
2022-01-07 12:21:36 -05:00
public class BooleanDrawer : BuiltinDrawerBase<bool>
{
protected override bool OnValueGUI(Rect position, GUIContent label, bool value)
{
return EditorGUI.Toggle(position, label, value);
}
}
public class IntegerDrawer : BuiltinDrawerBase<int>
{
protected override int OnValueGUI(Rect position, GUIContent label, int value)
{
return EditorGUI.IntField(position, label, value);
}
}
2023-10-25 10:05:09 -04:00
2022-12-06 05:33:03 -05:00
public class LongDrawer : BuiltinDrawerBase<long>
{
protected override long OnValueGUI(Rect position, GUIContent label, long value)
{
return EditorGUI.LongField(position, label, value);
}
}
2023-10-25 10:05:09 -04:00
2022-01-07 12:21:36 -05:00
public class FloatDrawer : BuiltinDrawerBase<float>
{
protected override float OnValueGUI(Rect position, GUIContent label, float value)
{
return EditorGUI.FloatField(position, label, value);
}
}
public class ColorDrawer : BuiltinDrawerBase<Color>
{
protected override Color OnValueGUI(Rect position, GUIContent label, Color value)
{
return EditorGUI.ColorField(position, label, value);
}
}
public class Color32Drawer : BuiltinDrawerBase<Color32>
{
protected override Color32 OnValueGUI(Rect position, GUIContent label, Color32 value)
{
return EditorGUI.ColorField(position, label, value);
}
}
2022-01-07 12:21:36 -05:00
public class LayerMaskDrawer : BuiltinDrawerBase<LayerMask>
{
protected override LayerMask OnValueGUI(Rect position, GUIContent label, LayerMask value)
{
2023-10-25 10:05:09 -04:00
var mask = InternalEditorUtility.LayerMaskToConcatenatedLayersMask(value);
var layers = InternalEditorUtility.layers;
position = EditorGUI.PrefixLabel(position, label);
return EditorGUI.MaskField(position, mask, layers);
2022-01-07 12:21:36 -05:00
}
}
public class EnumDrawer : BuiltinDrawerBase<Enum>
2022-01-07 12:21:36 -05:00
{
protected override Enum OnValueGUI(Rect position, GUIContent label, Enum value)
2022-01-07 12:21:36 -05:00
{
return EditorGUI.EnumPopup(position, label, value);
2022-01-07 12:21:36 -05:00
}
}
public class Vector2Drawer : BuiltinDrawerBase<Vector2>
{
public override int CompactModeLines => 2;
2022-01-07 12:21:36 -05:00
protected override Vector2 OnValueGUI(Rect position, GUIContent label, Vector2 value)
{
return EditorGUI.Vector2Field(position, label, value);
}
}
public class Vector3Drawer : BuiltinDrawerBase<Vector3>
{
public override int CompactModeLines => 2;
2022-01-07 12:21:36 -05:00
protected override Vector3 OnValueGUI(Rect position, GUIContent label, Vector3 value)
{
return EditorGUI.Vector3Field(position, label, value);
}
}
public class Vector4Drawer : BuiltinDrawerBase<Vector4>
{
public override int CompactModeLines => 2;
2022-01-07 12:21:36 -05:00
protected override Vector4 OnValueGUI(Rect position, GUIContent label, Vector4 value)
{
return EditorGUI.Vector4Field(position, label, value);
}
}
public class RectDrawer : BuiltinDrawerBase<Rect>
{
public override int CompactModeLines => 3;
public override int WideModeLines => 2;
2022-01-07 12:21:36 -05:00
protected override Rect OnValueGUI(Rect position, GUIContent label, Rect value)
{
return EditorGUI.RectField(position, label, value);
}
}
public class AnimationCurveDrawer : BuiltinDrawerBase<AnimationCurve>
{
protected override AnimationCurve OnValueGUI(Rect position, GUIContent label, AnimationCurve value)
{
return EditorGUI.CurveField(position, label, value);
}
}
public class BoundsDrawer : BuiltinDrawerBase<Bounds>
{
public override int CompactModeLines => 3;
public override int WideModeLines => 3;
2022-01-07 12:21:36 -05:00
protected override Bounds OnValueGUI(Rect position, GUIContent label, Bounds value)
{
return EditorGUI.BoundsField(position, label, value);
}
}
public class GradientDrawer : BuiltinDrawerBase<Gradient>
{
private static readonly GUIContent NullLabel = new GUIContent("Gradient is null");
2023-10-25 10:05:09 -04:00
2022-01-07 12:21:36 -05:00
protected override Gradient OnValueGUI(Rect position, GUIContent label, Gradient value)
{
if (value == null)
{
EditorGUI.LabelField(position, label, NullLabel);
return null;
}
2023-10-25 10:05:09 -04:00
2022-01-07 12:21:36 -05:00
return EditorGUI.GradientField(position, label, value);
}
}
public class Vector2IntDrawer : BuiltinDrawerBase<Vector2Int>
{
public override int CompactModeLines => 2;
2022-01-07 12:21:36 -05:00
protected override Vector2Int OnValueGUI(Rect position, GUIContent label, Vector2Int value)
{
return EditorGUI.Vector2IntField(position, label, value);
}
}
public class Vector3IntDrawer : BuiltinDrawerBase<Vector3Int>
{
public override int CompactModeLines => 2;
2022-01-07 12:21:36 -05:00
protected override Vector3Int OnValueGUI(Rect position, GUIContent label, Vector3Int value)
{
return EditorGUI.Vector3IntField(position, label, value);
}
}
public class RectIntDrawer : BuiltinDrawerBase<RectInt>
{
public override int CompactModeLines => 3;
public override int WideModeLines => 2;
2022-01-07 12:21:36 -05:00
protected override RectInt OnValueGUI(Rect position, GUIContent label, RectInt value)
{
return EditorGUI.RectIntField(position, label, value);
}
}
public class BoundsIntDrawer : BuiltinDrawerBase<BoundsInt>
{
public override int CompactModeLines => 3;
public override int WideModeLines => 3;
2022-01-07 12:21:36 -05:00
protected override BoundsInt OnValueGUI(Rect position, GUIContent label, BoundsInt value)
{
return EditorGUI.BoundsIntField(position, label, value);
}
}
}