BooleanSlotControlView.cs 946 B

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using UnityEditor.Graphing;
  3. using UnityEngine;
  4. using UnityEngine.UIElements;
  5. namespace UnityEditor.ShaderGraph.Drawing.Slots
  6. {
  7. class BooleanSlotControlView : VisualElement
  8. {
  9. BooleanMaterialSlot m_Slot;
  10. public BooleanSlotControlView(BooleanMaterialSlot slot)
  11. {
  12. styleSheets.Add(Resources.Load<StyleSheet>("Styles/Controls/BooleanSlotControlView"));
  13. m_Slot = slot;
  14. var toggleField = new Toggle() { value = m_Slot.value };
  15. toggleField.OnToggleChanged(OnChangeToggle);
  16. Add(toggleField);
  17. }
  18. void OnChangeToggle(ChangeEvent<bool> evt)
  19. {
  20. if (evt.newValue != m_Slot.value)
  21. {
  22. m_Slot.owner.owner.owner.RegisterCompleteObjectUndo("Toggle Change");
  23. m_Slot.value = evt.newValue;
  24. m_Slot.owner.Dirty(ModificationScope.Node);
  25. }
  26. }
  27. }
  28. }