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;
 | |
|         }
 | |
|     }
 | |
| }
 |