private static void TextClickDown(UICamera camera, UIInput input, UnityEngine.Event @event, UILabel label) { UITextPosition uITextPosition = ([email protected] ? camera.RaycastText(Input.mousePosition, label) : new UITextPosition()); TextEditor textEditor = null; UIUnityEvents.ChangeFocus(camera, input, label); if (UIUnityEvents.GetTextEditor(out textEditor)) { GUIUtility.hotControl = UIUnityEvents.controlID; UIUnityEvents.SetKeyboardControl(); UIUnityEvents.MoveTextPosition(@event, textEditor, ref uITextPosition); int num = @event.clickCount; if (num == 2) { textEditor.SelectCurrentWord(); textEditor.DblClickSnap(TextEditor.DblClickSnapping.WORDS); textEditor.MouseDragSelectsWholeWords(true); } else if (num == 3) { if (input.trippleClickSelect) { textEditor.SelectCurrentParagraph(); textEditor.MouseDragSelectsWholeWords(true); textEditor.DblClickSnap(TextEditor.DblClickSnapping.PARAGRAPHS); } } @event.Use(); } else { Debug.LogError("Null Text Editor"); } UIUnityEvents.TextSharedEnd(false, textEditor, @event); }
internal static bool RequestKeyboardFocus(UIInput input) { if (input == UIUnityEvents.lastInput) { return(true); } if (UIUnityEvents.lastInput) { return(false); } if (!input.label || !input.label.enabled) { return(false); } UICamera uICamera = UICamera.FindCameraForLayer(input.label.gameObject.layer); if (!uICamera) { return(false); } if (!uICamera.SetKeyboardFocus(input)) { return(false); } UIUnityEvents.ChangeFocus(uICamera, input, input.label); return(true); }
private static void TextSharedEnd(bool changed, TextEditor te, UnityEngine.Event @event) { if (UIUnityEvents.GetKeyboardControl()) { UIUnityEvents.LateLoaded.textFieldInput = true; } if (changed || @event.type == EventType.Used) { if (UIUnityEvents.lastInput) { UIUnityEvents.textInputContent.text = te.content.text; } if (!changed) { UIUnityEvents.lastInput.CheckPositioning(te.pos, te.selectPos); } else { GUI.changed = true; UIUnityEvents.lastInput.CheckChanges(UIUnityEvents.textInputContent.text); UIUnityEvents.lastInput.CheckPositioning(te.pos, te.selectPos); @event.Use(); } } if (UIUnityEvents.submit) { UIUnityEvents.submit = false; if (UIUnityEvents.lastInput.SendSubmitMessage()) { @event.Use(); } } }
private static bool GetTextEditor(out TextEditor te) { UIUnityEvents.submit = false; if (!UIUnityEvents.focusSetInOnGUI && UIUnityEvents.requiresBinding && UIUnityEvents.lastInput && UIUnityEvents.lastInputCamera) { GUI.FocusControl("ngui-unityevents"); } UIUnityEvents.Bind(); te = GUIUtility.GetStateObject(typeof(TextEditor), UIUnityEvents.controlID) as TextEditor; if (!UIUnityEvents.lastInput) { te = null; return(false); } GUIContent gUIContent = UIUnityEvents.textInputContent; if (gUIContent == null) { gUIContent = new GUIContent(); UIUnityEvents.textInputContent = gUIContent; } gUIContent.text = UIUnityEvents.lastInput.inputText; te.content.text = UIUnityEvents.textInputContent.text; te.SaveBackup(); te.position = UIUnityEvents.idRect; te.style = UIUnityEvents.textStyle; te.multiline = UIUnityEvents.lastInput.inputMultiline; te.controlID = UIUnityEvents.controlID; te.ClampPos(); return(true); }
private static void TextDrag(UICamera camera, UIInput input, UnityEngine.Event @event, UILabel label) { if (input == UIUnityEvents.lastInput && camera == UIUnityEvents.lastInputCamera) { UIUnityEvents.lastLabel = label; TextEditor textEditor = null; if (!UIUnityEvents.GetTextEditor(out textEditor)) { return; } if (UIUnityEvents.controlID == GUIUtility.hotControl) { UITextPosition uITextPosition = camera.RaycastText(Input.mousePosition, label); if (@event.shift) { UIUnityEvents.MoveTextPosition(@event, textEditor, ref uITextPosition); } else { UIUnityEvents.SelectTextPosition(@event, textEditor, ref uITextPosition); } @event.Use(); } UIUnityEvents.TextSharedEnd(false, textEditor, @event); } }
internal void OnEvent(UICamera camera, NGUIHack.Event @event, EventType type) { switch (type) { case EventType.MouseDown: { if (@event.button == 0) { UIUnityEvents.TextClickDown(camera, this, @event, this.label); } return; } case EventType.MouseUp: { if (@event.button != 0) { Debug.Log("Wee"); } else { UIUnityEvents.TextClickUp(camera, this, @event, this.label); } return; } case EventType.MouseMove: { return; } case EventType.MouseDrag: { if (@event.button == 0) { UIUnityEvents.TextDrag(camera, this, @event, this.label); } return; } case EventType.KeyDown: { UIUnityEvents.TextKeyDown(camera, this, @event, this.label); return; } case EventType.KeyUp: { UIUnityEvents.TextKeyUp(camera, this, @event, this.label); return; } default: { return; } } }
private static bool TextEditorHandleEvent2(UnityEngine.Event e, TextEditor te) { if (!UIUnityEvents.LateLoaded.Keyactions.Contains(e)) { return(false); } UIUnityEvents.Perform(te, (UIUnityEvents.TextEditOp)Convert.ToInt32(UIUnityEvents.LateLoaded.Keyactions[e])); return(true); }
private static void Bind() { if (UIUnityEvents.requiresBinding && UIUnityEvents.lastInput && UIUnityEvents.lastInputCamera) { UIUnityEvents.SetKeyboardControl(); UIUnityEvents.requiresBinding = false; UIUnityEvents.focusSetInOnGUI = true; } }
private static void TextKeyUp(UICamera camera, UIInput input, UnityEngine.Event @event, UILabel label) { if (input == UIUnityEvents.lastInput && camera == UIUnityEvents.lastInputCamera) { UIUnityEvents.lastLabel = label; TextEditor textEditor = null; if (!UIUnityEvents.GetTextEditor(out textEditor)) { return; } UIUnityEvents.TextSharedEnd(false, textEditor, @event); } }
private static bool TextEditorHandleEvent(UnityEngine.Event e, TextEditor te) { bool flag; EventModifiers eventModifier = e.modifiers; if ((eventModifier & EventModifiers.CapsLock) != EventModifiers.CapsLock) { return(UIUnityEvents.TextEditorHandleEvent2(e, te)); } try { e.modifiers = eventModifier & (EventModifiers.Shift | EventModifiers.Control | EventModifiers.Alt | EventModifiers.Command | EventModifiers.Numeric | EventModifiers.FunctionKey); flag = UIUnityEvents.TextEditorHandleEvent2(e, te); } finally { e.modifiers = eventModifier; } return(flag); }
internal void OnEvent(UICamera camera, NGUIHack.Event @event, EventType type) { switch (type) { case EventType.MouseDown: if (@event.button == 0) { UIUnityEvents.TextClickDown(camera, this, @event, this.label); } break; case EventType.MouseUp: if (@event.button != 0) { Debug.Log("Wee"); break; } UIUnityEvents.TextClickUp(camera, this, @event, this.label); break; case EventType.MouseDrag: if (@event.button == 0) { UIUnityEvents.TextDrag(camera, this, @event, this.label); } break; case EventType.KeyDown: UIUnityEvents.TextKeyDown(camera, this, @event, this.label); break; case EventType.KeyUp: UIUnityEvents.TextKeyUp(camera, this, @event, this.label); break; } }
private static void TextClickUp(UICamera camera, UIInput input, UnityEngine.Event @event, UILabel label) { if (input == UIUnityEvents.lastInput && camera == UIUnityEvents.lastInputCamera) { UIUnityEvents.lastLabel = label; TextEditor textEditor = null; if (!UIUnityEvents.GetTextEditor(out textEditor)) { return; } if (UIUnityEvents.controlID != GUIUtility.hotControl) { Debug.Log(string.Concat(new object[] { "Did not match ", UIUnityEvents.controlID, " ", GUIUtility.hotControl })); } else { textEditor.MouseDragSelectsWholeWords(false); GUIUtility.hotControl = 0; @event.Use(); UIUnityEvents.SetKeyboardControl(); } UIUnityEvents.TextSharedEnd(false, textEditor, @event); } }
private static void MapKey(string key, UIUnityEvents.TextEditOp action) { UIUnityEvents.LateLoaded.Keyactions[UnityEngine.Event.KeyboardEvent(key)] = action; }
internal void GainFocus() { UIUnityEvents.TextGainFocus(this); }
internal void LoseFocus() { UIUnityEvents.TextLostFocus(this); }
private static void TextKeyDown(UICamera camera, UIInput input, UnityEngine.Event @event, UILabel label) { if (input == UIUnityEvents.lastInput && camera == UIUnityEvents.lastInputCamera) { UIUnityEvents.lastLabel = label; TextEditor textEditor = null; if (!UIUnityEvents.GetTextEditor(out textEditor)) { return; } if (!UIUnityEvents.GetKeyboardControl()) { Debug.Log(string.Concat("Did not ", @event)); return; } bool flag = false; if (!UIUnityEvents.TextEditorHandleEvent(@event, textEditor)) { KeyCode keyCode = @event.keyCode; if (keyCode == KeyCode.Tab) { return; } if (keyCode == KeyCode.None) { char chr = @event.character; if (chr == '\t') { return; } bool flag1 = false; flag1 = chr == '\n'; if (flag1 && !input.inputMultiline && [email protected]) { UIUnityEvents.submit = true; } else if (label.font) { BMFont bMFont = label.font.bmFont; BMFont bMFont1 = bMFont; if (bMFont != null) { if (flag1 || chr != 0 && bMFont1.ContainsGlyph(chr)) { textEditor.Insert(chr); flag = true; } else if (chr == 0) { if (Input.compositionString.Length > 0) { textEditor.ReplaceSelection(string.Empty); flag = true; } @event.Use(); } } } } } else { @event.Use(); flag = true; } UIUnityEvents.TextSharedEnd(flag, textEditor, @event); } }
public bool RequestKeyboardFocus() { return(UIUnityEvents.RequestKeyboardFocus(this)); }
static LateLoaded() { mTextBlockStyle.alignment = TextAnchor.UpperLeft; mTextBlockStyle.border = new RectOffset(0, 0, 0, 0); mTextBlockStyle.clipping = TextClipping.Overflow; mTextBlockStyle.contentOffset = new Vector2(); mTextBlockStyle.fixedWidth = -1f; mTextBlockStyle.fixedHeight = -1f; mTextBlockStyle.imagePosition = ImagePosition.TextOnly; mTextBlockStyle.margin = new RectOffset(0, 0, 0, 0); mTextBlockStyle.name = "BLOCK STYLE"; mTextBlockStyle.overflow = new RectOffset(0, 0, 0, 0); mTextBlockStyle.padding = new RectOffset(0, 0, 0, 0); mTextBlockStyle.stretchHeight = false; mTextBlockStyle.stretchWidth = false; mTextBlockStyle.wordWrap = false; GUIStyleState state = new GUIStyleState { background = null, textColor = Color.clear }; mTextBlockStyle.active = state; mTextBlockStyle.focused = state; mTextBlockStyle.hover = state; mTextBlockStyle.normal = state; mTextBlockStyle.onActive = state; mTextBlockStyle.onFocused = state; mTextBlockStyle.onHover = state; mTextBlockStyle.onNormal = state; _textFieldInput = typeof(GUIUtility).GetProperty("textFieldInput", BindingFlags.NonPublic | BindingFlags.Static); if (_textFieldInput == null) { failedInvokeTextFieldInputGet = true; failedInvokeTextFieldInputSet = true; Debug.LogError("Unity has changed. no bool property textFieldInput in GUIUtility"); } Type[] components = new Type[] { typeof(UIUnityEvents) }; GameObject target = new GameObject("__UIUnityEvents", components); singleton = target.GetComponent <UIUnityEvents>(); UIUnityEvents.madeSingleton = true; Object.DontDestroyOnLoad(target); TextEditor editor = null; if (editor != null) { Debug.Log("Thats imposible."); } try { MethodInfo method = typeof(TextEditor).GetMethod("InitKeyActions", BindingFlags.NonPublic | BindingFlags.Instance); if (method == null) { throw new MethodAccessException("Unity has changed. no InitKeyActions member in TextEditor"); } method.Invoke(new TextEditor(), new object[0]); object obj3 = typeof(TextEditor).InvokeMember("s_Keyactions", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Static, null, null, new object[0]); if (!(obj3 is Hashtable)) { if (!(obj3 is IDictionary)) { throw new MethodAccessException("Unity has changed. no s_Keyactions member in TextEditor"); } Keyactions = new Hashtable(obj3 as IDictionary); } else { Keyactions = (Hashtable)obj3; } } catch (MethodAccessException exception) { Debug.Log("Caught exception \r\n" + exception + "\r\nManually building keyactions."); Keyactions = new Hashtable(); MapKey("left", UIUnityEvents.TextEditOp.MoveLeft); MapKey("right", UIUnityEvents.TextEditOp.MoveRight); MapKey("up", UIUnityEvents.TextEditOp.MoveUp); MapKey("down", UIUnityEvents.TextEditOp.MoveDown); MapKey("#left", UIUnityEvents.TextEditOp.SelectLeft); MapKey("#right", UIUnityEvents.TextEditOp.SelectRight); MapKey("#up", UIUnityEvents.TextEditOp.SelectUp); MapKey("#down", UIUnityEvents.TextEditOp.SelectDown); MapKey("delete", UIUnityEvents.TextEditOp.Delete); MapKey("backspace", UIUnityEvents.TextEditOp.Backspace); MapKey("#backspace", UIUnityEvents.TextEditOp.Backspace); if (((Application.platform != RuntimePlatform.WindowsPlayer) && (Application.platform != RuntimePlatform.WindowsWebPlayer)) && (Application.platform != RuntimePlatform.WindowsEditor)) { MapKey("^left", UIUnityEvents.TextEditOp.MoveGraphicalLineStart); MapKey("^right", UIUnityEvents.TextEditOp.MoveGraphicalLineEnd); MapKey("&left", UIUnityEvents.TextEditOp.MoveWordLeft); MapKey("&right", UIUnityEvents.TextEditOp.MoveWordRight); MapKey("&up", UIUnityEvents.TextEditOp.MoveParagraphBackward); MapKey("&down", UIUnityEvents.TextEditOp.MoveParagraphForward); MapKey("%left", UIUnityEvents.TextEditOp.MoveGraphicalLineStart); MapKey("%right", UIUnityEvents.TextEditOp.MoveGraphicalLineEnd); MapKey("%up", UIUnityEvents.TextEditOp.MoveTextStart); MapKey("%down", UIUnityEvents.TextEditOp.MoveTextEnd); MapKey("#home", UIUnityEvents.TextEditOp.SelectTextStart); MapKey("#end", UIUnityEvents.TextEditOp.SelectTextEnd); MapKey("#^left", UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineStart); MapKey("#^right", UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineEnd); MapKey("#^up", UIUnityEvents.TextEditOp.SelectParagraphBackward); MapKey("#^down", UIUnityEvents.TextEditOp.SelectParagraphForward); MapKey("#&left", UIUnityEvents.TextEditOp.SelectWordLeft); MapKey("#&right", UIUnityEvents.TextEditOp.SelectWordRight); MapKey("#&up", UIUnityEvents.TextEditOp.SelectParagraphBackward); MapKey("#&down", UIUnityEvents.TextEditOp.SelectParagraphForward); MapKey("#%left", UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineStart); MapKey("#%right", UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineEnd); MapKey("#%up", UIUnityEvents.TextEditOp.SelectTextStart); MapKey("#%down", UIUnityEvents.TextEditOp.SelectTextEnd); MapKey("%a", UIUnityEvents.TextEditOp.SelectAll); MapKey("%x", UIUnityEvents.TextEditOp.Cut); MapKey("%c", UIUnityEvents.TextEditOp.Copy); MapKey("%v", UIUnityEvents.TextEditOp.Paste); MapKey("^d", UIUnityEvents.TextEditOp.Delete); MapKey("^h", UIUnityEvents.TextEditOp.Backspace); MapKey("^b", UIUnityEvents.TextEditOp.MoveLeft); MapKey("^f", UIUnityEvents.TextEditOp.MoveRight); MapKey("^a", UIUnityEvents.TextEditOp.MoveLineStart); MapKey("^e", UIUnityEvents.TextEditOp.MoveLineEnd); MapKey("&delete", UIUnityEvents.TextEditOp.DeleteWordForward); MapKey("&backspace", UIUnityEvents.TextEditOp.DeleteWordBack); } else { MapKey("home", UIUnityEvents.TextEditOp.MoveGraphicalLineStart); MapKey("end", UIUnityEvents.TextEditOp.MoveGraphicalLineEnd); MapKey("%left", UIUnityEvents.TextEditOp.MoveWordLeft); MapKey("%right", UIUnityEvents.TextEditOp.MoveWordRight); MapKey("%up", UIUnityEvents.TextEditOp.MoveParagraphBackward); MapKey("%down", UIUnityEvents.TextEditOp.MoveParagraphForward); MapKey("^left", UIUnityEvents.TextEditOp.MoveToEndOfPreviousWord); MapKey("^right", UIUnityEvents.TextEditOp.MoveToStartOfNextWord); MapKey("^up", UIUnityEvents.TextEditOp.MoveParagraphBackward); MapKey("^down", UIUnityEvents.TextEditOp.MoveParagraphForward); MapKey("#^left", UIUnityEvents.TextEditOp.SelectToEndOfPreviousWord); MapKey("#^right", UIUnityEvents.TextEditOp.SelectToStartOfNextWord); MapKey("#^up", UIUnityEvents.TextEditOp.SelectParagraphBackward); MapKey("#^down", UIUnityEvents.TextEditOp.SelectParagraphForward); MapKey("#home", UIUnityEvents.TextEditOp.SelectGraphicalLineStart); MapKey("#end", UIUnityEvents.TextEditOp.SelectGraphicalLineEnd); MapKey("^delete", UIUnityEvents.TextEditOp.DeleteWordForward); MapKey("^backspace", UIUnityEvents.TextEditOp.DeleteWordBack); MapKey("^a", UIUnityEvents.TextEditOp.SelectAll); MapKey("^x", UIUnityEvents.TextEditOp.Cut); MapKey("^c", UIUnityEvents.TextEditOp.Copy); MapKey("^v", UIUnityEvents.TextEditOp.Paste); MapKey("#delete", UIUnityEvents.TextEditOp.Cut); MapKey("^insert", UIUnityEvents.TextEditOp.Copy); MapKey("#insert", UIUnityEvents.TextEditOp.Paste); } } }
private static bool PerformOperation(TextEditor te, UIUnityEvents.TextEditOp operation) { switch (operation) { case UIUnityEvents.TextEditOp.MoveLeft: { te.MoveLeft(); break; } case UIUnityEvents.TextEditOp.MoveRight: { te.MoveRight(); break; } case UIUnityEvents.TextEditOp.MoveUp: { te.MoveUp(); break; } case UIUnityEvents.TextEditOp.MoveDown: { te.MoveDown(); break; } case UIUnityEvents.TextEditOp.MoveLineStart: { te.MoveLineStart(); break; } case UIUnityEvents.TextEditOp.MoveLineEnd: { te.MoveLineEnd(); break; } case UIUnityEvents.TextEditOp.MoveTextStart: { te.MoveTextStart(); break; } case UIUnityEvents.TextEditOp.MoveTextEnd: { te.MoveTextEnd(); break; } case UIUnityEvents.TextEditOp.MovePageUp: case UIUnityEvents.TextEditOp.MovePageDown: case UIUnityEvents.TextEditOp.SelectPageUp: case UIUnityEvents.TextEditOp.SelectPageDown: { Debug.Log(string.Concat("Unimplemented: ", operation)); break; } case UIUnityEvents.TextEditOp.MoveGraphicalLineStart: { te.MoveGraphicalLineStart(); break; } case UIUnityEvents.TextEditOp.MoveGraphicalLineEnd: { te.MoveGraphicalLineEnd(); break; } case UIUnityEvents.TextEditOp.MoveWordLeft: { te.MoveWordLeft(); break; } case UIUnityEvents.TextEditOp.MoveWordRight: { te.MoveWordRight(); break; } case UIUnityEvents.TextEditOp.MoveParagraphForward: { te.MoveParagraphForward(); break; } case UIUnityEvents.TextEditOp.MoveParagraphBackward: { te.MoveParagraphBackward(); break; } case UIUnityEvents.TextEditOp.MoveToStartOfNextWord: { te.MoveToStartOfNextWord(); break; } case UIUnityEvents.TextEditOp.MoveToEndOfPreviousWord: { te.MoveToEndOfPreviousWord(); break; } case UIUnityEvents.TextEditOp.SelectLeft: { te.SelectLeft(); break; } case UIUnityEvents.TextEditOp.SelectRight: { te.SelectRight(); break; } case UIUnityEvents.TextEditOp.SelectUp: { te.SelectUp(); break; } case UIUnityEvents.TextEditOp.SelectDown: { te.SelectDown(); break; } case UIUnityEvents.TextEditOp.SelectTextStart: { te.SelectTextStart(); break; } case UIUnityEvents.TextEditOp.SelectTextEnd: { te.SelectTextEnd(); break; } case UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineStart: { te.ExpandSelectGraphicalLineStart(); break; } case UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineEnd: { te.ExpandSelectGraphicalLineEnd(); break; } case UIUnityEvents.TextEditOp.SelectGraphicalLineStart: { te.SelectGraphicalLineStart(); break; } case UIUnityEvents.TextEditOp.SelectGraphicalLineEnd: { te.SelectGraphicalLineEnd(); break; } case UIUnityEvents.TextEditOp.SelectWordLeft: { te.SelectWordLeft(); break; } case UIUnityEvents.TextEditOp.SelectWordRight: { te.SelectWordRight(); break; } case UIUnityEvents.TextEditOp.SelectToEndOfPreviousWord: { te.SelectToEndOfPreviousWord(); break; } case UIUnityEvents.TextEditOp.SelectToStartOfNextWord: { te.SelectToStartOfNextWord(); break; } case UIUnityEvents.TextEditOp.SelectParagraphBackward: { te.SelectParagraphBackward(); break; } case UIUnityEvents.TextEditOp.SelectParagraphForward: { te.SelectParagraphForward(); break; } case UIUnityEvents.TextEditOp.Delete: { return te.Delete(); } case UIUnityEvents.TextEditOp.Backspace: { return te.Backspace(); } case UIUnityEvents.TextEditOp.DeleteWordBack: { return te.DeleteWordBack(); } case UIUnityEvents.TextEditOp.DeleteWordForward: { return te.DeleteWordForward(); } case UIUnityEvents.TextEditOp.Cut: { return te.Cut(); } case UIUnityEvents.TextEditOp.Copy: { te.Copy(); break; } case UIUnityEvents.TextEditOp.Paste: { return te.Paste(); } case UIUnityEvents.TextEditOp.SelectAll: { te.SelectAll(); break; } case UIUnityEvents.TextEditOp.SelectNone: { te.SelectNone(); break; } default: { goto case UIUnityEvents.TextEditOp.SelectPageDown; } } return false; }
private static bool Perform(TextEditor te, UIUnityEvents.TextEditOp operation) { return UIUnityEvents.PerformOperation(te, operation); }
internal static void TextKeyUp(UICamera camera, UIInput input, NGUIHack.Event @event, UILabel label) { UIUnityEvents.TextKeyUp(camera, input, @event.real, label); }
private static bool Perform(TextEditor te, UIUnityEvents.TextEditOp operation) { return(UIUnityEvents.PerformOperation(te, operation)); }