145 lines
3.8 KiB
C#
145 lines
3.8 KiB
C#
using System;
|
|
|
|
namespace UnityEngine.Experimental.UIElements
|
|
{
|
|
// Token: 0x0200032B RID: 811
|
|
internal class IMTouchScreenTextField : IMTextField
|
|
{
|
|
// Token: 0x06003303 RID: 13059 RVA: 0x0004F208 File Offset: 0x0004D408
|
|
public IMTouchScreenTextField()
|
|
{
|
|
this.secureText = string.Empty;
|
|
this.maskChar = '\0';
|
|
}
|
|
|
|
// Token: 0x17000B8C RID: 2956
|
|
// (get) Token: 0x06003304 RID: 13060 RVA: 0x0004F224 File Offset: 0x0004D424
|
|
// (set) Token: 0x06003305 RID: 13061 RVA: 0x0004F240 File Offset: 0x0004D440
|
|
public string secureText
|
|
{
|
|
get
|
|
{
|
|
return this.m_SecureText;
|
|
}
|
|
set
|
|
{
|
|
string text = value ?? string.Empty;
|
|
if (text != this.m_SecureText)
|
|
{
|
|
this.m_SecureText = text;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000B8D RID: 2957
|
|
// (get) Token: 0x06003306 RID: 13062 RVA: 0x0004F278 File Offset: 0x0004D478
|
|
// (set) Token: 0x06003307 RID: 13063 RVA: 0x0004F294 File Offset: 0x0004D494
|
|
public char maskChar
|
|
{
|
|
get
|
|
{
|
|
return this.m_MaskChar;
|
|
}
|
|
set
|
|
{
|
|
if (this.m_MaskChar != value)
|
|
{
|
|
this.m_MaskChar = value;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06003308 RID: 13064 RVA: 0x0004F2AC File Offset: 0x0004D4AC
|
|
public override bool OnGUI(Event evt)
|
|
{
|
|
base.SyncTextEditor();
|
|
bool flag = false;
|
|
EventType type = evt.type;
|
|
if (type != EventType.MouseDown)
|
|
{
|
|
if (type == EventType.Repaint)
|
|
{
|
|
this.DoRepaint(new StylePainter(evt.mousePosition));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
flag = this.DoMouseDown(new MouseEventArgs(evt.mousePosition, evt.clickCount, evt.modifiers));
|
|
}
|
|
if (flag)
|
|
{
|
|
evt.Use();
|
|
}
|
|
base.editor.UpdateScrollOffsetIfNeeded(evt);
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x06003309 RID: 13065 RVA: 0x0004F338 File Offset: 0x0004D538
|
|
protected override int DoGenerateControlID()
|
|
{
|
|
return GUIUtility.GetControlID("TouchScreenTextField".GetHashCode(), base.focusType, base.position);
|
|
}
|
|
|
|
// Token: 0x0600330A RID: 13066 RVA: 0x0004F368 File Offset: 0x0004D568
|
|
internal override void DoRepaint(IStylePainter args)
|
|
{
|
|
if (base.editor.keyboardOnScreen != null)
|
|
{
|
|
base.text = base.editor.keyboardOnScreen.text;
|
|
if (base.maxLength >= 0 && base.text != null && base.text.Length > base.maxLength)
|
|
{
|
|
base.text = base.text.Substring(0, base.maxLength);
|
|
}
|
|
if (base.editor.keyboardOnScreen.done)
|
|
{
|
|
base.editor.keyboardOnScreen = null;
|
|
GUI.changed = true;
|
|
}
|
|
}
|
|
string text = base.text;
|
|
if (!string.IsNullOrEmpty(this.secureText))
|
|
{
|
|
base.text = GUI.PasswordFieldGetStrToShow(text, this.maskChar);
|
|
}
|
|
base.style.Draw(base.position, GUIContent.Temp(base.text), base.id, false);
|
|
base.text = text;
|
|
}
|
|
|
|
// Token: 0x0600330B RID: 13067 RVA: 0x0004F460 File Offset: 0x0004D660
|
|
protected override bool DoMouseDown(MouseEventArgs args)
|
|
{
|
|
bool flag;
|
|
if (base.position.Contains(args.mousePosition))
|
|
{
|
|
GUIUtility.hotControl = base.id;
|
|
if (IMTouchScreenTextField.s_HotTextField != -1 && IMTouchScreenTextField.s_HotTextField != base.id)
|
|
{
|
|
TextEditor textEditor = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), IMTouchScreenTextField.s_HotTextField);
|
|
textEditor.keyboardOnScreen = null;
|
|
}
|
|
IMTouchScreenTextField.s_HotTextField = base.id;
|
|
if (GUIUtility.keyboardControl != base.id)
|
|
{
|
|
GUIUtility.keyboardControl = base.id;
|
|
}
|
|
base.editor.keyboardOnScreen = TouchScreenKeyboard.Open(string.IsNullOrEmpty(this.secureText) ? base.text : this.secureText, TouchScreenKeyboardType.Default, true, base.multiline, !string.IsNullOrEmpty(this.secureText));
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
flag = false;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x04000A6D RID: 2669
|
|
private static int s_HotTextField = -1;
|
|
|
|
// Token: 0x04000A6E RID: 2670
|
|
private string m_SecureText;
|
|
|
|
// Token: 0x04000A6F RID: 2671
|
|
private char m_MaskChar;
|
|
}
|
|
}
|