CTT/Unity/Assets/ThirdParty/FairyGUI/Scripts/UI/GTextInput.cs

213 lines
4.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System.Collections.Generic;
using FairyGUI.Utils;
namespace FairyGUI
{
/// <summary>
///
/// </summary>
public class GTextInput : GTextField
{
/// <summary>
///
/// </summary>
public InputTextField inputTextField { get; private set; }
EventListener _onFocusIn;
EventListener _onFocusOut;
EventListener _onChanged;
EventListener _onSubmit;
public GTextInput()
{
this.focusable = true;
_textField.autoSize = AutoSizeType.None;
_textField.wordWrap = false;
}
/// <summary>
///
/// </summary>
public EventListener onFocusIn
{
get { return _onFocusIn ?? (_onFocusIn = new EventListener(this, "onFocusIn")); }
}
/// <summary>
///
/// </summary>
public EventListener onFocusOut
{
get { return _onFocusOut ?? (_onFocusOut = new EventListener(this, "onFocusOut")); }
}
/// <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 Dictionary<uint, Emoji> emojies
{
get { return inputTextField.emojies; }
set { inputTextField.emojies = 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 GetTextFieldText()
{
_text = inputTextField.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;
}
}
}