|  |  | using System.Collections.Generic;
 | 
						
						
						
							|  |  | using FairyGUI.Utils;
 | 
						
						
						
							|  |  | using UnityEngine;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | namespace FairyGUI
 | 
						
						
						
							|  |  | {
 | 
						
						
						
							|  |  |     /// <summary>
 | 
						
						
						
							|  |  |     /// 
 | 
						
						
						
							|  |  |     /// </summary>
 | 
						
						
						
							|  |  |     public class GTextInput : GTextField
 | 
						
						
						
							|  |  |     {
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public InputTextField inputTextField { get; private set; }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         EventListener _onChanged;
 | 
						
						
						
							|  |  |         EventListener _onSubmit;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         public GTextInput()
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             _textField.autoSize = AutoSizeType.None;
 | 
						
						
						
							|  |  |             _textField.wordWrap = false;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public EventListener onChanged
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return _onChanged ?? (_onChanged = new EventListener(this, "onChanged")); }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public EventListener onSubmit
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return _onSubmit ?? (_onSubmit = new EventListener(this, "onSubmit")); }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public bool editable
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.editable; }
 | 
						
						
						
							|  |  |             set { inputTextField.editable = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public bool hideInput
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.hideInput; }
 | 
						
						
						
							|  |  |             set { inputTextField.hideInput = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public int maxLength
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.maxLength; }
 | 
						
						
						
							|  |  |             set { inputTextField.maxLength = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public string restrict
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.restrict; }
 | 
						
						
						
							|  |  |             set { inputTextField.restrict = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public bool displayAsPassword
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.displayAsPassword; }
 | 
						
						
						
							|  |  |             set { inputTextField.displayAsPassword = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public int caretPosition
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.caretPosition; }
 | 
						
						
						
							|  |  |             set { inputTextField.caretPosition = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public string promptText
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.promptText; }
 | 
						
						
						
							|  |  |             set { inputTextField.promptText = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 在移动设备上是否使用键盘输入。如果false,则文本在获得焦点后不会弹出键盘。
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public bool keyboardInput
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.keyboardInput; }
 | 
						
						
						
							|  |  |             set { inputTextField.keyboardInput = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// <see cref="UnityEngine.TouchScreenKeyboardType"/>
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public int keyboardType
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.keyboardType; }
 | 
						
						
						
							|  |  |             set { inputTextField.keyboardType = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public bool disableIME
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.disableIME; }
 | 
						
						
						
							|  |  |             set { inputTextField.disableIME = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public Dictionary<uint, Emoji> emojies
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.emojies; }
 | 
						
						
						
							|  |  |             set { inputTextField.emojies = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public int border
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.border; }
 | 
						
						
						
							|  |  |             set { inputTextField.border = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public int corner
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.corner; }
 | 
						
						
						
							|  |  |             set { inputTextField.corner = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public Color borderColor
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.borderColor; }
 | 
						
						
						
							|  |  |             set { inputTextField.borderColor = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public Color backgroundColor
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.backgroundColor; }
 | 
						
						
						
							|  |  |             set { inputTextField.backgroundColor = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         public bool mouseWheelEnabled
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             get { return inputTextField.mouseWheelEnabled; }
 | 
						
						
						
							|  |  |             set { inputTextField.mouseWheelEnabled = value; }
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         /// <param name="start"></param>
 | 
						
						
						
							|  |  |         /// <param name="length"></param>
 | 
						
						
						
							|  |  |         public void SetSelection(int start, int length)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             inputTextField.SetSelection(start, length);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         /// <summary>
 | 
						
						
						
							|  |  |         /// 
 | 
						
						
						
							|  |  |         /// </summary>
 | 
						
						
						
							|  |  |         /// <param name="value"></param>
 | 
						
						
						
							|  |  |         public void ReplaceSelection(string value)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             inputTextField.ReplaceSelection(value);
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         override protected void SetTextFieldText()
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             inputTextField.text = _text;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         override protected void CreateDisplayObject()
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             inputTextField = new InputTextField();
 | 
						
						
						
							|  |  |             inputTextField.gOwner = this;
 | 
						
						
						
							|  |  |             displayObject = inputTextField;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             _textField = inputTextField.textField;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         public override void Setup_BeforeAdd(ByteBuffer buffer, int beginPos)
 | 
						
						
						
							|  |  |         {
 | 
						
						
						
							|  |  |             base.Setup_BeforeAdd(buffer, beginPos);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             buffer.Seek(beginPos, 4);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             string str = buffer.ReadS();
 | 
						
						
						
							|  |  |             if (str != null)
 | 
						
						
						
							|  |  |                 inputTextField.promptText = str;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             str = buffer.ReadS();
 | 
						
						
						
							|  |  |             if (str != null)
 | 
						
						
						
							|  |  |                 inputTextField.restrict = str;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |             int iv = buffer.ReadInt();
 | 
						
						
						
							|  |  |             if (iv != 0)
 | 
						
						
						
							|  |  |                 inputTextField.maxLength = iv;
 | 
						
						
						
							|  |  |             iv = buffer.ReadInt();
 | 
						
						
						
							|  |  |             if (iv != 0)
 | 
						
						
						
							|  |  |                 inputTextField.keyboardType = iv;
 | 
						
						
						
							|  |  |             if (buffer.ReadBool())
 | 
						
						
						
							|  |  |                 inputTextField.displayAsPassword = true;
 | 
						
						
						
							|  |  |         }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | } |