BoolControl.cs 1022 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. namespace SRDebugger.UI.Controls.Data
  2. {
  3. using System;
  4. using SRF;
  5. using UnityEngine.UI;
  6. public class BoolControl : DataBoundControl
  7. {
  8. [RequiredField] public Text Title;
  9. [RequiredField] public Toggle Toggle;
  10. protected override void Start()
  11. {
  12. base.Start();
  13. Toggle.onValueChanged.AddListener(ToggleOnValueChanged);
  14. }
  15. private void ToggleOnValueChanged(bool isOn)
  16. {
  17. UpdateValue(isOn);
  18. }
  19. protected override void OnBind(string propertyName, Type t)
  20. {
  21. base.OnBind(propertyName, t);
  22. Title.text = propertyName;
  23. Toggle.interactable = !IsReadOnly;
  24. }
  25. protected override void OnValueUpdated(object newValue)
  26. {
  27. var value = (bool) newValue;
  28. Toggle.isOn = value;
  29. }
  30. public override bool CanBind(Type type, bool isReadOnly)
  31. {
  32. return type == typeof (bool);
  33. }
  34. }
  35. }