59 lines
1.8 KiB
C#
59 lines
1.8 KiB
C#
using System.Linq;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace Paps.UnityToolbarExtenderUIToolkit
|
|
{
|
|
internal class Vector2FieldRecommendedStyle : RecommendedStyle
|
|
{
|
|
private const int SINGLE_FIELD_MIN_WIDTH = 80;
|
|
|
|
private readonly Vector2Field _vector2Field;
|
|
|
|
public Vector2FieldRecommendedStyle(Vector2Field vector2Field)
|
|
{
|
|
_vector2Field = vector2Field;
|
|
}
|
|
|
|
protected override void ApplyRootElementStyle()
|
|
{
|
|
_vector2Field.labelElement.style.minWidth = Length.Auto();
|
|
|
|
var inputFieldsParentElement = GetInputFieldsParentElement();
|
|
|
|
foreach (var child in inputFieldsParentElement.Children().Where(childElement => childElement is FloatField))
|
|
{
|
|
var inputFieldElementIndex = 1;
|
|
|
|
var inputFieldElement = child[inputFieldElementIndex];
|
|
|
|
inputFieldElement.style.overflow = Overflow.Visible;
|
|
inputFieldElement.style.minWidth = SINGLE_FIELD_MIN_WIDTH;
|
|
}
|
|
|
|
var spacerElement = inputFieldsParentElement.Children().Last();
|
|
|
|
spacerElement.style.flexGrow = 0;
|
|
}
|
|
|
|
protected override void ApplyInsideGroupStyle()
|
|
{
|
|
var inputFieldsParentElement = GetInputFieldsParentElement();
|
|
|
|
inputFieldsParentElement.style.flexWrap = Wrap.Wrap;
|
|
|
|
var spacerElement = inputFieldsParentElement.Children().Last();
|
|
|
|
spacerElement.style.flexGrow = 0;
|
|
}
|
|
|
|
private VisualElement GetInputFieldsParentElement()
|
|
{
|
|
var inputFieldsParentIndex = 1;
|
|
|
|
if (string.IsNullOrEmpty(_vector2Field.label))
|
|
inputFieldsParentIndex = 0;
|
|
|
|
return _vector2Field[inputFieldsParentIndex];
|
|
}
|
|
}
|
|
} |