You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
| using System.Collections.Generic;
 | |
| using FairyGUI.Utils;
 | |
| 
 | |
| namespace FairyGUI
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Gear is a connection between object and controller.
 | |
|     /// </summary>
 | |
|     public class GearText : GearBase
 | |
|     {
 | |
|         Dictionary<string, string> _storage;
 | |
|         string _default;
 | |
| 
 | |
|         public GearText(GObject owner)
 | |
|             : base(owner)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         protected override void Init()
 | |
|         {
 | |
|             _default = _owner.text;
 | |
|             _storage = new Dictionary<string, string>();
 | |
|         }
 | |
| 
 | |
|         override protected void AddStatus(string pageId, ByteBuffer buffer)
 | |
|         {
 | |
|             if (pageId == null)
 | |
|                 _default = buffer.ReadS();
 | |
|             else
 | |
|                 _storage[pageId] = buffer.ReadS();
 | |
|         }
 | |
| 
 | |
|         override public void Apply()
 | |
|         {
 | |
|             _owner._gearLocked = true;
 | |
| 
 | |
|             string cv;
 | |
|             if (!_storage.TryGetValue(_controller.selectedPageId, out cv))
 | |
|                 cv = _default;
 | |
| 
 | |
|             _owner.text = cv;
 | |
| 
 | |
|             _owner._gearLocked = false;
 | |
|         }
 | |
| 
 | |
|         override public void UpdateState()
 | |
|         {
 | |
|             _storage[_controller.selectedPageId] = _owner.text;
 | |
|         }
 | |
|     }
 | |
| }
 |