Example #1
0
        public override float GetPreferredControlWidth()
        {
            Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes);

            if (RangeShouldCreateSlider(range))
            {
                return(120);
            }
            return(60);
        }
Example #2
0
        public override void UpdateGUI(bool force)
        {
            if (m_Slider != null)
            {
                Vector2 range = VFXPropertyAttribute.FindRange(m_Provider.attributes);

                m_Slider.range = range;
            }
            base.UpdateGUI(force);
        }
Example #3
0
        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));
        }
Example #4
0
        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;
        }
Example #8
0
        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);
        }
Example #9
0
        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;
 }
Example #12
0
        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);
        }
Example #13
0
        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);
        }