48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | namespace SRDebugger.UI.Controls.Data | |||
|  | { | |||
|  |     using System; | |||
|  |     using SRF; | |||
|  |     using UnityEngine.UI; | |||
|  | 
 | |||
|  |     public class StringControl : DataBoundControl | |||
|  |     { | |||
|  |         [RequiredField] public InputField InputField; | |||
|  | 
 | |||
|  |         [RequiredField] public Text Title; | |||
|  | 
 | |||
|  |         protected override void Start() | |||
|  |         { | |||
|  |             base.Start(); | |||
|  | #if UNITY_4_6 || UNITY_4_7 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 | |||
|  |             InputField.onValueChange.AddListener(OnValueChanged); | |||
|  | #else | |||
|  |             InputField.onValueChanged.AddListener(OnValueChanged); | |||
|  | #endif | |||
|  |         } | |||
|  | 
 | |||
|  |         private void OnValueChanged(string newValue) | |||
|  |         { | |||
|  |             UpdateValue(newValue); | |||
|  |         } | |||
|  | 
 | |||
|  |         protected override void OnBind(string propertyName, Type t) | |||
|  |         { | |||
|  |             base.OnBind(propertyName, t); | |||
|  |             Title.text = propertyName; | |||
|  |             InputField.text = ""; | |||
|  |             InputField.interactable = !IsReadOnly; | |||
|  |         } | |||
|  | 
 | |||
|  |         protected override void OnValueUpdated(object newValue) | |||
|  |         { | |||
|  |             var value = newValue == null ? "" : (string) newValue; | |||
|  |             InputField.text = value; | |||
|  |         } | |||
|  | 
 | |||
|  |         public override bool CanBind(Type type, bool isReadOnly) | |||
|  |         { | |||
|  |             return type == typeof (string) && !isReadOnly; | |||
|  |         } | |||
|  |     } | |||
|  | } |