using System; using System.Collections; using System.Collections.Generic; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.Serialization; namespace UnityEngine.UI { // Token: 0x02000058 RID: 88 [AddComponentMenu("UI/Input Field", 31)] public class InputField : Selectable, IUpdateSelectedHandler, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerClickHandler, ISubmitHandler, ICanvasElement, ILayoutElement, IEventSystemHandler { // Token: 0x060002AF RID: 687 RVA: 0x0000FA34 File Offset: 0x0000DE34 protected InputField() { this.EnforceTextHOverflow(); } // Token: 0x170000BB RID: 187 // (get) Token: 0x060002B0 RID: 688 RVA: 0x0000FB90 File Offset: 0x0000DF90 private BaseInput input { get { BaseInput baseInput; if (EventSystem.current && EventSystem.current.currentInputModule) { baseInput = EventSystem.current.currentInputModule.input; } else { baseInput = null; } return baseInput; } } // Token: 0x170000BC RID: 188 // (get) Token: 0x060002B1 RID: 689 RVA: 0x0000FBE0 File Offset: 0x0000DFE0 private string compositionString { get { return (!(this.input != null)) ? Input.compositionString : this.input.compositionString; } } // Token: 0x170000BD RID: 189 // (get) Token: 0x060002B2 RID: 690 RVA: 0x0000FC1C File Offset: 0x0000E01C protected Mesh mesh { get { if (this.m_Mesh == null) { this.m_Mesh = new Mesh(); } return this.m_Mesh; } } // Token: 0x170000BE RID: 190 // (get) Token: 0x060002B3 RID: 691 RVA: 0x0000FC54 File Offset: 0x0000E054 protected TextGenerator cachedInputTextGenerator { get { if (this.m_InputTextCache == null) { this.m_InputTextCache = new TextGenerator(); } return this.m_InputTextCache; } } // Token: 0x170000BF RID: 191 // (get) Token: 0x060002B5 RID: 693 RVA: 0x0000FC98 File Offset: 0x0000E098 // (set) Token: 0x060002B4 RID: 692 RVA: 0x0000FC85 File Offset: 0x0000E085 public bool shouldHideMobileInput { get { RuntimePlatform platform = Application.platform; switch (platform) { case RuntimePlatform.IPhonePlayer: case RuntimePlatform.Android: break; default: if (platform != RuntimePlatform.TizenPlayer && platform != RuntimePlatform.tvOS) { return true; } break; } return this.m_HideMobileInput; } set { SetPropertyUtility.SetStruct(ref this.m_HideMobileInput, value); } } // Token: 0x170000C0 RID: 192 // (get) Token: 0x060002B6 RID: 694 RVA: 0x0000FCF0 File Offset: 0x0000E0F0 private bool shouldActivateOnSelect { get { return Application.platform != RuntimePlatform.tvOS; } } // Token: 0x170000C1 RID: 193 // (get) Token: 0x060002B7 RID: 695 RVA: 0x0000FD14 File Offset: 0x0000E114 // (set) Token: 0x060002B8 RID: 696 RVA: 0x0000FD30 File Offset: 0x0000E130 public string text { get { return this.m_Text; } set { if (!(this.text == value)) { if (value == null) { value = ""; } value = value.Replace("\0", string.Empty); if (this.m_LineType == InputField.LineType.SingleLine) { value = value.Replace("\n", "").Replace("\t", ""); } if (this.onValidateInput != null || this.characterValidation != InputField.CharacterValidation.None) { this.m_Text = ""; InputField.OnValidateInput onValidateInput = this.onValidateInput ?? new InputField.OnValidateInput(this.Validate); this.m_CaretPosition = (this.m_CaretSelectPosition = value.Length); int num = ((this.characterLimit <= 0) ? value.Length : Math.Min(this.characterLimit, value.Length)); for (int i = 0; i < num; i++) { char c = onValidateInput(this.m_Text, this.m_Text.Length, value[i]); if (c != '\0') { this.m_Text += c; } } } else { this.m_Text = ((this.characterLimit <= 0 || value.Length <= this.characterLimit) ? value : value.Substring(0, this.characterLimit)); } if (this.m_Keyboard != null) { this.m_Keyboard.text = this.m_Text; } if (this.m_CaretPosition > this.m_Text.Length) { this.m_CaretPosition = (this.m_CaretSelectPosition = this.m_Text.Length); } else if (this.m_CaretSelectPosition > this.m_Text.Length) { this.m_CaretSelectPosition = this.m_Text.Length; } this.SendOnValueChangedAndUpdateLabel(); } } } // Token: 0x170000C2 RID: 194 // (get) Token: 0x060002B9 RID: 697 RVA: 0x0000FF28 File Offset: 0x0000E328 public bool isFocused { get { return this.m_AllowInput; } } // Token: 0x170000C3 RID: 195 // (get) Token: 0x060002BA RID: 698 RVA: 0x0000FF44 File Offset: 0x0000E344 // (set) Token: 0x060002BB RID: 699 RVA: 0x0000FF5F File Offset: 0x0000E35F public float caretBlinkRate { get { return this.m_CaretBlinkRate; } set { if (SetPropertyUtility.SetStruct(ref this.m_CaretBlinkRate, value)) { if (this.m_AllowInput) { this.SetCaretActive(); } } } } // Token: 0x170000C4 RID: 196 // (get) Token: 0x060002BC RID: 700 RVA: 0x0000FF88 File Offset: 0x0000E388 // (set) Token: 0x060002BD RID: 701 RVA: 0x0000FFA3 File Offset: 0x0000E3A3 public int caretWidth { get { return this.m_CaretWidth; } set { if (SetPropertyUtility.SetStruct(ref this.m_CaretWidth, value)) { this.MarkGeometryAsDirty(); } } } // Token: 0x170000C5 RID: 197 // (get) Token: 0x060002BE RID: 702 RVA: 0x0000FFC0 File Offset: 0x0000E3C0 // (set) Token: 0x060002BF RID: 703 RVA: 0x0000FFDC File Offset: 0x0000E3DC public Text textComponent { get { return this.m_TextComponent; } set { if (this.m_TextComponent != null) { this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty)); this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel)); this.m_TextComponent.UnregisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial)); } if (SetPropertyUtility.SetClass(ref this.m_TextComponent, value)) { this.EnforceTextHOverflow(); if (this.m_TextComponent != null) { this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty)); this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel)); this.m_TextComponent.RegisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial)); } } } } // Token: 0x170000C6 RID: 198 // (get) Token: 0x060002C0 RID: 704 RVA: 0x000100B4 File Offset: 0x0000E4B4 // (set) Token: 0x060002C1 RID: 705 RVA: 0x000100CF File Offset: 0x0000E4CF public Graphic placeholder { get { return this.m_Placeholder; } set { SetPropertyUtility.SetClass(ref this.m_Placeholder, value); } } // Token: 0x170000C7 RID: 199 // (get) Token: 0x060002C2 RID: 706 RVA: 0x000100E0 File Offset: 0x0000E4E0 // (set) Token: 0x060002C3 RID: 707 RVA: 0x00010116 File Offset: 0x0000E516 public Color caretColor { get { return (!this.customCaretColor) ? this.textComponent.color : this.m_CaretColor; } set { if (SetPropertyUtility.SetColor(ref this.m_CaretColor, value)) { this.MarkGeometryAsDirty(); } } } // Token: 0x170000C8 RID: 200 // (get) Token: 0x060002C4 RID: 708 RVA: 0x00010130 File Offset: 0x0000E530 // (set) Token: 0x060002C5 RID: 709 RVA: 0x0001014B File Offset: 0x0000E54B public bool customCaretColor { get { return this.m_CustomCaretColor; } set { if (this.m_CustomCaretColor != value) { this.m_CustomCaretColor = value; this.MarkGeometryAsDirty(); } } } // Token: 0x170000C9 RID: 201 // (get) Token: 0x060002C6 RID: 710 RVA: 0x0001016C File Offset: 0x0000E56C // (set) Token: 0x060002C7 RID: 711 RVA: 0x00010187 File Offset: 0x0000E587 public Color selectionColor { get { return this.m_SelectionColor; } set { if (SetPropertyUtility.SetColor(ref this.m_SelectionColor, value)) { this.MarkGeometryAsDirty(); } } } // Token: 0x170000CA RID: 202 // (get) Token: 0x060002C8 RID: 712 RVA: 0x000101A4 File Offset: 0x0000E5A4 // (set) Token: 0x060002C9 RID: 713 RVA: 0x000101BF File Offset: 0x0000E5BF public InputField.SubmitEvent onEndEdit { get { return this.m_OnEndEdit; } set { SetPropertyUtility.SetClass(ref this.m_OnEndEdit, value); } } // Token: 0x170000CB RID: 203 // (get) Token: 0x060002CA RID: 714 RVA: 0x000101D0 File Offset: 0x0000E5D0 // (set) Token: 0x060002CB RID: 715 RVA: 0x000101EB File Offset: 0x0000E5EB [Obsolete("onValueChange has been renamed to onValueChanged")] public InputField.OnChangeEvent onValueChange { get { return this.onValueChanged; } set { this.onValueChanged = value; } } // Token: 0x170000CC RID: 204 // (get) Token: 0x060002CC RID: 716 RVA: 0x000101F8 File Offset: 0x0000E5F8 // (set) Token: 0x060002CD RID: 717 RVA: 0x00010213 File Offset: 0x0000E613 public InputField.OnChangeEvent onValueChanged { get { return this.m_OnValueChanged; } set { SetPropertyUtility.SetClass(ref this.m_OnValueChanged, value); } } // Token: 0x170000CD RID: 205 // (get) Token: 0x060002CE RID: 718 RVA: 0x00010224 File Offset: 0x0000E624 // (set) Token: 0x060002CF RID: 719 RVA: 0x0001023F File Offset: 0x0000E63F public InputField.OnValidateInput onValidateInput { get { return this.m_OnValidateInput; } set { SetPropertyUtility.SetClass(ref this.m_OnValidateInput, value); } } // Token: 0x170000CE RID: 206 // (get) Token: 0x060002D0 RID: 720 RVA: 0x00010250 File Offset: 0x0000E650 // (set) Token: 0x060002D1 RID: 721 RVA: 0x0001026B File Offset: 0x0000E66B public int characterLimit { get { return this.m_CharacterLimit; } set { if (SetPropertyUtility.SetStruct(ref this.m_CharacterLimit, Math.Max(0, value))) { this.UpdateLabel(); } } } // Token: 0x170000CF RID: 207 // (get) Token: 0x060002D2 RID: 722 RVA: 0x0001028C File Offset: 0x0000E68C // (set) Token: 0x060002D3 RID: 723 RVA: 0x000102A7 File Offset: 0x0000E6A7 public InputField.ContentType contentType { get { return this.m_ContentType; } set { if (SetPropertyUtility.SetStruct(ref this.m_ContentType, value)) { this.EnforceContentType(); } } } // Token: 0x170000D0 RID: 208 // (get) Token: 0x060002D4 RID: 724 RVA: 0x000102C4 File Offset: 0x0000E6C4 // (set) Token: 0x060002D5 RID: 725 RVA: 0x000102DF File Offset: 0x0000E6DF public InputField.LineType lineType { get { return this.m_LineType; } set { if (SetPropertyUtility.SetStruct(ref this.m_LineType, value)) { this.SetToCustomIfContentTypeIsNot(new InputField.ContentType[] { InputField.ContentType.Standard, InputField.ContentType.Autocorrected }); this.EnforceTextHOverflow(); } } } // Token: 0x170000D1 RID: 209 // (get) Token: 0x060002D6 RID: 726 RVA: 0x0001030C File Offset: 0x0000E70C // (set) Token: 0x060002D7 RID: 727 RVA: 0x00010327 File Offset: 0x0000E727 public InputField.InputType inputType { get { return this.m_InputType; } set { if (SetPropertyUtility.SetStruct(ref this.m_InputType, value)) { this.SetToCustom(); } } } // Token: 0x170000D2 RID: 210 // (get) Token: 0x060002D8 RID: 728 RVA: 0x00010344 File Offset: 0x0000E744 // (set) Token: 0x060002D9 RID: 729 RVA: 0x0001035F File Offset: 0x0000E75F public TouchScreenKeyboardType keyboardType { get { return this.m_KeyboardType; } set { if (value == TouchScreenKeyboardType.NintendoNetworkAccount) { Debug.LogWarning("Invalid InputField.keyboardType value set. TouchScreenKeyboardType.NintendoNetworkAccount only applies to the Wii U. InputField.keyboardType will default to TouchScreenKeyboardType.Default ."); } if (SetPropertyUtility.SetStruct(ref this.m_KeyboardType, value)) { this.SetToCustom(); } } } // Token: 0x170000D3 RID: 211 // (get) Token: 0x060002DA RID: 730 RVA: 0x0001038C File Offset: 0x0000E78C // (set) Token: 0x060002DB RID: 731 RVA: 0x000103A7 File Offset: 0x0000E7A7 public InputField.CharacterValidation characterValidation { get { return this.m_CharacterValidation; } set { if (SetPropertyUtility.SetStruct(ref this.m_CharacterValidation, value)) { this.SetToCustom(); } } } // Token: 0x170000D4 RID: 212 // (get) Token: 0x060002DC RID: 732 RVA: 0x000103C4 File Offset: 0x0000E7C4 // (set) Token: 0x060002DD RID: 733 RVA: 0x000103DF File Offset: 0x0000E7DF public bool readOnly { get { return this.m_ReadOnly; } set { this.m_ReadOnly = value; } } // Token: 0x170000D5 RID: 213 // (get) Token: 0x060002DE RID: 734 RVA: 0x000103EC File Offset: 0x0000E7EC public bool multiLine { get { return this.m_LineType == InputField.LineType.MultiLineNewline || this.lineType == InputField.LineType.MultiLineSubmit; } } // Token: 0x170000D6 RID: 214 // (get) Token: 0x060002DF RID: 735 RVA: 0x0001041C File Offset: 0x0000E81C // (set) Token: 0x060002E0 RID: 736 RVA: 0x00010437 File Offset: 0x0000E837 public char asteriskChar { get { return this.m_AsteriskChar; } set { if (SetPropertyUtility.SetStruct(ref this.m_AsteriskChar, value)) { this.UpdateLabel(); } } } // Token: 0x170000D7 RID: 215 // (get) Token: 0x060002E1 RID: 737 RVA: 0x00010454 File Offset: 0x0000E854 public bool wasCanceled { get { return this.m_WasCanceled; } } // Token: 0x060002E2 RID: 738 RVA: 0x0001046F File Offset: 0x0000E86F protected void ClampPos(ref int pos) { if (pos < 0) { pos = 0; } else if (pos > this.text.Length) { pos = this.text.Length; } } // Token: 0x170000D8 RID: 216 // (get) Token: 0x060002E3 RID: 739 RVA: 0x000104A4 File Offset: 0x0000E8A4 // (set) Token: 0x060002E4 RID: 740 RVA: 0x000104CB File Offset: 0x0000E8CB protected int caretPositionInternal { get { return this.m_CaretPosition + this.compositionString.Length; } set { this.m_CaretPosition = value; this.ClampPos(ref this.m_CaretPosition); } } // Token: 0x170000D9 RID: 217 // (get) Token: 0x060002E5 RID: 741 RVA: 0x000104E4 File Offset: 0x0000E8E4 // (set) Token: 0x060002E6 RID: 742 RVA: 0x0001050B File Offset: 0x0000E90B protected int caretSelectPositionInternal { get { return this.m_CaretSelectPosition + this.compositionString.Length; } set { this.m_CaretSelectPosition = value; this.ClampPos(ref this.m_CaretSelectPosition); } } // Token: 0x170000DA RID: 218 // (get) Token: 0x060002E7 RID: 743 RVA: 0x00010524 File Offset: 0x0000E924 private bool hasSelection { get { return this.caretPositionInternal != this.caretSelectPositionInternal; } } // Token: 0x170000DB RID: 219 // (get) Token: 0x060002E8 RID: 744 RVA: 0x0001054C File Offset: 0x0000E94C // (set) Token: 0x060002E9 RID: 745 RVA: 0x00010573 File Offset: 0x0000E973 public int caretPosition { get { return this.m_CaretSelectPosition + this.compositionString.Length; } set { this.selectionAnchorPosition = value; this.selectionFocusPosition = value; } } // Token: 0x170000DC RID: 220 // (get) Token: 0x060002EA RID: 746 RVA: 0x00010584 File Offset: 0x0000E984 // (set) Token: 0x060002EB RID: 747 RVA: 0x000105AB File Offset: 0x0000E9AB public int selectionAnchorPosition { get { return this.m_CaretPosition + this.compositionString.Length; } set { if (this.compositionString.Length == 0) { this.m_CaretPosition = value; this.ClampPos(ref this.m_CaretPosition); } } } // Token: 0x170000DD RID: 221 // (get) Token: 0x060002EC RID: 748 RVA: 0x000105D8 File Offset: 0x0000E9D8 // (set) Token: 0x060002ED RID: 749 RVA: 0x000105FF File Offset: 0x0000E9FF public int selectionFocusPosition { get { return this.m_CaretSelectPosition + this.compositionString.Length; } set { if (this.compositionString.Length == 0) { this.m_CaretSelectPosition = value; this.ClampPos(ref this.m_CaretSelectPosition); } } } // Token: 0x060002EE RID: 750 RVA: 0x0001062C File Offset: 0x0000EA2C protected override void OnEnable() { base.OnEnable(); if (this.m_Text == null) { this.m_Text = string.Empty; } this.m_DrawStart = 0; this.m_DrawEnd = this.m_Text.Length; if (this.m_CachedInputRenderer != null) { this.m_CachedInputRenderer.SetMaterial(this.m_TextComponent.GetModifiedMaterial(Graphic.defaultGraphicMaterial), Texture2D.whiteTexture); } if (this.m_TextComponent != null) { this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty)); this.m_TextComponent.RegisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel)); this.m_TextComponent.RegisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial)); this.UpdateLabel(); } } // Token: 0x060002EF RID: 751 RVA: 0x00010700 File Offset: 0x0000EB00 protected override void OnDisable() { this.m_BlinkCoroutine = null; this.DeactivateInputField(); if (this.m_TextComponent != null) { this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.MarkGeometryAsDirty)); this.m_TextComponent.UnregisterDirtyVerticesCallback(new UnityAction(this.UpdateLabel)); this.m_TextComponent.UnregisterDirtyMaterialCallback(new UnityAction(this.UpdateCaretMaterial)); } CanvasUpdateRegistry.UnRegisterCanvasElementForRebuild(this); if (this.m_CachedInputRenderer != null) { this.m_CachedInputRenderer.Clear(); } if (this.m_Mesh != null) { Object.DestroyImmediate(this.m_Mesh); } this.m_Mesh = null; base.OnDisable(); } // Token: 0x060002F0 RID: 752 RVA: 0x000107C0 File Offset: 0x0000EBC0 private IEnumerator CaretBlink() { this.m_CaretVisible = true; yield return null; while (this.isFocused && this.m_CaretBlinkRate > 0f) { float blinkPeriod = 1f / this.m_CaretBlinkRate; bool blinkState = (Time.unscaledTime - this.m_BlinkStartTime) % blinkPeriod < blinkPeriod / 2f; if (this.m_CaretVisible != blinkState) { this.m_CaretVisible = blinkState; if (!this.hasSelection) { this.MarkGeometryAsDirty(); } } yield return null; } this.m_BlinkCoroutine = null; yield break; } // Token: 0x060002F1 RID: 753 RVA: 0x000107E2 File Offset: 0x0000EBE2 private void SetCaretVisible() { if (this.m_AllowInput) { this.m_CaretVisible = true; this.m_BlinkStartTime = Time.unscaledTime; this.SetCaretActive(); } } // Token: 0x060002F2 RID: 754 RVA: 0x00010810 File Offset: 0x0000EC10 private void SetCaretActive() { if (this.m_AllowInput) { if (this.m_CaretBlinkRate > 0f) { if (this.m_BlinkCoroutine == null) { this.m_BlinkCoroutine = base.StartCoroutine(this.CaretBlink()); } } else { this.m_CaretVisible = true; } } } // Token: 0x060002F3 RID: 755 RVA: 0x0001086C File Offset: 0x0000EC6C private void UpdateCaretMaterial() { if (this.m_TextComponent != null && this.m_CachedInputRenderer != null) { this.m_CachedInputRenderer.SetMaterial(this.m_TextComponent.GetModifiedMaterial(Graphic.defaultGraphicMaterial), Texture2D.whiteTexture); } } // Token: 0x060002F4 RID: 756 RVA: 0x000108BC File Offset: 0x0000ECBC protected void OnFocus() { this.SelectAll(); } // Token: 0x060002F5 RID: 757 RVA: 0x000108C5 File Offset: 0x0000ECC5 protected void SelectAll() { this.caretPositionInternal = this.text.Length; this.caretSelectPositionInternal = 0; } // Token: 0x060002F6 RID: 758 RVA: 0x000108E0 File Offset: 0x0000ECE0 public void MoveTextEnd(bool shift) { int length = this.text.Length; if (shift) { this.caretSelectPositionInternal = length; } else { this.caretPositionInternal = length; this.caretSelectPositionInternal = this.caretPositionInternal; } this.UpdateLabel(); } // Token: 0x060002F7 RID: 759 RVA: 0x0001092C File Offset: 0x0000ED2C public void MoveTextStart(bool shift) { int num = 0; if (shift) { this.caretSelectPositionInternal = num; } else { this.caretPositionInternal = num; this.caretSelectPositionInternal = this.caretPositionInternal; } this.UpdateLabel(); } // Token: 0x170000DE RID: 222 // (get) Token: 0x060002F8 RID: 760 RVA: 0x0001096C File Offset: 0x0000ED6C // (set) Token: 0x060002F9 RID: 761 RVA: 0x00010986 File Offset: 0x0000ED86 private static string clipboard { get { return GUIUtility.systemCopyBuffer; } set { GUIUtility.systemCopyBuffer = value; } } // Token: 0x060002FA RID: 762 RVA: 0x00010990 File Offset: 0x0000ED90 private bool InPlaceEditing() { return !TouchScreenKeyboard.isSupported; } // Token: 0x060002FB RID: 763 RVA: 0x000109B0 File Offset: 0x0000EDB0 private void UpdateCaretFromKeyboard() { RangeInt selection = this.m_Keyboard.selection; int start = selection.start; int end = selection.end; bool flag = false; if (this.caretPositionInternal != start) { flag = true; this.caretPositionInternal = start; } if (this.caretSelectPositionInternal != end) { this.caretSelectPositionInternal = end; flag = true; } if (flag) { this.m_BlinkStartTime = Time.unscaledTime; this.UpdateLabel(); } } // Token: 0x060002FC RID: 764 RVA: 0x00010A24 File Offset: 0x0000EE24 protected virtual void LateUpdate() { if (this.m_ShouldActivateNextUpdate) { if (!this.isFocused) { this.ActivateInputFieldInternal(); this.m_ShouldActivateNextUpdate = false; return; } this.m_ShouldActivateNextUpdate = false; } if (!this.InPlaceEditing() && this.isFocused) { this.AssignPositioningIfNeeded(); if (this.m_Keyboard == null || this.m_Keyboard.done) { if (this.m_Keyboard != null) { if (!this.m_ReadOnly) { this.text = this.m_Keyboard.text; } if (this.m_Keyboard.wasCanceled) { this.m_WasCanceled = true; } } this.OnDeselect(null); } else { string text = this.m_Keyboard.text; if (this.m_Text != text) { if (this.m_ReadOnly) { this.m_Keyboard.text = this.m_Text; } else { this.m_Text = ""; foreach (char c in text) { if (c == '\r' || c == '\u0003') { c = '\n'; } if (this.onValidateInput != null) { c = this.onValidateInput(this.m_Text, this.m_Text.Length, c); } else if (this.characterValidation != InputField.CharacterValidation.None) { c = this.Validate(this.m_Text, this.m_Text.Length, c); } if (this.lineType == InputField.LineType.MultiLineSubmit && c == '\n') { this.m_Keyboard.text = this.m_Text; this.OnDeselect(null); return; } if (c != '\0') { this.m_Text += c; } } if (this.characterLimit > 0 && this.m_Text.Length > this.characterLimit) { this.m_Text = this.m_Text.Substring(0, this.characterLimit); } if (this.m_Keyboard.canGetSelection) { this.UpdateCaretFromKeyboard(); } else { int length = this.m_Text.Length; this.caretSelectPositionInternal = length; this.caretPositionInternal = length; } if (this.m_Text != text) { this.m_Keyboard.text = this.m_Text; } this.SendOnValueChangedAndUpdateLabel(); } } else if (this.m_Keyboard.canGetSelection) { this.UpdateCaretFromKeyboard(); } if (this.m_Keyboard.done) { if (this.m_Keyboard.wasCanceled) { this.m_WasCanceled = true; } this.OnDeselect(null); } } } } // Token: 0x060002FD RID: 765 RVA: 0x00010CF8 File Offset: 0x0000F0F8 [Obsolete("This function is no longer used. Please use RectTransformUtility.ScreenPointToLocalPointInRectangle() instead.")] public Vector2 ScreenToLocal(Vector2 screen) { Canvas canvas = this.m_TextComponent.canvas; Vector2 vector; if (canvas == null) { vector = screen; } else { Vector3 vector2 = Vector3.zero; if (canvas.renderMode == RenderMode.ScreenSpaceOverlay) { vector2 = this.m_TextComponent.transform.InverseTransformPoint(screen); } else if (canvas.worldCamera != null) { Ray ray = canvas.worldCamera.ScreenPointToRay(screen); Plane plane = new Plane(this.m_TextComponent.transform.forward, this.m_TextComponent.transform.position); float num; plane.Raycast(ray, out num); vector2 = this.m_TextComponent.transform.InverseTransformPoint(ray.GetPoint(num)); } vector = new Vector2(vector2.x, vector2.y); } return vector; } // Token: 0x060002FE RID: 766 RVA: 0x00010DE0 File Offset: 0x0000F1E0 private int GetUnclampedCharacterLineFromPosition(Vector2 pos, TextGenerator generator) { int num; if (!this.multiLine) { num = 0; } else { float num2 = pos.y * this.m_TextComponent.pixelsPerUnit; float num3 = 0f; int i = 0; while (i < generator.lineCount) { float topY = generator.lines[i].topY; float num4 = topY - (float)generator.lines[i].height; if (num2 > topY) { float num5 = topY - num3; if (num2 > topY - 0.5f * num5) { return i - 1; } return i; } else { if (num2 > num4) { return i; } num3 = num4; i++; } } num = generator.lineCount; } return num; } // Token: 0x060002FF RID: 767 RVA: 0x00010EB4 File Offset: 0x0000F2B4 protected int GetCharacterIndexFromPosition(Vector2 pos) { TextGenerator cachedTextGenerator = this.m_TextComponent.cachedTextGenerator; int num; if (cachedTextGenerator.lineCount == 0) { num = 0; } else { int unclampedCharacterLineFromPosition = this.GetUnclampedCharacterLineFromPosition(pos, cachedTextGenerator); if (unclampedCharacterLineFromPosition < 0) { num = 0; } else if (unclampedCharacterLineFromPosition >= cachedTextGenerator.lineCount) { num = cachedTextGenerator.characterCountVisible; } else { int startCharIdx = cachedTextGenerator.lines[unclampedCharacterLineFromPosition].startCharIdx; int lineEndPosition = InputField.GetLineEndPosition(cachedTextGenerator, unclampedCharacterLineFromPosition); for (int i = startCharIdx; i < lineEndPosition; i++) { if (i >= cachedTextGenerator.characterCountVisible) { break; } UICharInfo uicharInfo = cachedTextGenerator.characters[i]; Vector2 vector = uicharInfo.cursorPos / this.m_TextComponent.pixelsPerUnit; float num2 = pos.x - vector.x; float num3 = vector.x + uicharInfo.charWidth / this.m_TextComponent.pixelsPerUnit - pos.x; if (num2 < num3) { return i; } } num = lineEndPosition; } } return num; } // Token: 0x06000300 RID: 768 RVA: 0x00010FD4 File Offset: 0x0000F3D4 private bool MayDrag(PointerEventData eventData) { return this.IsActive() && this.IsInteractable() && eventData.button == PointerEventData.InputButton.Left && this.m_TextComponent != null && this.m_Keyboard == null; } // Token: 0x06000301 RID: 769 RVA: 0x00011027 File Offset: 0x0000F427 public virtual void OnBeginDrag(PointerEventData eventData) { if (this.MayDrag(eventData)) { this.m_UpdateDrag = true; } } // Token: 0x06000302 RID: 770 RVA: 0x00011044 File Offset: 0x0000F444 public virtual void OnDrag(PointerEventData eventData) { if (this.MayDrag(eventData)) { Vector2 vector; RectTransformUtility.ScreenPointToLocalPointInRectangle(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera, out vector); this.caretSelectPositionInternal = this.GetCharacterIndexFromPosition(vector) + this.m_DrawStart; this.MarkGeometryAsDirty(); this.m_DragPositionOutOfBounds = !RectTransformUtility.RectangleContainsScreenPoint(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera); if (this.m_DragPositionOutOfBounds && this.m_DragCoroutine == null) { this.m_DragCoroutine = base.StartCoroutine(this.MouseDragOutsideRect(eventData)); } eventData.Use(); } } // Token: 0x06000303 RID: 771 RVA: 0x000110F0 File Offset: 0x0000F4F0 private IEnumerator MouseDragOutsideRect(PointerEventData eventData) { while (this.m_UpdateDrag && this.m_DragPositionOutOfBounds) { Vector2 localMousePos; RectTransformUtility.ScreenPointToLocalPointInRectangle(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera, out localMousePos); Rect rect = this.textComponent.rectTransform.rect; if (this.multiLine) { if (localMousePos.y > rect.yMax) { this.MoveUp(true, true); } else if (localMousePos.y < rect.yMin) { this.MoveDown(true, true); } } else if (localMousePos.x < rect.xMin) { this.MoveLeft(true, false); } else if (localMousePos.x > rect.xMax) { this.MoveRight(true, false); } this.UpdateLabel(); float delay = ((!this.multiLine) ? 0.05f : 0.1f); yield return new WaitForSecondsRealtime(delay); } this.m_DragCoroutine = null; yield break; } // Token: 0x06000304 RID: 772 RVA: 0x00011119 File Offset: 0x0000F519 public virtual void OnEndDrag(PointerEventData eventData) { if (this.MayDrag(eventData)) { this.m_UpdateDrag = false; } } // Token: 0x06000305 RID: 773 RVA: 0x00011134 File Offset: 0x0000F534 public override void OnPointerDown(PointerEventData eventData) { if (this.MayDrag(eventData)) { EventSystem.current.SetSelectedGameObject(base.gameObject, eventData); bool allowInput = this.m_AllowInput; base.OnPointerDown(eventData); if (!this.InPlaceEditing()) { if (this.m_Keyboard == null || !this.m_Keyboard.active) { this.OnSelect(eventData); return; } } if (allowInput) { Vector2 vector; RectTransformUtility.ScreenPointToLocalPointInRectangle(this.textComponent.rectTransform, eventData.position, eventData.pressEventCamera, out vector); int num = this.GetCharacterIndexFromPosition(vector) + this.m_DrawStart; this.caretPositionInternal = num; this.caretSelectPositionInternal = num; } this.UpdateLabel(); eventData.Use(); } } // Token: 0x06000306 RID: 774 RVA: 0x000111F8 File Offset: 0x0000F5F8 protected InputField.EditState KeyPressed(Event evt) { EventModifiers modifiers = evt.modifiers; bool flag = ((SystemInfo.operatingSystemFamily != OperatingSystemFamily.MacOSX) ? ((modifiers & EventModifiers.Control) != EventModifiers.None) : ((modifiers & EventModifiers.Command) != EventModifiers.None)); bool flag2 = (modifiers & EventModifiers.Shift) != EventModifiers.None; bool flag3 = (modifiers & EventModifiers.Alt) != EventModifiers.None; bool flag4 = flag && !flag3 && !flag2; KeyCode keyCode = evt.keyCode; switch (keyCode) { case KeyCode.KeypadEnter: break; default: switch (keyCode) { case KeyCode.A: if (flag4) { this.SelectAll(); return InputField.EditState.Continue; } goto IL_24D; default: switch (keyCode) { case KeyCode.V: if (flag4) { this.Append(InputField.clipboard); return InputField.EditState.Continue; } goto IL_24D; default: if (keyCode == KeyCode.Backspace) { this.Backspace(); return InputField.EditState.Continue; } if (keyCode != KeyCode.Return) { if (keyCode == KeyCode.Escape) { this.m_WasCanceled = true; return InputField.EditState.Finish; } if (keyCode != KeyCode.Delete) { goto IL_24D; } this.ForwardSpace(); return InputField.EditState.Continue; } break; case KeyCode.X: if (flag4) { if (this.inputType != InputField.InputType.Password) { InputField.clipboard = this.GetSelectedString(); } else { InputField.clipboard = ""; } this.Delete(); this.SendOnValueChangedAndUpdateLabel(); return InputField.EditState.Continue; } goto IL_24D; } break; case KeyCode.C: if (flag4) { if (this.inputType != InputField.InputType.Password) { InputField.clipboard = this.GetSelectedString(); } else { InputField.clipboard = ""; } return InputField.EditState.Continue; } goto IL_24D; } break; case KeyCode.UpArrow: this.MoveUp(flag2); return InputField.EditState.Continue; case KeyCode.DownArrow: this.MoveDown(flag2); return InputField.EditState.Continue; case KeyCode.RightArrow: this.MoveRight(flag2, flag); return InputField.EditState.Continue; case KeyCode.LeftArrow: this.MoveLeft(flag2, flag); return InputField.EditState.Continue; case KeyCode.Home: this.MoveTextStart(flag2); return InputField.EditState.Continue; case KeyCode.End: this.MoveTextEnd(flag2); return InputField.EditState.Continue; } if (this.lineType != InputField.LineType.MultiLineNewline) { return InputField.EditState.Finish; } IL_24D: char c = evt.character; InputField.EditState editState; if (!this.multiLine && (c == '\t' || c == '\r' || c == '\n')) { editState = InputField.EditState.Continue; } else { if (c == '\r' || c == '\u0003') { c = '\n'; } if (this.IsValidChar(c)) { this.Append(c); } if (c == '\0') { if (this.compositionString.Length > 0) { this.UpdateLabel(); } } editState = InputField.EditState.Continue; } return editState; } // Token: 0x06000307 RID: 775 RVA: 0x000114E0 File Offset: 0x0000F8E0 private bool IsValidChar(char c) { return c != '\u007f' && (c == '\t' || c == '\n' || this.m_TextComponent.font.HasCharacter(c)); } // Token: 0x06000308 RID: 776 RVA: 0x0001152C File Offset: 0x0000F92C public void ProcessEvent(Event e) { this.KeyPressed(e); } // Token: 0x06000309 RID: 777 RVA: 0x00011538 File Offset: 0x0000F938 public virtual void OnUpdateSelected(BaseEventData eventData) { if (this.isFocused) { bool flag = false; while (Event.PopEvent(this.m_ProcessingEvent)) { if (this.m_ProcessingEvent.rawType == EventType.KeyDown) { flag = true; InputField.EditState editState = this.KeyPressed(this.m_ProcessingEvent); if (editState == InputField.EditState.Finish) { this.DeactivateInputField(); break; } } EventType type = this.m_ProcessingEvent.type; if (type == EventType.ValidateCommand || type == EventType.ExecuteCommand) { string commandName = this.m_ProcessingEvent.commandName; if (commandName != null) { if (commandName == "SelectAll") { this.SelectAll(); flag = true; } } } } if (flag) { this.UpdateLabel(); } eventData.Use(); } } // Token: 0x0600030A RID: 778 RVA: 0x00011610 File Offset: 0x0000FA10 private string GetSelectedString() { string text; if (!this.hasSelection) { text = ""; } else { int num = this.caretPositionInternal; int num2 = this.caretSelectPositionInternal; if (num > num2) { int num3 = num; num = num2; num2 = num3; } text = this.text.Substring(num, num2 - num); } return text; } // Token: 0x0600030B RID: 779 RVA: 0x00011668 File Offset: 0x0000FA68 private int FindtNextWordBegin() { int num; if (this.caretSelectPositionInternal + 1 >= this.text.Length) { num = this.text.Length; } else { int num2 = this.text.IndexOfAny(InputField.kSeparators, this.caretSelectPositionInternal + 1); if (num2 == -1) { num2 = this.text.Length; } else { num2++; } num = num2; } return num; } // Token: 0x0600030C RID: 780 RVA: 0x000116DC File Offset: 0x0000FADC private void MoveRight(bool shift, bool ctrl) { if (this.hasSelection && !shift) { int num = Mathf.Max(this.caretPositionInternal, this.caretSelectPositionInternal); this.caretSelectPositionInternal = num; this.caretPositionInternal = num; } else { int num2; if (ctrl) { num2 = this.FindtNextWordBegin(); } else { num2 = this.caretSelectPositionInternal + 1; } if (shift) { this.caretSelectPositionInternal = num2; } else { int num = num2; this.caretPositionInternal = num; this.caretSelectPositionInternal = num; } } } // Token: 0x0600030D RID: 781 RVA: 0x00011760 File Offset: 0x0000FB60 private int FindtPrevWordBegin() { int num; if (this.caretSelectPositionInternal - 2 < 0) { num = 0; } else { int num2 = this.text.LastIndexOfAny(InputField.kSeparators, this.caretSelectPositionInternal - 2); if (num2 == -1) { num2 = 0; } else { num2++; } num = num2; } return num; } // Token: 0x0600030E RID: 782 RVA: 0x000117B8 File Offset: 0x0000FBB8 private void MoveLeft(bool shift, bool ctrl) { if (this.hasSelection && !shift) { int num = Mathf.Min(this.caretPositionInternal, this.caretSelectPositionInternal); this.caretSelectPositionInternal = num; this.caretPositionInternal = num; } else { int num2; if (ctrl) { num2 = this.FindtPrevWordBegin(); } else { num2 = this.caretSelectPositionInternal - 1; } if (shift) { this.caretSelectPositionInternal = num2; } else { int num = num2; this.caretPositionInternal = num; this.caretSelectPositionInternal = num; } } } // Token: 0x0600030F RID: 783 RVA: 0x0001183C File Offset: 0x0000FC3C private int DetermineCharacterLine(int charPos, TextGenerator generator) { for (int i = 0; i < generator.lineCount - 1; i++) { if (generator.lines[i + 1].startCharIdx > charPos) { return i; } } return generator.lineCount - 1; } // Token: 0x06000310 RID: 784 RVA: 0x00011898 File Offset: 0x0000FC98 private int LineUpCharacterPosition(int originalPos, bool goToFirstChar) { int num; if (originalPos >= this.cachedInputTextGenerator.characters.Count) { num = 0; } else { UICharInfo uicharInfo = this.cachedInputTextGenerator.characters[originalPos]; int num2 = this.DetermineCharacterLine(originalPos, this.cachedInputTextGenerator); if (num2 <= 0) { num = ((!goToFirstChar) ? originalPos : 0); } else { int num3 = this.cachedInputTextGenerator.lines[num2].startCharIdx - 1; for (int i = this.cachedInputTextGenerator.lines[num2 - 1].startCharIdx; i < num3; i++) { if (this.cachedInputTextGenerator.characters[i].cursorPos.x >= uicharInfo.cursorPos.x) { return i; } } num = num3; } } return num; } // Token: 0x06000311 RID: 785 RVA: 0x00011990 File Offset: 0x0000FD90 private int LineDownCharacterPosition(int originalPos, bool goToLastChar) { int num; if (originalPos >= this.cachedInputTextGenerator.characterCountVisible) { num = this.text.Length; } else { UICharInfo uicharInfo = this.cachedInputTextGenerator.characters[originalPos]; int num2 = this.DetermineCharacterLine(originalPos, this.cachedInputTextGenerator); if (num2 + 1 >= this.cachedInputTextGenerator.lineCount) { num = ((!goToLastChar) ? originalPos : this.text.Length); } else { int lineEndPosition = InputField.GetLineEndPosition(this.cachedInputTextGenerator, num2 + 1); for (int i = this.cachedInputTextGenerator.lines[num2 + 1].startCharIdx; i < lineEndPosition; i++) { if (this.cachedInputTextGenerator.characters[i].cursorPos.x >= uicharInfo.cursorPos.x) { return i; } } num = lineEndPosition; } } return num; } // Token: 0x06000312 RID: 786 RVA: 0x00011A93 File Offset: 0x0000FE93 private void MoveDown(bool shift) { this.MoveDown(shift, true); } // Token: 0x06000313 RID: 787 RVA: 0x00011AA0 File Offset: 0x0000FEA0 private void MoveDown(bool shift, bool goToLastChar) { if (this.hasSelection && !shift) { int num = Mathf.Max(this.caretPositionInternal, this.caretSelectPositionInternal); this.caretSelectPositionInternal = num; this.caretPositionInternal = num; } int num2 = ((!this.multiLine) ? this.text.Length : this.LineDownCharacterPosition(this.caretSelectPositionInternal, goToLastChar)); if (shift) { this.caretSelectPositionInternal = num2; } else { int num = num2; this.caretSelectPositionInternal = num; this.caretPositionInternal = num; } } // Token: 0x06000314 RID: 788 RVA: 0x00011B2C File Offset: 0x0000FF2C private void MoveUp(bool shift) { this.MoveUp(shift, true); } // Token: 0x06000315 RID: 789 RVA: 0x00011B38 File Offset: 0x0000FF38 private void MoveUp(bool shift, bool goToFirstChar) { if (this.hasSelection && !shift) { int num = Mathf.Min(this.caretPositionInternal, this.caretSelectPositionInternal); this.caretSelectPositionInternal = num; this.caretPositionInternal = num; } int num2 = ((!this.multiLine) ? 0 : this.LineUpCharacterPosition(this.caretSelectPositionInternal, goToFirstChar)); if (shift) { this.caretSelectPositionInternal = num2; } else { int num = num2; this.caretPositionInternal = num; this.caretSelectPositionInternal = num; } } // Token: 0x06000316 RID: 790 RVA: 0x00011BBC File Offset: 0x0000FFBC private void Delete() { if (!this.m_ReadOnly) { if (this.caretPositionInternal != this.caretSelectPositionInternal) { if (this.caretPositionInternal < this.caretSelectPositionInternal) { this.m_Text = this.text.Substring(0, this.caretPositionInternal) + this.text.Substring(this.caretSelectPositionInternal, this.text.Length - this.caretSelectPositionInternal); this.caretSelectPositionInternal = this.caretPositionInternal; } else { this.m_Text = this.text.Substring(0, this.caretSelectPositionInternal) + this.text.Substring(this.caretPositionInternal, this.text.Length - this.caretPositionInternal); this.caretPositionInternal = this.caretSelectPositionInternal; } } } } // Token: 0x06000317 RID: 791 RVA: 0x00011CA4 File Offset: 0x000100A4 private void ForwardSpace() { if (!this.m_ReadOnly) { if (this.hasSelection) { this.Delete(); this.SendOnValueChangedAndUpdateLabel(); } else if (this.caretPositionInternal < this.text.Length) { this.m_Text = this.text.Remove(this.caretPositionInternal, 1); this.SendOnValueChangedAndUpdateLabel(); } } } // Token: 0x06000318 RID: 792 RVA: 0x00011D18 File Offset: 0x00010118 private void Backspace() { if (!this.m_ReadOnly) { if (this.hasSelection) { this.Delete(); this.SendOnValueChangedAndUpdateLabel(); } else if (this.caretPositionInternal > 0) { this.m_Text = this.text.Remove(this.caretPositionInternal - 1, 1); int num = this.caretPositionInternal - 1; this.caretPositionInternal = num; this.caretSelectPositionInternal = num; this.SendOnValueChangedAndUpdateLabel(); } } } // Token: 0x06000319 RID: 793 RVA: 0x00011D9C File Offset: 0x0001019C private void Insert(char c) { if (!this.m_ReadOnly) { string text = c.ToString(); this.Delete(); if (this.characterLimit <= 0 || this.text.Length < this.characterLimit) { this.m_Text = this.text.Insert(this.m_CaretPosition, text); this.caretSelectPositionInternal = (this.caretPositionInternal += text.Length); this.SendOnValueChanged(); } } } // Token: 0x0600031A RID: 794 RVA: 0x00011E2F File Offset: 0x0001022F private void SendOnValueChangedAndUpdateLabel() { this.SendOnValueChanged(); this.UpdateLabel(); } // Token: 0x0600031B RID: 795 RVA: 0x00011E3E File Offset: 0x0001023E private void SendOnValueChanged() { UISystemProfilerApi.AddMarker("InputField.value", this); if (this.onValueChanged != null) { this.onValueChanged.Invoke(this.text); } } // Token: 0x0600031C RID: 796 RVA: 0x00011E68 File Offset: 0x00010268 protected void SendOnSubmit() { UISystemProfilerApi.AddMarker("InputField.onSubmit", this); if (this.onEndEdit != null) { this.onEndEdit.Invoke(this.m_Text); } } // Token: 0x0600031D RID: 797 RVA: 0x00011E94 File Offset: 0x00010294 protected virtual void Append(string input) { if (!this.m_ReadOnly) { if (this.InPlaceEditing()) { int i = 0; int length = input.Length; while (i < length) { char c = input[i]; if (c >= ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\n') { this.Append(c); } i++; } } } } // Token: 0x0600031E RID: 798 RVA: 0x00011F18 File Offset: 0x00010318 protected virtual void Append(char input) { if (!this.m_ReadOnly) { if (this.InPlaceEditing()) { int num = Math.Min(this.selectionFocusPosition, this.selectionAnchorPosition); if (this.onValidateInput != null) { input = this.onValidateInput(this.text, num, input); } else if (this.characterValidation != InputField.CharacterValidation.None) { input = this.Validate(this.text, num, input); } if (input != '\0') { this.Insert(input); } } } } // Token: 0x0600031F RID: 799 RVA: 0x00011FAC File Offset: 0x000103AC protected void UpdateLabel() { if (this.m_TextComponent != null && this.m_TextComponent.font != null && !this.m_PreventFontCallback) { this.m_PreventFontCallback = true; string text; if (this.compositionString.Length > 0) { text = this.text.Substring(0, this.m_CaretPosition) + this.compositionString + this.text.Substring(this.m_CaretPosition); } else { text = this.text; } string text2; if (this.inputType == InputField.InputType.Password) { text2 = new string(this.asteriskChar, text.Length); } else { text2 = text; } bool flag = string.IsNullOrEmpty(text); if (this.m_Placeholder != null) { this.m_Placeholder.enabled = flag; } if (!this.m_AllowInput) { this.m_DrawStart = 0; this.m_DrawEnd = this.m_Text.Length; } if (!flag) { Vector2 size = this.m_TextComponent.rectTransform.rect.size; TextGenerationSettings generationSettings = this.m_TextComponent.GetGenerationSettings(size); generationSettings.generateOutOfBounds = true; this.cachedInputTextGenerator.PopulateWithErrors(text2, generationSettings, base.gameObject); this.SetDrawRangeToContainCaretPosition(this.caretSelectPositionInternal); text2 = text2.Substring(this.m_DrawStart, Mathf.Min(this.m_DrawEnd, text2.Length) - this.m_DrawStart); this.SetCaretVisible(); } this.m_TextComponent.text = text2; this.MarkGeometryAsDirty(); this.m_PreventFontCallback = false; } } // Token: 0x06000320 RID: 800 RVA: 0x0001214C File Offset: 0x0001054C private bool IsSelectionVisible() { return this.m_DrawStart <= this.caretPositionInternal && this.m_DrawStart <= this.caretSelectPositionInternal && this.m_DrawEnd >= this.caretPositionInternal && this.m_DrawEnd >= this.caretSelectPositionInternal; } // Token: 0x06000321 RID: 801 RVA: 0x000121B4 File Offset: 0x000105B4 private static int GetLineStartPosition(TextGenerator gen, int line) { line = Mathf.Clamp(line, 0, gen.lines.Count - 1); return gen.lines[line].startCharIdx; } // Token: 0x06000322 RID: 802 RVA: 0x000121F4 File Offset: 0x000105F4 private static int GetLineEndPosition(TextGenerator gen, int line) { line = Mathf.Max(line, 0); int num; if (line + 1 < gen.lines.Count) { num = gen.lines[line + 1].startCharIdx - 1; } else { num = gen.characterCountVisible; } return num; } // Token: 0x06000323 RID: 803 RVA: 0x0001224C File Offset: 0x0001064C private void SetDrawRangeToContainCaretPosition(int caretPos) { if (this.cachedInputTextGenerator.lineCount > 0) { Vector2 size = this.cachedInputTextGenerator.rectExtents.size; if (this.multiLine) { IList lines = this.cachedInputTextGenerator.lines; int num = this.DetermineCharacterLine(caretPos, this.cachedInputTextGenerator); if (caretPos > this.m_DrawEnd) { this.m_DrawEnd = InputField.GetLineEndPosition(this.cachedInputTextGenerator, num); float num2 = lines[num].topY - (float)lines[num].height; if (num == lines.Count - 1) { num2 += lines[num].leading; } int i; for (i = num; i > 0; i--) { float topY = lines[i - 1].topY; if (topY - num2 > size.y) { break; } } this.m_DrawStart = InputField.GetLineStartPosition(this.cachedInputTextGenerator, i); } else { if (caretPos < this.m_DrawStart) { this.m_DrawStart = InputField.GetLineStartPosition(this.cachedInputTextGenerator, num); } int j = this.DetermineCharacterLine(this.m_DrawStart, this.cachedInputTextGenerator); int k = j; float num3 = lines[j].topY; float num4 = lines[k].topY - (float)lines[k].height; if (k == lines.Count - 1) { num4 += lines[k].leading; } while (k < lines.Count - 1) { num4 = lines[k + 1].topY - (float)lines[k + 1].height; if (k + 1 == lines.Count - 1) { num4 += lines[k + 1].leading; } if (num3 - num4 > size.y) { break; } k++; } this.m_DrawEnd = InputField.GetLineEndPosition(this.cachedInputTextGenerator, k); while (j > 0) { num3 = lines[j - 1].topY; if (num3 - num4 > size.y) { break; } j--; } this.m_DrawStart = InputField.GetLineStartPosition(this.cachedInputTextGenerator, j); } } else { IList characters = this.cachedInputTextGenerator.characters; if (this.m_DrawEnd > this.cachedInputTextGenerator.characterCountVisible) { this.m_DrawEnd = this.cachedInputTextGenerator.characterCountVisible; } float num5 = 0f; if (caretPos > this.m_DrawEnd || (caretPos == this.m_DrawEnd && this.m_DrawStart > 0)) { this.m_DrawEnd = caretPos; this.m_DrawStart = this.m_DrawEnd - 1; while (this.m_DrawStart >= 0) { if (num5 + characters[this.m_DrawStart].charWidth > size.x) { break; } num5 += characters[this.m_DrawStart].charWidth; this.m_DrawStart--; } this.m_DrawStart++; } else { if (caretPos < this.m_DrawStart) { this.m_DrawStart = caretPos; } this.m_DrawEnd = this.m_DrawStart; } while (this.m_DrawEnd < this.cachedInputTextGenerator.characterCountVisible) { num5 += characters[this.m_DrawEnd].charWidth; if (num5 > size.x) { break; } this.m_DrawEnd++; } } } } // Token: 0x06000324 RID: 804 RVA: 0x00012666 File Offset: 0x00010A66 public void ForceLabelUpdate() { this.UpdateLabel(); } // Token: 0x06000325 RID: 805 RVA: 0x0001266F File Offset: 0x00010A6F private void MarkGeometryAsDirty() { CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild(this); } // Token: 0x06000326 RID: 806 RVA: 0x00012678 File Offset: 0x00010A78 public virtual void Rebuild(CanvasUpdate update) { if (update == CanvasUpdate.LatePreRender) { this.UpdateGeometry(); } } // Token: 0x06000327 RID: 807 RVA: 0x00012692 File Offset: 0x00010A92 public virtual void LayoutComplete() { } // Token: 0x06000328 RID: 808 RVA: 0x00012695 File Offset: 0x00010A95 public virtual void GraphicUpdateComplete() { } // Token: 0x06000329 RID: 809 RVA: 0x00012698 File Offset: 0x00010A98 private void UpdateGeometry() { if (this.shouldHideMobileInput) { if (this.m_CachedInputRenderer == null && this.m_TextComponent != null) { GameObject gameObject = new GameObject(base.transform.name + " Input Caret", new Type[] { typeof(RectTransform), typeof(CanvasRenderer) }); gameObject.hideFlags = HideFlags.DontSave; gameObject.transform.SetParent(this.m_TextComponent.transform.parent); gameObject.transform.SetAsFirstSibling(); gameObject.layer = base.gameObject.layer; this.caretRectTrans = gameObject.GetComponent(); this.m_CachedInputRenderer = gameObject.GetComponent(); this.m_CachedInputRenderer.SetMaterial(this.m_TextComponent.GetModifiedMaterial(Graphic.defaultGraphicMaterial), Texture2D.whiteTexture); gameObject.AddComponent().ignoreLayout = true; this.AssignPositioningIfNeeded(); } if (!(this.m_CachedInputRenderer == null)) { this.OnFillVBO(this.mesh); this.m_CachedInputRenderer.SetMesh(this.mesh); } } } // Token: 0x0600032A RID: 810 RVA: 0x000127D4 File Offset: 0x00010BD4 private void AssignPositioningIfNeeded() { if (this.m_TextComponent != null && this.caretRectTrans != null && (this.caretRectTrans.localPosition != this.m_TextComponent.rectTransform.localPosition || this.caretRectTrans.localRotation != this.m_TextComponent.rectTransform.localRotation || this.caretRectTrans.localScale != this.m_TextComponent.rectTransform.localScale || this.caretRectTrans.anchorMin != this.m_TextComponent.rectTransform.anchorMin || this.caretRectTrans.anchorMax != this.m_TextComponent.rectTransform.anchorMax || this.caretRectTrans.anchoredPosition != this.m_TextComponent.rectTransform.anchoredPosition || this.caretRectTrans.sizeDelta != this.m_TextComponent.rectTransform.sizeDelta || this.caretRectTrans.pivot != this.m_TextComponent.rectTransform.pivot)) { this.caretRectTrans.localPosition = this.m_TextComponent.rectTransform.localPosition; this.caretRectTrans.localRotation = this.m_TextComponent.rectTransform.localRotation; this.caretRectTrans.localScale = this.m_TextComponent.rectTransform.localScale; this.caretRectTrans.anchorMin = this.m_TextComponent.rectTransform.anchorMin; this.caretRectTrans.anchorMax = this.m_TextComponent.rectTransform.anchorMax; this.caretRectTrans.anchoredPosition = this.m_TextComponent.rectTransform.anchoredPosition; this.caretRectTrans.sizeDelta = this.m_TextComponent.rectTransform.sizeDelta; this.caretRectTrans.pivot = this.m_TextComponent.rectTransform.pivot; } } // Token: 0x0600032B RID: 811 RVA: 0x00012A08 File Offset: 0x00010E08 private void OnFillVBO(Mesh vbo) { using (VertexHelper vertexHelper = new VertexHelper()) { if (!this.isFocused) { vertexHelper.FillMesh(vbo); } else { Vector2 vector = this.m_TextComponent.PixelAdjustPoint(Vector2.zero); if (!this.hasSelection) { this.GenerateCaret(vertexHelper, vector); } else { this.GenerateHightlight(vertexHelper, vector); } vertexHelper.FillMesh(vbo); } } } // Token: 0x0600032C RID: 812 RVA: 0x00012A90 File Offset: 0x00010E90 private void GenerateCaret(VertexHelper vbo, Vector2 roundingOffset) { if (this.m_CaretVisible) { if (this.m_CursorVerts == null) { this.CreateCursorVerts(); } float num = (float)this.m_CaretWidth; int num2 = Mathf.Max(0, this.caretPositionInternal - this.m_DrawStart); TextGenerator cachedTextGenerator = this.m_TextComponent.cachedTextGenerator; if (cachedTextGenerator != null) { if (cachedTextGenerator.lineCount != 0) { Vector2 zero = Vector2.zero; if (num2 < cachedTextGenerator.characters.Count) { zero.x = cachedTextGenerator.characters[num2].cursorPos.x; } zero.x /= this.m_TextComponent.pixelsPerUnit; if (zero.x > this.m_TextComponent.rectTransform.rect.xMax) { zero.x = this.m_TextComponent.rectTransform.rect.xMax; } int num3 = this.DetermineCharacterLine(num2, cachedTextGenerator); zero.y = cachedTextGenerator.lines[num3].topY / this.m_TextComponent.pixelsPerUnit; float num4 = (float)cachedTextGenerator.lines[num3].height / this.m_TextComponent.pixelsPerUnit; for (int i = 0; i < this.m_CursorVerts.Length; i++) { this.m_CursorVerts[i].color = this.caretColor; } this.m_CursorVerts[0].position = new Vector3(zero.x, zero.y - num4, 0f); this.m_CursorVerts[1].position = new Vector3(zero.x + num, zero.y - num4, 0f); this.m_CursorVerts[2].position = new Vector3(zero.x + num, zero.y, 0f); this.m_CursorVerts[3].position = new Vector3(zero.x, zero.y, 0f); if (roundingOffset != Vector2.zero) { for (int j = 0; j < this.m_CursorVerts.Length; j++) { UIVertex uivertex = this.m_CursorVerts[j]; uivertex.position.x = uivertex.position.x + roundingOffset.x; uivertex.position.y = uivertex.position.y + roundingOffset.y; } } vbo.AddUIVertexQuad(this.m_CursorVerts); int num5 = Screen.height; int targetDisplay = this.m_TextComponent.canvas.targetDisplay; if (targetDisplay > 0 && targetDisplay < Display.displays.Length) { num5 = Display.displays[targetDisplay].renderingHeight; } zero.y = (float)num5 - zero.y; this.input.compositionCursorPos = zero; } } } } // Token: 0x0600032D RID: 813 RVA: 0x00012DC0 File Offset: 0x000111C0 private void CreateCursorVerts() { this.m_CursorVerts = new UIVertex[4]; for (int i = 0; i < this.m_CursorVerts.Length; i++) { this.m_CursorVerts[i] = UIVertex.simpleVert; this.m_CursorVerts[i].uv0 = Vector2.zero; } } // Token: 0x0600032E RID: 814 RVA: 0x00012E24 File Offset: 0x00011224 private void GenerateHightlight(VertexHelper vbo, Vector2 roundingOffset) { int num = Mathf.Max(0, this.caretPositionInternal - this.m_DrawStart); int num2 = Mathf.Max(0, this.caretSelectPositionInternal - this.m_DrawStart); if (num > num2) { int num3 = num; num = num2; num2 = num3; } num2--; TextGenerator cachedTextGenerator = this.m_TextComponent.cachedTextGenerator; if (cachedTextGenerator.lineCount > 0) { int num4 = this.DetermineCharacterLine(num, cachedTextGenerator); int num5 = InputField.GetLineEndPosition(cachedTextGenerator, num4); UIVertex simpleVert = UIVertex.simpleVert; simpleVert.uv0 = Vector2.zero; simpleVert.color = this.selectionColor; int num6 = num; while (num6 <= num2 && num6 < cachedTextGenerator.characterCount) { if (num6 == num5 || num6 == num2) { UICharInfo uicharInfo = cachedTextGenerator.characters[num]; UICharInfo uicharInfo2 = cachedTextGenerator.characters[num6]; Vector2 vector = new Vector2(uicharInfo.cursorPos.x / this.m_TextComponent.pixelsPerUnit, cachedTextGenerator.lines[num4].topY / this.m_TextComponent.pixelsPerUnit); Vector2 vector2 = new Vector2((uicharInfo2.cursorPos.x + uicharInfo2.charWidth) / this.m_TextComponent.pixelsPerUnit, vector.y - (float)cachedTextGenerator.lines[num4].height / this.m_TextComponent.pixelsPerUnit); if (vector2.x > this.m_TextComponent.rectTransform.rect.xMax || vector2.x < this.m_TextComponent.rectTransform.rect.xMin) { vector2.x = this.m_TextComponent.rectTransform.rect.xMax; } int currentVertCount = vbo.currentVertCount; simpleVert.position = new Vector3(vector.x, vector2.y, 0f) + roundingOffset; vbo.AddVert(simpleVert); simpleVert.position = new Vector3(vector2.x, vector2.y, 0f) + roundingOffset; vbo.AddVert(simpleVert); simpleVert.position = new Vector3(vector2.x, vector.y, 0f) + roundingOffset; vbo.AddVert(simpleVert); simpleVert.position = new Vector3(vector.x, vector.y, 0f) + roundingOffset; vbo.AddVert(simpleVert); vbo.AddTriangle(currentVertCount, currentVertCount + 1, currentVertCount + 2); vbo.AddTriangle(currentVertCount + 2, currentVertCount + 3, currentVertCount); num = num6 + 1; num4++; num5 = InputField.GetLineEndPosition(cachedTextGenerator, num4); } num6++; } } } // Token: 0x0600032F RID: 815 RVA: 0x0001311C File Offset: 0x0001151C protected char Validate(string text, int pos, char ch) { char c; if (this.characterValidation == InputField.CharacterValidation.None || !base.enabled) { c = ch; } else { if (this.characterValidation == InputField.CharacterValidation.Integer || this.characterValidation == InputField.CharacterValidation.Decimal) { bool flag = pos == 0 && text.Length > 0 && text[0] == '-'; bool flag2 = text.Length > 0 && text[0] == '-' && ((this.caretPositionInternal == 0 && this.caretSelectPositionInternal > 0) || (this.caretSelectPositionInternal == 0 && this.caretPositionInternal > 0)); bool flag3 = this.caretPositionInternal == 0 || this.caretSelectPositionInternal == 0; if (!flag || flag2) { if (ch >= '0' && ch <= '9') { return ch; } if (ch == '-' && (pos == 0 || flag3)) { return ch; } if (ch == '.' && this.characterValidation == InputField.CharacterValidation.Decimal && !text.Contains(".")) { return ch; } } } else if (this.characterValidation == InputField.CharacterValidation.Alphanumeric) { if (ch >= 'A' && ch <= 'Z') { return ch; } if (ch >= 'a' && ch <= 'z') { return ch; } if (ch >= '0' && ch <= '9') { return ch; } } else if (this.characterValidation == InputField.CharacterValidation.Name) { if (char.IsLetter(ch)) { if (char.IsLower(ch) && (pos == 0 || text[pos - 1] == ' ')) { return char.ToUpper(ch); } if (char.IsUpper(ch) && pos > 0 && text[pos - 1] != ' ' && text[pos - 1] != '\'') { return char.ToLower(ch); } return ch; } else { if (ch == '\'') { if (!text.Contains("'") && (pos <= 0 || (text[pos - 1] != ' ' && text[pos - 1] != '\'')) && (pos >= text.Length || (text[pos] != ' ' && text[pos] != '\''))) { return ch; } } if (ch == ' ') { if ((pos <= 0 || (text[pos - 1] != ' ' && text[pos - 1] != '\'')) && (pos >= text.Length || (text[pos] != ' ' && text[pos] != '\''))) { return ch; } } } } else if (this.characterValidation == InputField.CharacterValidation.EmailAddress) { if (ch >= 'A' && ch <= 'Z') { return ch; } if (ch >= 'a' && ch <= 'z') { return ch; } if (ch >= '0' && ch <= '9') { return ch; } if (ch == '@' && text.IndexOf('@') == -1) { return ch; } if ("!#$%&'*+-/=?^_`{|}~".IndexOf(ch) != -1) { return ch; } if (ch == '.') { char c2 = ((text.Length <= 0) ? ' ' : text[Mathf.Clamp(pos, 0, text.Length - 1)]); char c3 = ((text.Length <= 0) ? '\n' : text[Mathf.Clamp(pos + 1, 0, text.Length - 1)]); if (c2 != '.' && c3 != '.') { return ch; } } } c = '\0'; } return c; } // Token: 0x06000330 RID: 816 RVA: 0x00013520 File Offset: 0x00011920 public void ActivateInputField() { if (!(this.m_TextComponent == null) && !(this.m_TextComponent.font == null) && this.IsActive() && this.IsInteractable()) { if (this.isFocused) { if (this.m_Keyboard != null && !this.m_Keyboard.active) { this.m_Keyboard.active = true; this.m_Keyboard.text = this.m_Text; } } this.m_ShouldActivateNextUpdate = true; } } // Token: 0x06000331 RID: 817 RVA: 0x000135C0 File Offset: 0x000119C0 private void ActivateInputFieldInternal() { if (!(EventSystem.current == null)) { if (EventSystem.current.currentSelectedGameObject != base.gameObject) { EventSystem.current.SetSelectedGameObject(base.gameObject); } if (TouchScreenKeyboard.isSupported) { if (this.input.touchSupported) { TouchScreenKeyboard.hideInput = this.shouldHideMobileInput; } this.m_Keyboard = ((this.inputType != InputField.InputType.Password) ? TouchScreenKeyboard.Open(this.m_Text, this.keyboardType, this.inputType == InputField.InputType.AutoCorrect, this.multiLine) : TouchScreenKeyboard.Open(this.m_Text, this.keyboardType, false, this.multiLine, true)); this.MoveTextEnd(false); } else { this.input.imeCompositionMode = IMECompositionMode.On; this.OnFocus(); } this.m_AllowInput = true; this.m_OriginalText = this.text; this.m_WasCanceled = false; this.SetCaretVisible(); this.UpdateLabel(); } } // Token: 0x06000332 RID: 818 RVA: 0x000136CC File Offset: 0x00011ACC public override void OnSelect(BaseEventData eventData) { base.OnSelect(eventData); if (this.shouldActivateOnSelect) { this.ActivateInputField(); } } // Token: 0x06000333 RID: 819 RVA: 0x000136E7 File Offset: 0x00011AE7 public virtual void OnPointerClick(PointerEventData eventData) { if (eventData.button == PointerEventData.InputButton.Left) { this.ActivateInputField(); } } // Token: 0x06000334 RID: 820 RVA: 0x00013700 File Offset: 0x00011B00 public void DeactivateInputField() { if (this.m_AllowInput) { this.m_HasDoneFocusTransition = false; this.m_AllowInput = false; if (this.m_Placeholder != null) { this.m_Placeholder.enabled = string.IsNullOrEmpty(this.m_Text); } if (this.m_TextComponent != null && this.IsInteractable()) { if (this.m_WasCanceled) { this.text = this.m_OriginalText; } if (this.m_Keyboard != null) { this.m_Keyboard.active = false; this.m_Keyboard = null; } this.m_CaretPosition = (this.m_CaretSelectPosition = 0); this.SendOnSubmit(); this.input.imeCompositionMode = IMECompositionMode.Auto; } this.MarkGeometryAsDirty(); } } // Token: 0x06000335 RID: 821 RVA: 0x000137D0 File Offset: 0x00011BD0 public override void OnDeselect(BaseEventData eventData) { this.DeactivateInputField(); base.OnDeselect(eventData); } // Token: 0x06000336 RID: 822 RVA: 0x000137E0 File Offset: 0x00011BE0 public virtual void OnSubmit(BaseEventData eventData) { if (this.IsActive() && this.IsInteractable()) { if (!this.isFocused) { this.m_ShouldActivateNextUpdate = true; } } } // Token: 0x06000337 RID: 823 RVA: 0x00013810 File Offset: 0x00011C10 private void EnforceContentType() { switch (this.contentType) { case InputField.ContentType.Standard: this.m_InputType = InputField.InputType.Standard; this.m_KeyboardType = TouchScreenKeyboardType.Default; this.m_CharacterValidation = InputField.CharacterValidation.None; break; case InputField.ContentType.Autocorrected: this.m_InputType = InputField.InputType.AutoCorrect; this.m_KeyboardType = TouchScreenKeyboardType.Default; this.m_CharacterValidation = InputField.CharacterValidation.None; break; case InputField.ContentType.IntegerNumber: this.m_LineType = InputField.LineType.SingleLine; this.m_InputType = InputField.InputType.Standard; this.m_KeyboardType = TouchScreenKeyboardType.NumberPad; this.m_CharacterValidation = InputField.CharacterValidation.Integer; break; case InputField.ContentType.DecimalNumber: this.m_LineType = InputField.LineType.SingleLine; this.m_InputType = InputField.InputType.Standard; this.m_KeyboardType = TouchScreenKeyboardType.NumbersAndPunctuation; this.m_CharacterValidation = InputField.CharacterValidation.Decimal; break; case InputField.ContentType.Alphanumeric: this.m_LineType = InputField.LineType.SingleLine; this.m_InputType = InputField.InputType.Standard; this.m_KeyboardType = TouchScreenKeyboardType.ASCIICapable; this.m_CharacterValidation = InputField.CharacterValidation.Alphanumeric; break; case InputField.ContentType.Name: this.m_LineType = InputField.LineType.SingleLine; this.m_InputType = InputField.InputType.Standard; this.m_KeyboardType = TouchScreenKeyboardType.NamePhonePad; this.m_CharacterValidation = InputField.CharacterValidation.Name; break; case InputField.ContentType.EmailAddress: this.m_LineType = InputField.LineType.SingleLine; this.m_InputType = InputField.InputType.Standard; this.m_KeyboardType = TouchScreenKeyboardType.EmailAddress; this.m_CharacterValidation = InputField.CharacterValidation.EmailAddress; break; case InputField.ContentType.Password: this.m_LineType = InputField.LineType.SingleLine; this.m_InputType = InputField.InputType.Password; this.m_KeyboardType = TouchScreenKeyboardType.Default; this.m_CharacterValidation = InputField.CharacterValidation.None; break; case InputField.ContentType.Pin: this.m_LineType = InputField.LineType.SingleLine; this.m_InputType = InputField.InputType.Password; this.m_KeyboardType = TouchScreenKeyboardType.NumberPad; this.m_CharacterValidation = InputField.CharacterValidation.Integer; break; } this.EnforceTextHOverflow(); } // Token: 0x06000338 RID: 824 RVA: 0x00013984 File Offset: 0x00011D84 private void EnforceTextHOverflow() { if (this.m_TextComponent != null) { if (this.multiLine) { this.m_TextComponent.horizontalOverflow = HorizontalWrapMode.Wrap; } else { this.m_TextComponent.horizontalOverflow = HorizontalWrapMode.Overflow; } } } // Token: 0x06000339 RID: 825 RVA: 0x000139C0 File Offset: 0x00011DC0 private void SetToCustomIfContentTypeIsNot(params InputField.ContentType[] allowedContentTypes) { if (this.contentType != InputField.ContentType.Custom) { for (int i = 0; i < allowedContentTypes.Length; i++) { if (this.contentType == allowedContentTypes[i]) { return; } } this.contentType = InputField.ContentType.Custom; } } // Token: 0x0600033A RID: 826 RVA: 0x00013A0F File Offset: 0x00011E0F private void SetToCustom() { if (this.contentType != InputField.ContentType.Custom) { this.contentType = InputField.ContentType.Custom; } } // Token: 0x0600033B RID: 827 RVA: 0x00013A2C File Offset: 0x00011E2C protected override void DoStateTransition(Selectable.SelectionState state, bool instant) { if (this.m_HasDoneFocusTransition) { state = Selectable.SelectionState.Highlighted; } else if (state == Selectable.SelectionState.Pressed) { this.m_HasDoneFocusTransition = true; } base.DoStateTransition(state, instant); } // Token: 0x0600033C RID: 828 RVA: 0x00013A58 File Offset: 0x00011E58 public virtual void CalculateLayoutInputHorizontal() { } // Token: 0x0600033D RID: 829 RVA: 0x00013A5B File Offset: 0x00011E5B public virtual void CalculateLayoutInputVertical() { } // Token: 0x170000DF RID: 223 // (get) Token: 0x0600033E RID: 830 RVA: 0x00013A60 File Offset: 0x00011E60 public virtual float minWidth { get { return 0f; } } // Token: 0x170000E0 RID: 224 // (get) Token: 0x0600033F RID: 831 RVA: 0x00013A7C File Offset: 0x00011E7C public virtual float preferredWidth { get { float num; if (this.textComponent == null) { num = 0f; } else { TextGenerationSettings generationSettings = this.textComponent.GetGenerationSettings(Vector2.zero); num = this.textComponent.cachedTextGeneratorForLayout.GetPreferredWidth(this.m_Text, generationSettings) / this.textComponent.pixelsPerUnit; } return num; } } // Token: 0x170000E1 RID: 225 // (get) Token: 0x06000340 RID: 832 RVA: 0x00013AE4 File Offset: 0x00011EE4 public virtual float flexibleWidth { get { return -1f; } } // Token: 0x170000E2 RID: 226 // (get) Token: 0x06000341 RID: 833 RVA: 0x00013B00 File Offset: 0x00011F00 public virtual float minHeight { get { return 0f; } } // Token: 0x170000E3 RID: 227 // (get) Token: 0x06000342 RID: 834 RVA: 0x00013B1C File Offset: 0x00011F1C public virtual float preferredHeight { get { float num; if (this.textComponent == null) { num = 0f; } else { TextGenerationSettings generationSettings = this.textComponent.GetGenerationSettings(new Vector2(this.textComponent.rectTransform.rect.size.x, 0f)); num = this.textComponent.cachedTextGeneratorForLayout.GetPreferredHeight(this.m_Text, generationSettings) / this.textComponent.pixelsPerUnit; } return num; } } // Token: 0x170000E4 RID: 228 // (get) Token: 0x06000343 RID: 835 RVA: 0x00013BA8 File Offset: 0x00011FA8 public virtual float flexibleHeight { get { return -1f; } } // Token: 0x170000E5 RID: 229 // (get) Token: 0x06000344 RID: 836 RVA: 0x00013BC4 File Offset: 0x00011FC4 public virtual int layoutPriority { get { return 1; } } // Token: 0x06000346 RID: 838 RVA: 0x00013BF2 File Offset: 0x00011FF2 Transform ICanvasElement.get_transform() { return base.transform; } // Token: 0x04000157 RID: 343 protected TouchScreenKeyboard m_Keyboard; // Token: 0x04000158 RID: 344 private static readonly char[] kSeparators = new char[] { ' ', '.', ',', '\t', '\r', '\n' }; // Token: 0x04000159 RID: 345 [SerializeField] [FormerlySerializedAs("text")] protected Text m_TextComponent; // Token: 0x0400015A RID: 346 [SerializeField] protected Graphic m_Placeholder; // Token: 0x0400015B RID: 347 [SerializeField] private InputField.ContentType m_ContentType = InputField.ContentType.Standard; // Token: 0x0400015C RID: 348 [FormerlySerializedAs("inputType")] [SerializeField] private InputField.InputType m_InputType = InputField.InputType.Standard; // Token: 0x0400015D RID: 349 [FormerlySerializedAs("asteriskChar")] [SerializeField] private char m_AsteriskChar = '*'; // Token: 0x0400015E RID: 350 [FormerlySerializedAs("keyboardType")] [SerializeField] private TouchScreenKeyboardType m_KeyboardType = TouchScreenKeyboardType.Default; // Token: 0x0400015F RID: 351 [SerializeField] private InputField.LineType m_LineType = InputField.LineType.SingleLine; // Token: 0x04000160 RID: 352 [FormerlySerializedAs("hideMobileInput")] [SerializeField] private bool m_HideMobileInput = false; // Token: 0x04000161 RID: 353 [FormerlySerializedAs("validation")] [SerializeField] private InputField.CharacterValidation m_CharacterValidation = InputField.CharacterValidation.None; // Token: 0x04000162 RID: 354 [FormerlySerializedAs("characterLimit")] [SerializeField] private int m_CharacterLimit = 0; // Token: 0x04000163 RID: 355 [FormerlySerializedAs("onSubmit")] [FormerlySerializedAs("m_OnSubmit")] [FormerlySerializedAs("m_EndEdit")] [SerializeField] private InputField.SubmitEvent m_OnEndEdit = new InputField.SubmitEvent(); // Token: 0x04000164 RID: 356 [FormerlySerializedAs("onValueChange")] [FormerlySerializedAs("m_OnValueChange")] [SerializeField] private InputField.OnChangeEvent m_OnValueChanged = new InputField.OnChangeEvent(); // Token: 0x04000165 RID: 357 [FormerlySerializedAs("onValidateInput")] [SerializeField] private InputField.OnValidateInput m_OnValidateInput; // Token: 0x04000166 RID: 358 [SerializeField] private Color m_CaretColor = new Color(0.19607843f, 0.19607843f, 0.19607843f, 1f); // Token: 0x04000167 RID: 359 [SerializeField] private bool m_CustomCaretColor = false; // Token: 0x04000168 RID: 360 [FormerlySerializedAs("selectionColor")] [SerializeField] private Color m_SelectionColor = new Color(0.65882355f, 0.80784315f, 1f, 0.7529412f); // Token: 0x04000169 RID: 361 [SerializeField] [FormerlySerializedAs("mValue")] protected string m_Text = string.Empty; // Token: 0x0400016A RID: 362 [SerializeField] [Range(0f, 4f)] private float m_CaretBlinkRate = 0.85f; // Token: 0x0400016B RID: 363 [SerializeField] [Range(1f, 5f)] private int m_CaretWidth = 1; // Token: 0x0400016C RID: 364 [SerializeField] private bool m_ReadOnly = false; // Token: 0x0400016D RID: 365 protected int m_CaretPosition = 0; // Token: 0x0400016E RID: 366 protected int m_CaretSelectPosition = 0; // Token: 0x0400016F RID: 367 private RectTransform caretRectTrans = null; // Token: 0x04000170 RID: 368 protected UIVertex[] m_CursorVerts = null; // Token: 0x04000171 RID: 369 private TextGenerator m_InputTextCache; // Token: 0x04000172 RID: 370 private CanvasRenderer m_CachedInputRenderer; // Token: 0x04000173 RID: 371 private bool m_PreventFontCallback = false; // Token: 0x04000174 RID: 372 [NonSerialized] protected Mesh m_Mesh; // Token: 0x04000175 RID: 373 private bool m_AllowInput = false; // Token: 0x04000176 RID: 374 private bool m_ShouldActivateNextUpdate = false; // Token: 0x04000177 RID: 375 private bool m_UpdateDrag = false; // Token: 0x04000178 RID: 376 private bool m_DragPositionOutOfBounds = false; // Token: 0x04000179 RID: 377 private const float kHScrollSpeed = 0.05f; // Token: 0x0400017A RID: 378 private const float kVScrollSpeed = 0.1f; // Token: 0x0400017B RID: 379 protected bool m_CaretVisible; // Token: 0x0400017C RID: 380 private Coroutine m_BlinkCoroutine = null; // Token: 0x0400017D RID: 381 private float m_BlinkStartTime = 0f; // Token: 0x0400017E RID: 382 protected int m_DrawStart = 0; // Token: 0x0400017F RID: 383 protected int m_DrawEnd = 0; // Token: 0x04000180 RID: 384 private Coroutine m_DragCoroutine = null; // Token: 0x04000181 RID: 385 private string m_OriginalText = ""; // Token: 0x04000182 RID: 386 private bool m_WasCanceled = false; // Token: 0x04000183 RID: 387 private bool m_HasDoneFocusTransition = false; // Token: 0x04000184 RID: 388 private const string kEmailSpecialCharacters = "!#$%&'*+-/=?^_`{|}~"; // Token: 0x04000185 RID: 389 private Event m_ProcessingEvent = new Event(); // Token: 0x02000059 RID: 89 public enum ContentType { // Token: 0x04000187 RID: 391 Standard, // Token: 0x04000188 RID: 392 Autocorrected, // Token: 0x04000189 RID: 393 IntegerNumber, // Token: 0x0400018A RID: 394 DecimalNumber, // Token: 0x0400018B RID: 395 Alphanumeric, // Token: 0x0400018C RID: 396 Name, // Token: 0x0400018D RID: 397 EmailAddress, // Token: 0x0400018E RID: 398 Password, // Token: 0x0400018F RID: 399 Pin, // Token: 0x04000190 RID: 400 Custom } // Token: 0x0200005A RID: 90 public enum InputType { // Token: 0x04000192 RID: 402 Standard, // Token: 0x04000193 RID: 403 AutoCorrect, // Token: 0x04000194 RID: 404 Password } // Token: 0x0200005B RID: 91 public enum CharacterValidation { // Token: 0x04000196 RID: 406 None, // Token: 0x04000197 RID: 407 Integer, // Token: 0x04000198 RID: 408 Decimal, // Token: 0x04000199 RID: 409 Alphanumeric, // Token: 0x0400019A RID: 410 Name, // Token: 0x0400019B RID: 411 EmailAddress } // Token: 0x0200005C RID: 92 public enum LineType { // Token: 0x0400019D RID: 413 SingleLine, // Token: 0x0400019E RID: 414 MultiLineSubmit, // Token: 0x0400019F RID: 415 MultiLineNewline } // Token: 0x0200005D RID: 93 // (Invoke) Token: 0x06000348 RID: 840 public delegate char OnValidateInput(string text, int charIndex, char addedChar); // Token: 0x0200005E RID: 94 [Serializable] public class SubmitEvent : UnityEvent { } // Token: 0x0200005F RID: 95 [Serializable] public class OnChangeEvent : UnityEvent { } // Token: 0x02000060 RID: 96 protected enum EditState { // Token: 0x040001A1 RID: 417 Continue, // Token: 0x040001A2 RID: 418 Finish } } }