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); }
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); }
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); } }