scripts
This commit is contained in:
@@ -0,0 +1,372 @@
|
||||
using System;
|
||||
|
||||
namespace UnityEngine.Experimental.UIElements
|
||||
{
|
||||
// Token: 0x02000352 RID: 850
|
||||
internal class KeyboardTextEditor : TextEditor
|
||||
{
|
||||
// Token: 0x06003404 RID: 13316 RVA: 0x00052DFC File Offset: 0x00050FFC
|
||||
public KeyboardTextEditor(TextField textField)
|
||||
: base(textField)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x06003405 RID: 13317 RVA: 0x00052E14 File Offset: 0x00051014
|
||||
public override EventPropagation HandleEvent(Event evt, VisualElement finalTarget)
|
||||
{
|
||||
base.SyncTextEditor();
|
||||
this.m_Changed = false;
|
||||
EventPropagation eventPropagation = EventPropagation.Continue;
|
||||
EventType type = evt.type;
|
||||
switch (type)
|
||||
{
|
||||
case EventType.MouseDown:
|
||||
eventPropagation = this.DoMouseDown(evt);
|
||||
break;
|
||||
case EventType.MouseUp:
|
||||
eventPropagation = this.DoMouseUp(evt);
|
||||
break;
|
||||
default:
|
||||
if (type != EventType.ValidateCommand)
|
||||
{
|
||||
if (type == EventType.ExecuteCommand)
|
||||
{
|
||||
eventPropagation = this.DoExecuteCommand(evt);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
eventPropagation = this.DoValidateCommand(evt);
|
||||
}
|
||||
break;
|
||||
case EventType.MouseDrag:
|
||||
eventPropagation = this.DoMouseDrag(evt);
|
||||
break;
|
||||
case EventType.KeyDown:
|
||||
eventPropagation = this.DoKeyDown(evt);
|
||||
break;
|
||||
}
|
||||
if (this.m_Changed)
|
||||
{
|
||||
if (base.maxLength >= 0 && base.text != null && base.text.Length > base.maxLength)
|
||||
{
|
||||
base.text = base.text.Substring(0, base.maxLength);
|
||||
}
|
||||
base.textField.text = base.text;
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
base.UpdateScrollOffset();
|
||||
return eventPropagation;
|
||||
}
|
||||
|
||||
// Token: 0x06003406 RID: 13318 RVA: 0x00052F28 File Offset: 0x00051128
|
||||
private EventPropagation DoMouseDown(Event evt)
|
||||
{
|
||||
this.TakeCapture();
|
||||
EventPropagation eventPropagation;
|
||||
if (!this.m_HasFocus)
|
||||
{
|
||||
this.m_HasFocus = true;
|
||||
base.MoveCursorToPosition_Internal(evt.mousePosition, evt.shift);
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (evt.clickCount == 2 && base.doubleClickSelectsWord)
|
||||
{
|
||||
base.SelectCurrentWord();
|
||||
base.DblClickSnap(TextEditor.DblClickSnapping.WORDS);
|
||||
base.MouseDragSelectsWholeWords(true);
|
||||
this.m_DragToPosition = false;
|
||||
}
|
||||
else if (evt.clickCount == 3 && base.tripleClickSelectsLine)
|
||||
{
|
||||
base.SelectCurrentParagraph();
|
||||
base.MouseDragSelectsWholeWords(true);
|
||||
base.DblClickSnap(TextEditor.DblClickSnapping.PARAGRAPHS);
|
||||
this.m_DragToPosition = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
base.MoveCursorToPosition_Internal(evt.mousePosition, evt.shift);
|
||||
this.m_SelectAllOnMouseUp = false;
|
||||
}
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
return eventPropagation;
|
||||
}
|
||||
|
||||
// Token: 0x06003407 RID: 13319 RVA: 0x00053000 File Offset: 0x00051200
|
||||
private EventPropagation DoMouseUp(Event evt)
|
||||
{
|
||||
EventPropagation eventPropagation;
|
||||
if (!this.HasCapture())
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.m_Dragged && this.m_DragToPosition)
|
||||
{
|
||||
base.MoveSelectionToAltCursor();
|
||||
}
|
||||
else if (this.m_PostPoneMove)
|
||||
{
|
||||
base.MoveCursorToPosition_Internal(evt.mousePosition, evt.shift);
|
||||
}
|
||||
else if (this.m_SelectAllOnMouseUp)
|
||||
{
|
||||
this.m_SelectAllOnMouseUp = false;
|
||||
}
|
||||
base.MouseDragSelectsWholeWords(false);
|
||||
this.ReleaseCapture();
|
||||
this.m_DragToPosition = true;
|
||||
this.m_Dragged = false;
|
||||
this.m_PostPoneMove = false;
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
return eventPropagation;
|
||||
}
|
||||
|
||||
// Token: 0x06003408 RID: 13320 RVA: 0x000530A8 File Offset: 0x000512A8
|
||||
private EventPropagation DoMouseDrag(Event evt)
|
||||
{
|
||||
EventPropagation eventPropagation;
|
||||
if (!this.HasCapture())
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!evt.shift && base.hasSelection && this.m_DragToPosition)
|
||||
{
|
||||
base.MoveAltCursorToPosition(Event.current.mousePosition);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (evt.shift)
|
||||
{
|
||||
base.MoveCursorToPosition_Internal(evt.mousePosition, evt.shift);
|
||||
}
|
||||
else
|
||||
{
|
||||
base.SelectToPosition(evt.mousePosition);
|
||||
}
|
||||
this.m_DragToPosition = false;
|
||||
this.m_SelectAllOnMouseUp = !base.hasSelection;
|
||||
}
|
||||
this.m_Dragged = true;
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
return eventPropagation;
|
||||
}
|
||||
|
||||
// Token: 0x06003409 RID: 13321 RVA: 0x0005315C File Offset: 0x0005135C
|
||||
private EventPropagation DoKeyDown(Event evt)
|
||||
{
|
||||
EventPropagation eventPropagation;
|
||||
if (!base.textField.hasFocus)
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else if (base.HandleKeyEvent(evt))
|
||||
{
|
||||
this.m_Changed = true;
|
||||
base.textField.text = base.text;
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
else if (evt.keyCode == KeyCode.Tab || evt.character == '\t')
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
char character = evt.character;
|
||||
if (character == '\n' && !this.multiline && !evt.alt)
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else if ((base.textField.font != null && base.textField.font.HasCharacter(character)) || character == '\n')
|
||||
{
|
||||
base.Insert(character);
|
||||
this.m_Changed = true;
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else if (character == '\0')
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Input.compositionString))
|
||||
{
|
||||
base.ReplaceSelection("");
|
||||
this.m_Changed = true;
|
||||
}
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
else
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
}
|
||||
return eventPropagation;
|
||||
}
|
||||
|
||||
// Token: 0x0600340A RID: 13322 RVA: 0x00053280 File Offset: 0x00051480
|
||||
private EventPropagation DoValidateCommand(Event evt)
|
||||
{
|
||||
EventPropagation eventPropagation;
|
||||
if (!base.textField.hasFocus)
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
string commandName = evt.commandName;
|
||||
if (commandName != null)
|
||||
{
|
||||
if (!(commandName == "Cut") && !(commandName == "Copy"))
|
||||
{
|
||||
if (!(commandName == "Paste"))
|
||||
{
|
||||
if (!(commandName == "SelectAll") && !(commandName == "Delete"))
|
||||
{
|
||||
if (!(commandName == "UndoRedoPerformed"))
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!base.CanPaste())
|
||||
{
|
||||
return EventPropagation.Continue;
|
||||
}
|
||||
}
|
||||
else if (!base.hasSelection)
|
||||
{
|
||||
return EventPropagation.Continue;
|
||||
}
|
||||
}
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
return eventPropagation;
|
||||
}
|
||||
|
||||
// Token: 0x0600340B RID: 13323 RVA: 0x00053358 File Offset: 0x00051558
|
||||
private EventPropagation DoExecuteCommand(Event evt)
|
||||
{
|
||||
bool flag = false;
|
||||
string text = base.text;
|
||||
EventPropagation eventPropagation;
|
||||
if (!base.textField.hasFocus)
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
string commandName = evt.commandName;
|
||||
if (commandName != null)
|
||||
{
|
||||
if (commandName == "OnLostFocus")
|
||||
{
|
||||
return EventPropagation.Stop;
|
||||
}
|
||||
if (!(commandName == "Cut"))
|
||||
{
|
||||
if (commandName == "Copy")
|
||||
{
|
||||
base.Copy();
|
||||
return EventPropagation.Stop;
|
||||
}
|
||||
if (!(commandName == "Paste"))
|
||||
{
|
||||
if (commandName == "SelectAll")
|
||||
{
|
||||
base.SelectAll();
|
||||
return EventPropagation.Stop;
|
||||
}
|
||||
if (commandName == "Delete")
|
||||
{
|
||||
if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX)
|
||||
{
|
||||
base.Delete();
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Cut();
|
||||
}
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Paste();
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
base.Cut();
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
if (text != base.text)
|
||||
{
|
||||
this.m_Changed = true;
|
||||
}
|
||||
eventPropagation = EventPropagation.Stop;
|
||||
}
|
||||
else
|
||||
{
|
||||
eventPropagation = EventPropagation.Continue;
|
||||
}
|
||||
}
|
||||
return eventPropagation;
|
||||
}
|
||||
|
||||
// Token: 0x0600340C RID: 13324 RVA: 0x00053488 File Offset: 0x00051688
|
||||
public void PreDrawCursor(string newText)
|
||||
{
|
||||
base.SyncTextEditor();
|
||||
this.m_PreDrawCursorText = base.text;
|
||||
int num = base.cursorIndex;
|
||||
if (!string.IsNullOrEmpty(Input.compositionString))
|
||||
{
|
||||
base.text = newText.Substring(0, base.cursorIndex) + Input.compositionString + newText.Substring(base.selectIndex);
|
||||
num += Input.compositionString.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
base.text = newText;
|
||||
}
|
||||
if (base.maxLength >= 0 && base.text != null && base.text.Length > base.maxLength)
|
||||
{
|
||||
base.text = base.text.Substring(0, base.maxLength);
|
||||
num = Math.Min(num, base.maxLength - 1);
|
||||
}
|
||||
this.graphicalCursorPos = this.style.GetCursorPixelPosition(this.localPosition, new GUIContent(base.text), num);
|
||||
}
|
||||
|
||||
// Token: 0x0600340D RID: 13325 RVA: 0x00053580 File Offset: 0x00051780
|
||||
public void PostDrawCursor()
|
||||
{
|
||||
base.text = this.m_PreDrawCursorText;
|
||||
}
|
||||
|
||||
// Token: 0x04000AF8 RID: 2808
|
||||
internal bool m_Changed;
|
||||
|
||||
// Token: 0x04000AF9 RID: 2809
|
||||
private bool m_Dragged;
|
||||
|
||||
// Token: 0x04000AFA RID: 2810
|
||||
private bool m_DragToPosition = true;
|
||||
|
||||
// Token: 0x04000AFB RID: 2811
|
||||
private bool m_PostPoneMove;
|
||||
|
||||
// Token: 0x04000AFC RID: 2812
|
||||
private bool m_SelectAllOnMouseUp = true;
|
||||
|
||||
// Token: 0x04000AFD RID: 2813
|
||||
private string m_PreDrawCursorText;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user