Esempio n. 1
0
 public SimplePropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
 {
     m_Field = CreateField();
     m_Field.AddToClassList("fieldContainer");
     m_Field.OnValueChanged += OnValueChanged;
     Add(m_Field);
 }
        public Vector3PropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            bool isColor = VFXPropertyAttribute.IsColor(m_Provider.attributes);

            if (isColor)
            {
                m_ColorField = new VFXColorField(m_Label);
                m_ColorField.OnValueChanged = OnColorValueChanged;
                m_ColorField.showAlpha      = false;
                m_VectorField = new VFXVector3Field();
                m_VectorField.RegisterCallback <ChangeEvent <Vector3> >(OnValueChanged);
                var mainContainer = new VisualElement()
                {
                    name = "mainContainer"
                };
                mainContainer.AddToClassList("maincontainer");

                mainContainer.Add(m_ColorField);
                mainContainer.Add(m_VectorField);
                Add(mainContainer);
                m_VectorField.AddToClassList("fieldContainer");
            }
            else
            {
                var labeledField = new VFXLabeledField <VFXVector3Field, Vector3>(m_Label);
                m_VectorField = labeledField.control;
                labeledField.RegisterCallback <ChangeEvent <Vector3> >(OnValueChanged);
                Add(labeledField);
                labeledField.AddToClassList("fieldContainer");
            }
        }
        public Matrix4x4PropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_FieldParent.style.flexDirection = FlexDirection.Row;

            fieldControl.onValueDragFinished = () => ValueDragFinished();
            fieldControl.onValueDragStarted  = () => ValueDragStarted();
        }
Esempio n. 4
0
        public Vector3SpaceablePropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_VectorField = new VFXLabeledField <VFXVector3Field, Vector3>(m_Label);
            m_VectorField.RegisterCallback <ChangeEvent <Vector3> >(OnValueChanged);
            m_VectorField.AddToClassList("fieldContainer");

            Add(m_VectorField);
        }
        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);
        }
Esempio n. 6
0
 public IntegerPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
 {
     m_IndeterminateLabel = new Label()
     {
         name = "indeterminate",
         text = VFXControlConstants.indeterminateText
     };
     m_IndeterminateLabel.SetEnabled(false);
 }
Esempio n. 7
0
        public PropertyRM(IPropertyRMProvider provider, float labelWidth)
        {
            this.AddStyleSheetPathWithSkinVariant("VFXControls");
            this.AddStyleSheetPathWithSkinVariant("PropertyRM");

            m_Provider   = provider;
            m_labelWidth = labelWidth;

            m_IconClickable = new Clickable(OnExpand);

            isDelayed = m_Provider.attributes.Is(VFXPropertyAttributes.Type.Delayed);

            if (provider.attributes.Is(VFXPropertyAttributes.Type.Angle))
            {
                SetMultiplier(Mathf.PI / 180.0f);
            }

            string labelText    = provider.name;
            string labelTooltip = null;

            provider.attributes.ApplyToGUI(ref labelText, ref labelTooltip);
            m_Label = new Label()
            {
                name = "label", text = labelText
            };
            m_Label.tooltip = labelTooltip;

            if (provider.depth != 0)
            {
                for (int i = 0; i < provider.depth; ++i)
                {
                    VisualElement line = new VisualElement();
                    line.style.width       = 1;
                    line.name              = "line";
                    line.style.marginLeft  = depthOffset + (i == 0 ? -2 : 0);
                    line.style.marginRight = ((i == provider.depth - 1) ? 2 : 0);

                    Add(line);
                }
            }
            m_Icon = new VisualElement()
            {
                name = "icon"
            };
            Add(m_Icon);

            m_Label.style.width = effectiveLabelWidth - provider.depth * depthOffset;
            Add(m_Label);

            AddToClassList("propertyrm");


            RegisterCallback <MouseDownEvent>(OnCatchMouse);

            UpdateExpandable();
        }
Esempio n. 8
0
 public SpaceablePropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
 {
     m_Button = new VisualElement()
     {
         name = "spacebutton"
     };
     m_Button.AddManipulator(new Clickable(OnButtonClick));
     Add(m_Button);
     AddToClassList("spaceablepropertyrm");
 }
        public override bool IsCompatible(IPropertyRMProvider provider)
        {
            if (!base.IsCompatible(provider))
            {
                return(false);
            }

            bool isColor = VFXPropertyAttribute.IsColor(provider.attributes);

            return(isColor == (m_ColorField != null));
        }
Esempio n. 10
0
        public GradientPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_GradientField = new GradientField(m_Label);
            m_GradientField.RegisterCallback <ChangeEvent <Gradient> >(OnValueChanged);

            m_GradientField.style.flexDirection = FlexDirection.Column;
            m_GradientField.style.alignItems    = Align.Stretch;
            m_GradientField.style.flex          = new Flex(1, 0);

            Add(m_GradientField);
        }
Esempio n. 11
0
        public override bool IsCompatible(IPropertyRMProvider provider)
        {
            if (!base.IsCompatible(provider))
            {
                return(false);
            }

            Vector2 range = m_Provider.attributes.FindRange();

            return(RangeShouldCreateSlider(range) != (m_Slider == null));
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        public CurvePropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_CurveField = new MyCurveField(m_Label);
            m_CurveField.control.renderMode = CurveField.RenderMode.Mesh;
            m_CurveField.RegisterCallback <ChangeEvent <AnimationCurve> >(OnValueChanged);

            m_CurveField.style.flexDirection = FlexDirection.Column;
            m_CurveField.style.alignItems    = Align.Stretch;
            m_CurveField.style.flex          = new Flex(1, 0);

            Add(m_CurveField);
        }
Esempio n. 14
0
        public GradientPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_GradientField = new GradientField(m_Label);
            m_GradientField.RegisterCallback <ChangeEvent <Gradient> >(OnValueChanged);
            m_GradientField.control.colorSpace  = ColorSpace.Linear;
            m_GradientField.style.flexDirection = FlexDirection.Column;
            m_GradientField.style.alignItems    = Align.Stretch;
            m_GradientField.style.flexGrow      = 1f;
            m_GradientField.style.flexShrink    = 1f;

            Add(m_GradientField);
        }
Esempio n. 15
0
        public static PropertyRM Create(IPropertyRMProvider controller, float labelWidth)
        {
            Type propertyType = GetPropertyType(controller);


            Profiler.BeginSample(propertyType.Name + ".CreateInstance");
            PropertyRM result = System.Activator.CreateInstance(propertyType, new object[] { controller, labelWidth }) as PropertyRM;

            Profiler.EndSample();

            return(result);
        }
        public ObjectPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_ObjectField = new ObjectField(m_Label);
            if (controller.portType == typeof(Texture2D) || controller.portType == typeof(Texture3D) || controller.portType == typeof(Cubemap))
                m_ObjectField.control.objectType = typeof(Texture);
            else
                m_ObjectField.control.objectType = controller.portType;

            m_ObjectField.RegisterCallback<ChangeEvent<UnityObject>>(OnValueChanged);
            m_ObjectField.control.allowSceneObjects = false;
            m_ObjectField.style.flexGrow = 1f;
            m_ObjectField.style.flexShrink = 1f;
            RegisterCallback<KeyDownEvent>(StopKeyPropagation);
            Add(m_ObjectField);
        }
Esempio n. 17
0
        static Type GetPropertyType(IPropertyRMProvider controller)
        {
            Type propertyType = null;
            Type type         = controller.portType;

            if (type != null)
            {
                if (type.IsEnum)
                {
                    propertyType = typeof(EnumPropertyRM);
                }
                else if (controller.spaceableAndMasterOfSpace)
                {
                    if (!m_TypeDictionary.TryGetValue(type, out propertyType))
                    {
                        propertyType = typeof(SpaceablePropertyRM <object>);
                    }
                }
                else
                {
                    while (type != typeof(object) && type != null)
                    {
                        if (!m_TypeDictionary.TryGetValue(type, out propertyType))
                        {
                            /*foreach (var inter in type.GetInterfaces())
                             * {
                             *  if (m_TypeDictionary.TryGetValue(inter, out propertyType))
                             *  {
                             *      break;
                             *  }
                             * }*/
                        }
                        if (propertyType != null)
                        {
                            break;
                        }
                        type = type.BaseType;
                    }
                }
            }
            if (propertyType == null)
            {
                propertyType = typeof(EmptyPropertyRM);
            }

            return(propertyType);
        }
Esempio n. 18
0
        public ColorPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_MainContainer = new VisualElement();

#if USE_MY_COLOR_FIELD
            m_ColorField = new UnityEditor.VFX.UI.VFXColorField(m_Label);
            m_ColorField.OnValueChanged = OnValueChanged;
#else
            m_ColorField = new LabeledField <UnityEditor.UIElements.ColorField, Color>(m_Label);
            m_ColorField.RegisterCallback <ChangeEvent <Color> >(OnValueChanged);
#endif


            m_MainContainer.Add(m_ColorField);
            m_MainContainer.AddToClassList("maincontainer");

            VisualElement fieldContainer = new VisualElement();
            fieldContainer.AddToClassList("fieldContainer");

            m_FloatFields    = new FloatField[4];
            m_TooltipHolders = new VisualElement[4];
            m_FieldParents   = new VisualElement[4];
            for (int i = 0; i < 4; ++i)
            {
                m_FloatFields[i] = new FloatField(names[i]);
                m_FloatFields[i].RegisterCallback <ChangeEvent <float> >(OnValueChanged);

                m_FieldParents[i] = new VisualElement();
                m_FieldParents[i].Add(m_FloatFields[i]);
                m_FieldParents[i].style.flexGrow = 1;
                m_TooltipHolders[i] = new VisualElement();
                m_TooltipHolders[i].style.position = UnityEngine.UIElements.Position.Absolute;
                m_TooltipHolders[i].style.top      = 0;
                m_TooltipHolders[i].style.left     = 0;
                m_TooltipHolders[i].style.right    = 0;
                m_TooltipHolders[i].style.bottom   = 0;
                fieldContainer.Add(m_FieldParents[i]);
            }

            m_MainContainer.Add(fieldContainer);

            m_FloatFields[0].label.AddToClassList("first");

            Add(m_MainContainer);
        }
Esempio n. 19
0
        public ObjectPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_ObjectField = new ObjectField(m_Label);
            if (controller.portType == typeof(Texture2D) || controller.portType == typeof(Texture3D) || controller.portType == typeof(Cubemap))
            {
                m_ObjectField.control.objectType = typeof(Texture);
            }
            else
            {
                m_ObjectField.control.objectType = controller.portType;
            }

            m_ObjectField.RegisterCallback <ChangeEvent <Object> >(OnValueChanged);
            m_ObjectField.control.allowSceneObjects = false;
            m_ObjectField.style.flex = new Flex(1, 0);

            Add(m_ObjectField);
        }
Esempio n. 20
0
        public override bool IsCompatible(IPropertyRMProvider provider)
        {
            if (!base.IsCompatible(provider))
            {
                return(false);
            }

            var stringProvider = FindStringProvider(m_Provider.customAttributes);
            var pushButtonInfo = FindPushButtonBehavior(m_Provider.customAttributes);

            if (stringProvider != null)
            {
                return(m_Field is VFXStringFieldProvider && (m_Field as VFXStringFieldProvider).stringProvider == stringProvider);
            }
            else if (pushButtonInfo.action != null)
            {
                return(m_Field is VFXStringFieldPushButton && (m_Field as VFXStringFieldPushButton).pushButtonProvider == pushButtonInfo.action);
            }

            return(!(m_Field is VFXStringFieldProvider) && !(m_Field is VFXStringFieldPushButton));
        }
Esempio n. 21
0
        public override bool IsCompatible(IPropertyRMProvider provider)
        {
            if (!base.IsCompatible(provider))
            {
                return(false);
            }


            if (m_Provider.attributes.Is(VFXPropertyAttributes.Type.Enum) == (m_EnumPopup == null))
            {
                return(false);
            }

            if (m_Provider.attributes.Is(VFXPropertyAttributes.Type.Enum))
            {
                string[] enumValues = m_Provider.attributes.FindEnum();

                return(Enumerable.SequenceEqual(enumValues, m_EnumPopup.enumValues));
            }
            return(true);
        }
Esempio n. 22
0
        public ColorPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_MainContainer = new VisualElement();

#if USE_MY_COLOR_FIELD
            m_ColorField = new UnityEditor.VFX.UIElements.VFXColorField(m_Label);
            m_ColorField.OnValueChanged = OnValueChanged;
#else
            m_ColorField = new LabeledField <UnityEditor.Experimental.UIElements.ColorField, Color>(m_Label);
            m_ColorField.RegisterCallback <ChangeEvent <Color> >(OnValueChanged);
#endif


            m_MainContainer.Add(m_ColorField);
            m_MainContainer.AddToClassList("maincontainer");

            VisualElement fieldContainer = new VisualElement();
            fieldContainer.AddToClassList("fieldContainer");

            m_RFloatField = new FloatField("R");
            m_RFloatField.RegisterCallback <ChangeEvent <float> >(OnValueChanged);

            m_GFloatField = new FloatField("G");
            m_GFloatField.RegisterCallback <ChangeEvent <float> >(OnValueChanged);

            m_BFloatField = new FloatField("B");
            m_BFloatField.RegisterCallback <ChangeEvent <float> >(OnValueChanged);

            m_AFloatField = new FloatField("A");
            m_AFloatField.RegisterCallback <ChangeEvent <float> >(OnValueChanged);

            fieldContainer.Add(m_RFloatField);
            fieldContainer.Add(m_GFloatField);
            fieldContainer.Add(m_BFloatField);
            fieldContainer.Add(m_AFloatField);

            m_MainContainer.Add(fieldContainer);

            Add(m_MainContainer);
        }
Esempio n. 23
0
        public SimpleUIPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
        {
            m_Field   = CreateField();
            isDelayed = m_Provider.attributes.Is(VFXPropertyAttributes.Type.Delayed);

            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);
        }
Esempio n. 24
0
 public FloatPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
 {
 }
Esempio n. 25
0
 public ListPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
 {
     AddToClassList("ListPropertyRM");
     m_List = new ReorderableList(this);
     Add(m_List);
 }
Esempio n. 26
0
 public BoolPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
 {
     m_Toggle = new Toggle();
     m_Toggle.RegisterCallback <ChangeEvent <bool> >(OnValueChanged);
     Add(m_Toggle);
 }
Esempio n. 27
0
 public EmptyPropertyRM(IPropertyRMProvider provider, float labelWidth) : base(provider, labelWidth)
 {
 }
Esempio n. 28
0
 public SimpleVFXUIPropertyRM(IPropertyRMProvider controller, float labelWidth) : base(controller, labelWidth)
 {
 }
Esempio n. 29
0
 public virtual bool IsCompatible(IPropertyRMProvider provider)
 {
     return(GetType() == GetPropertyType(provider));
 }
Esempio n. 30
0
 protected override StringPropertyRM CreateField(IPropertyRMProvider provider)
 {
     return(new StringPropertyRM(provider, 18));
 }