public ToggleControlView(string label, AbstractMaterialNode node, PropertyInfo propertyInfo) { m_Node = node; m_PropertyInfo = propertyInfo; AddStyleSheetPath("Styles/Controls/ToggleControlView"); if (propertyInfo.PropertyType != typeof(Toggle)) { throw new ArgumentException("Property must be a Toggle.", "propertyInfo"); } label = label ?? ObjectNames.NicifyVariableName(propertyInfo.Name); var value = (Toggle)m_PropertyInfo.GetValue(m_Node, null); var panel = new VisualElement { name = "togglePanel" }; if (!string.IsNullOrEmpty(label)) { panel.Add(new Label(label)); } Action changedToggle = () => { OnChangeToggle(); }; m_Toggle = new UnityEngine.Experimental.UIElements.Toggle(changedToggle); m_Toggle.SetEnabled(value.isEnabled); m_Toggle.on = value.isOn; panel.Add(m_Toggle); Add(panel); }
public void OnNodeModified(ModificationScope scope) { var value = (Toggle)m_PropertyInfo.GetValue(m_Node, null); m_Toggle.SetEnabled(value.isEnabled); if (scope == ModificationScope.Graph) { Dirty(ChangeType.Repaint); } }
public void OnNodeModified(ModificationScope scope) { var value = (ToggleData)m_PropertyInfo.GetValue(m_Node, null); m_Toggle.SetEnabled(value.isEnabled); if (scope == ModificationScope.Graph) { this.MarkDirtyRepaint(); } }