Tri-Inspector/Editor/Elements/TriInlineGenericElement.cs

41 lines
1.2 KiB
C#
Raw Normal View History

2021-12-07 18:20:36 +03:00
using TriInspector.Utilities;
using UnityEditor;
using UnityEngine;
namespace TriInspector.Elements
{
internal class TriInlineGenericElement : TriPropertyCollectionBaseElement
{
private readonly bool _drawPrefixLabel;
private readonly float _labelWidth;
private readonly TriProperty _property;
public TriInlineGenericElement(TriProperty property,
bool drawPrefixLabel = false, float labelWidth = 0f)
{
_property = property;
_drawPrefixLabel = drawPrefixLabel;
_labelWidth = labelWidth;
DeclareGroups(property.ValueType);
foreach (var childProperty in property.ChildrenProperties)
{
AddProperty(childProperty);
}
}
public override void OnGUI(Rect position)
{
if (_drawPrefixLabel)
{
var controlId = GUIUtility.GetControlID(FocusType.Passive);
position = EditorGUI.PrefixLabel(position, controlId, _property.DisplayNameContent);
}
TriGuiHelper.PushLabelWidth(_labelWidth);
base.OnGUI(position);
TriGuiHelper.PopLabelWidth();
}
}
}