Пример #1
0
        public override VisualElement CreatePropertyGUI(SerializedProperty property)
        {
            var showMemberLabels = (attribute as InlineAttribute).ShowMemberLabels;

            var container      = new VisualElement();
            var childContainer = new VisualElement();

            childContainer.AddToClassList(ChildrenUssClassName);

            if (!showMemberLabels)
            {
                var label = new FieldContainer(property.displayName, this.GetTooltip());
                label.AddToClassList(LabelUssClassName);
                container.Add(label);
            }

            foreach (var child in property.Children())
            {
                var field = new PropertyField(child);
                if (!showMemberLabels)
                {
                    field.SetLabel(null);
                }

                childContainer.Add(field);
            }

            container.Add(childContainer);
            container.AddToClassList(UssClassName);
            container.AddStyleSheet(Configuration.ElementsPath, Stylesheet);

            return(container);
        }
Пример #2
0
        public InlineField(SerializedProperty property, bool showMemberLabels)
        {
            var childContainer = new VisualElement();

            childContainer.AddToClassList(ChildrenUssClassName);

            if (!showMemberLabels)
            {
                var label = new FieldContainer(property.displayName);
                label.AddToClassList(LabelUssClassName);
                Add(label);
            }

            foreach (var child in property.Children())
            {
                var field = new PropertyField(child);
                if (!showMemberLabels)
                {
                    field.SetFieldLabel(null);
                }

                childContainer.Add(field);
            }

            Add(childContainer);
            AddToClassList(UssClassName);
            this.AddStyleSheet(Stylesheet);
        }
Пример #3
0
        public VisualElement CreateElement(int index, string key)
        {
            var value = _valuesProperty.GetArrayElementAtIndex(index);
            var field = _drawer?.CreatePropertyGUI(value) ?? value.CreateField();

            field.Bind(_property.serializedObject);

            if (string.IsNullOrEmpty(key))
            {
                key = " ";                 // An empty label will cause the label to be removed
            }
            if (field.SetFieldLabel(key))  // TODO: for references this should include the type name
            {
                return(field);
            }
            else
            {
                var container = new FieldContainer(key);
                container.Add(field);
                return(container);
            }
        }