45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			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); | |||
|  |         } | |||
|  |     } | |||
|  | } |