2 using UnityEngine.UIElements;
3 using UnityEditor.UIElements;
5 using System.Collections.Generic;
7 namespace UnityEditor.VFX.UIElements
9 class VFXFlipBookField : VFXControl<FlipBook>
11 VFXLabeledField<IntegerField, int> m_X;
12 VFXLabeledField<IntegerField, int> m_Y;
14 void CreateTextField()
16 m_X = new VFXLabeledField<IntegerField, int>("X");
17 m_Y = new VFXLabeledField<IntegerField, int>("Y");
19 m_X.control.AddToClassList("fieldContainer");
20 m_Y.control.AddToClassList("fieldContainer");
21 m_X.AddToClassList("fieldContainer");
22 m_Y.AddToClassList("fieldContainer");
24 m_X.RegisterCallback<ChangeEvent<int>>(OnXValueChanged);
25 m_Y.RegisterCallback<ChangeEvent<int>>(OnYValueChanged);
28 void OnXValueChanged(ChangeEvent<int> e)
30 FlipBook newValue = value;
31 newValue.x = (int)m_X.value;
32 SetValueAndNotify(newValue);
35 void OnYValueChanged(ChangeEvent<int> e)
37 FlipBook newValue = value;
38 newValue.y = (int)m_Y.value;
39 SetValueAndNotify(newValue);
42 public override bool indeterminate
46 return m_X.indeterminate;
50 m_X.indeterminate = value;
51 m_Y.indeterminate = value;
55 public VFXFlipBookField()
59 style.flexDirection = FlexDirection.Row;
64 protected override void ValueToGUI(bool force)
66 if (!m_X.control.HasFocus() || force)
69 if (!m_Y.control.HasFocus() || force)