public override float GetPreferredControlWidth() { Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes); if (RangeShouldCreateSlider(range)) { return(120); } return(60); }
public override void UpdateGUI(bool force) { if (m_Slider != null) { Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes); m_Slider.range = range; } base.UpdateGUI(force); }
public override bool IsCompatible(IPropertyRMProvider provider) { if (!base.IsCompatible(provider)) { return(false); } Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes); return(RangeShouldCreateSlider(range) != (m_Slider == null)); }
public override object FilterValue(object value) { Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes); if (range != Vector2.zero) { value = FilterValue(range, (T)value); } return(value); }
public SimpleUIPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth) { m_Field = CreateField(); isDelayed = VFXPropertyAttribute.IsDelayed(m_Provider.attributes); VisualElement fieldElement = m_Field as VisualElement; fieldElement.AddToClassList("fieldContainer"); fieldElement.RegisterCallback <ChangeEvent <U> >(OnValueChanged); Add(fieldElement); }
public override bool IsCompatible(IPropertyRMProvider provider) { if (!base.IsCompatible(provider)) { return(false); } bool isColor = VFXPropertyAttribute.IsColor(provider.attributes); return(isColor == (m_ColorField != null)); }
public override void SelfChange(int change) { base.SelfChange(change); if (controller.depth != 0 && m_Lines == null) { m_Lines = new VisualElement[controller.depth + 1]; for (int i = 0; i < controller.depth; ++i) { var line = new VisualElement(); line.style.width = 1; line.name = "line"; line.style.marginLeft = 0.5f * PropertyRM.depthOffset; line.style.marginRight = PropertyRM.depthOffset * 0.5f; Insert(2, line); m_Lines[i] = line; } } if (controller.expandable) { if (m_Icons == null) { m_Icons = new Texture2D[] { Resources.Load <Texture2D>("VFX/plus"), Resources.Load <Texture2D>("VFX/minus") } } ; m_Icon.style.backgroundImage = controller.expandedSelf ? m_Icons[1] : m_Icons[0]; m_Icon.AddManipulator(new Clickable(OnToggleExpanded)); } else { m_Icon.style.backgroundImage = null; } string text = ""; string tooltip = null; VFXPropertyAttribute.ApplyToGUI(controller.attributes, ref text, ref tooltip); this.tooltip = tooltip; }
protected override INotifyValueChanged <long> CreateSimpleField(out TextValueField <long> textField) { if (VFXPropertyAttribute.IsBitField(m_Provider.attributes)) { var bitfield = new VFXLabeledField <VFX32BitField, long>(m_Label); textField = null; return(bitfield); } var field = new VFXLabeledField <LongField, long>(m_Label); field.onValueDragFinished = t => DelayedNotifyValueChange(); textField = field.control; return(field); }
public override void UpdateGUI(bool force) { if (m_Slider != null) { Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes); m_Slider.range = range; } if (m_TooltipHolder != null && m_Value != null) { m_TooltipHolder.tooltip = m_Value.ToString(); } base.UpdateGUI(force); }
public void Update() { Profiler.BeginSample("PropertyRM.Update"); Profiler.BeginSample("PropertyRM.Update:Angle"); if (VFXPropertyAttribute.IsAngle(m_Provider.attributes)) { SetMultiplier(Mathf.PI / 180.0f); } Profiler.EndSample(); Profiler.BeginSample("PropertyRM.Update:GetValue:"); object value = m_Provider.value; Profiler.EndSample(); Profiler.BeginSample("PropertyRM.Update:Regex"); if (value != null) { string regex = VFXPropertyAttribute.ApplyRegex(m_Provider.attributes, value); if (regex != null) { value = m_Provider.value = regex; } } Profiler.EndSample(); UpdateExpandable(); Profiler.BeginSample("PropertyRM.Update:SetValue"); SetValue(value); Profiler.EndSample(); Profiler.BeginSample("PropertyRM.Update:Name"); string text = ObjectNames.NicifyVariableName(m_Provider.name); string tooltip = null; VFXPropertyAttribute.ApplyToGUI(m_Provider.attributes, ref text, ref tooltip); m_Label.text = text; m_Label.tooltip = tooltip; Profiler.EndSample(); Profiler.EndSample(); }
public override INotifyValueChanged<U> CreateField() { Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes); INotifyValueChanged<U> result; if (!RangeShouldCreateSlider(range)) { result = CreateSimpleField(out m_TextField); m_TextField.RegisterCallback<KeyDownEvent>(OnKeyDown); m_TextField.RegisterCallback<BlurEvent>(OnFocusLost); } else { result = CreateSliderField(out m_Slider); m_Slider.RegisterCallback<BlurEvent>(OnFocusLost); m_Slider.range = range; } return result; }
public VFXSubParameterController(VFXParameterController parameter, IEnumerable <int> fieldPath, string memberPath) { m_Parameter = parameter; m_MemberPath = memberPath; //m_Field = field; System.Type type = m_Parameter.portType; m_FieldPath = fieldPath.ToArray(); m_FieldInfos = new FieldInfo[m_FieldPath.Length]; for (int i = 0; i < m_FieldPath.Length; ++i) { FieldInfo info = type.GetFields(BindingFlags.Public | BindingFlags.Instance)[m_FieldPath[i]]; m_FieldInfos[i] = info; type = info.FieldType; } m_CustomAttributes = m_FieldInfos[m_FieldInfos.Length - 1].GetCustomAttributes(true); m_Attributes = VFXPropertyAttribute.Create(m_CustomAttributes); }
public SimpleUIPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth) { m_Field = CreateField(); isDelayed = VFXPropertyAttribute.IsDelayed(m_Provider.attributes); m_FieldParent = new VisualElement(); VisualElement fieldElement = m_Field as VisualElement; fieldElement.AddToClassList("fieldContainer"); fieldElement.RegisterCallback <ChangeEvent <U> >(OnValueChanged); m_FieldParent.Add(fieldElement); m_FieldParent.style.flexGrow = 1; m_TooltipHolder = new VisualElement(); m_TooltipHolder.style.position = UnityEngine.UIElements.Position.Absolute; m_TooltipHolder.style.top = 0; m_TooltipHolder.style.left = 0; m_TooltipHolder.style.right = 0; m_TooltipHolder.style.bottom = 0; Add(m_FieldParent); }