public static void CreateComponentHeader(VisualElement parent, ComponentPropertyType type, string displayName) { Resources.Templates.Inspector.ComponentHeader.Clone(parent); var foldout = parent.Q <Foldout>(className: UssClasses.Inspector.Component.Header); foldout.text = displayName; foldout.Q <Label>(className: UssClasses.UIToolkit.Toggle.Text).AddToClassList(UssClasses.Inspector.Component.Name); var icon = new BindableElement(); icon.AddToClassList(UssClasses.Inspector.Component.Icon); icon.AddToClassList(UssClasses.Inspector.Icons.Small); icon.AddToClassList(GetComponentClass(type)); var input = foldout.Q <VisualElement>(className: UssClasses.UIToolkit.Toggle.Input); input.AddToClassList("shrink"); input.Insert(1, icon); var categoryLabel = new Label(GetComponentCategoryPostfix(type)); categoryLabel.AddToClassList(UssClasses.Inspector.Component.Category); input.Add(categoryLabel); categoryLabel.binding = new BooleanVisibilityPreferenceBinding { Target = categoryLabel, PreferencePath = new PropertyPath(nameof(InspectorSettings.DisplayComponentType)) }; categoryLabel.binding.Update(); var menu = new VisualElement(); menu.AddToClassList(UssClasses.Inspector.Component.Menu); menu.AddToClassList(UssClasses.Inspector.Icons.Small); input.Add(menu); // TODO: Remove once we add menu items menu.Hide(); }
public override VisualElement CreateInspectorGUI() { var root = new BindableElement(); var monoScript = new ObjectField("Script") { value = MonoScript.FromMonoBehaviour(Target) }; monoScript.Q <Label>().style.paddingLeft = 0; monoScript.Q(className: "unity-object-field__selector").SetEnabled(false); monoScript.RegisterCallback <ChangeEvent <UnityEngine.Object>, ObjectField>( (evt, element) => element.value = evt.previousValue, monoScript); root.contentContainer.Add(monoScript); m_RootElement = new InspectorElement(); m_RootElement.RegisterCallback <AttachToPanelEvent, (InspectorElement inspector, PropertyBehaviour target)>((evt, ctx) => { ctx.inspector.SetTarget(ctx.target); }, (m_RootElement, Target)); m_RootElement.OnChanged += (element, path) => { Target.Save(); }; root.contentContainer.Add(m_RootElement); root.AddToClassList("unity-inspector-element"); StylingUtility.AlignInspectorLabelWidth(root); root.RegisterCallback <GeometryChangedEvent, BindableElement>(OnGeometryChanged, root); return(root); }
static void SetCommonNames(IProperty property, BindableElement element) { var name = property.Name; element.name = name; element.bindingPath = name; element.AddToClassList(name); }
public bool CreateField(Type type, FieldInfo fieldInfo, object initialValue, out BindableElement element) { element = null; foreach (var rule in Rules) { if (rule.Value.CreateField(this, type, fieldInfo, initialValue, out element)) { element.AddToClassList(TypeFieldClassName); return(true); } } return(false); }