45 lines
1022 B
C#
45 lines
1022 B
C#
|
namespace SRDebugger.UI.Controls.Data
|
|||
|
{
|
|||
|
using System;
|
|||
|
using SRF;
|
|||
|
using UnityEngine.UI;
|
|||
|
|
|||
|
public class BoolControl : DataBoundControl
|
|||
|
{
|
|||
|
[RequiredField] public Text Title;
|
|||
|
|
|||
|
[RequiredField] public Toggle Toggle;
|
|||
|
|
|||
|
protected override void Start()
|
|||
|
{
|
|||
|
base.Start();
|
|||
|
Toggle.onValueChanged.AddListener(ToggleOnValueChanged);
|
|||
|
}
|
|||
|
|
|||
|
private void ToggleOnValueChanged(bool isOn)
|
|||
|
{
|
|||
|
UpdateValue(isOn);
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnBind(string propertyName, Type t)
|
|||
|
{
|
|||
|
base.OnBind(propertyName, t);
|
|||
|
|
|||
|
Title.text = propertyName;
|
|||
|
|
|||
|
Toggle.interactable = !IsReadOnly;
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnValueUpdated(object newValue)
|
|||
|
{
|
|||
|
var value = (bool) newValue;
|
|||
|
Toggle.isOn = value;
|
|||
|
}
|
|||
|
|
|||
|
public override bool CanBind(Type type, bool isReadOnly)
|
|||
|
{
|
|||
|
return type == typeof (bool);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|