You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
using UnityEditor.UIElements;
|
|
|
|
namespace UnityEditor.VFX.UI
|
|
{
|
|
class GradientPropertyRM : PropertyRM<Gradient>
|
|
{
|
|
public GradientPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
|
|
{
|
|
m_GradientField = new GradientField(ObjectNames.NicifyVariableName(controller.name));
|
|
m_GradientField.RegisterCallback<ChangeEvent<Gradient>>(OnValueChanged);
|
|
m_GradientField.colorSpace = ColorSpace.Linear;
|
|
m_GradientField.hdr = true;
|
|
|
|
Add(m_GradientField);
|
|
}
|
|
|
|
public override float GetPreferredControlWidth()
|
|
{
|
|
return 120;
|
|
}
|
|
|
|
public void OnValueChanged(ChangeEvent<Gradient> e)
|
|
{
|
|
Gradient newValue = m_GradientField.value;
|
|
m_Value = newValue;
|
|
NotifyValueChanged();
|
|
}
|
|
|
|
GradientField m_GradientField;
|
|
|
|
protected override void UpdateEnabled()
|
|
{
|
|
m_GradientField.SetEnabled(propertyEnabled);
|
|
}
|
|
|
|
protected override void UpdateIndeterminate()
|
|
{
|
|
m_GradientField.visible = !indeterminate;
|
|
}
|
|
|
|
public override void UpdateGUI(bool force)
|
|
{
|
|
m_GradientField.SetValueWithoutNotify(m_Value);
|
|
}
|
|
|
|
public override bool showsEverything { get { return true; } }
|
|
}
|
|
}
|