/// <inheritdoc /> protected override void BuildElementUI() { base.BuildElementUI(); var header = new VisualElement { name = "row-header" }; header.AddToClassList(headerUssClassName); m_CollapseButton = new CollapseButton(); m_CollapseButton.AddToClassList(collapseButtonUssClassName); header.Add(m_CollapseButton); m_HeaderContainer = new VisualElement { name = "row-header-container" }; m_HeaderContainer.AddToClassList(headerContainerUssClassName); header.Add(m_HeaderContainer); Add(header); m_PropertyViewContainer = new VisualElement { name = "property-view-container" }; m_PropertyViewContainer.AddToClassList(propertyViewUssClassName); Add(m_PropertyViewContainer); m_CollapseButton.RegisterCallback <ChangeEvent <bool> >(OnCollapseButtonChange); }
/// <inheritdoc /> protected override void BuildPartUI(VisualElement container) { if (m_Model is ICollapsible) { CollapseButton = new CollapseButton { name = PartName }; CollapseButton.AddToClassList(m_ParentClassName.WithUssElement(PartName)); container.Add(CollapseButton); } }
public void ChangeValueTriggersChangeCallback() { var collapseButton = new CollapseButton(); bool called = false; collapseButton.RegisterCallback <ChangeEvent <bool> >(e => called = true); m_Window.rootVisualElement.Add(collapseButton); Assert.IsFalse(collapseButton.value); collapseButton.value = true; Assert.IsTrue(called, "CollapsedButton did not called our callback."); }
/// <inheritdoc /> protected override void UpdatePartFromModel() { base.UpdatePartFromModel(); if (CollapseButton != null) { if (m_Model is IPortNodeModel portHolder && portHolder.Ports != null) { var allPortConnected = portHolder.Ports.All(port => port.IsConnected()); CollapseButton?.SetDisabledPseudoState(allPortConnected); } } }
public void SetValueWithoutNotifyDoesNotTriggerChangeCallback() { var collapseButton = new CollapseButton(); bool called = false; collapseButton.RegisterCallback <ChangeEvent <bool> >(e => called = true); m_Window.rootVisualElement.Add(collapseButton); Assert.IsFalse(collapseButton.value); collapseButton.SetValueWithoutNotify(true); Assert.IsTrue(collapseButton.value, "CollapsedButton value did not change."); Assert.IsFalse(called, "CollapsedButton called our callback."); }
public IEnumerator ClickingButtonIconChangesItsValue() { var collapseButton = new CollapseButton(); m_Window.rootVisualElement.Add(collapseButton); // Do layout yield return(null); Assert.IsFalse(collapseButton.value); var icon = collapseButton.SafeQ("icon"); Vector2 center = collapseButton.parent.LocalToWorld(collapseButton.layout.center); EventHelper.Click(center); Assert.IsTrue(collapseButton.value); }