protected override void Tick(double delta) { if (MDown) { AdjustMax(); } if (Selected) { int min = MinCursor; int max = MaxCursor; if (min > max) { MinCursor = max; MaxCursor = min; } bool modified = false; KeyHandlerState khs = KeyHandler.GetKBState(); if (khs.InitBS > 0) { int end = MinCursor - Math.Min(khs.InitBS, MinCursor); Text = Text.Substring(0, end) + Text.Substring(MaxCursor); MinCursor = end; MaxCursor = end; modified = true; } if (khs.KeyboardString.Length > 0) { Text = Text.Substring(0, MinCursor) + khs.KeyboardString + Text.Substring(MaxCursor); MinCursor = MinCursor + khs.KeyboardString.Length; MaxCursor = MinCursor; modified = true; } if (!MultiLine && Text.Contains('\n')) { Text = Text.Substring(0, Text.IndexOf('\n')); if (MaxCursor > Text.Length) { MaxCursor = Text.Length; if (MinCursor > MaxCursor) { MinCursor = MaxCursor; } } modified = true; if (EnterPressed != null) { EnterPressed(); } } if (modified && TextModified != null) { TextModified.Invoke(this, null); } } }
/// <summary> /// Performs a tick on this element. /// </summary> /// <param name="delta">The time since the last tick.</param> protected override void Tick(double delta) { if (MDown) { AdjustMax(); } if (Selected) { if (MinCursor > MaxCursor) { int min = MinCursor; MinCursor = MaxCursor; MaxCursor = min; } bool modified = false; /* * KeyHandlerState khs = KeyHandler.GetKBState(); * if (khs.Escaped) * { * TriedToEscape = true; * } * if (khs.InitBS > 0) * { * int end; * if (MaxCursor > MinCursor) * { * khs.InitBS--; * } * if (khs.InitBS > 0) * { * end = MinCursor - Math.Min(khs.InitBS, MinCursor); * } * else * { * end = MinCursor; * } * Text = Text.Substring(0, end) + Text.Substring(MaxCursor); * MinCursor = end; * MaxCursor = end; * modified = true; * } * if (khs.KeyboardString.Length > 0) * { * Text = Text.Substring(0, MinCursor) + khs.KeyboardString + Text.Substring(MaxCursor); * MinCursor = MinCursor + khs.KeyboardString.Length; * MaxCursor = MinCursor; * modified = true; * } * if (!MultiLine && Text.Contains('\n')) * { * Text = Text.Substring(0, Text.IndexOf('\n')); * if (MaxCursor > Text.Length) * { * MaxCursor = Text.Length; * if (MinCursor > MaxCursor) * { * MinCursor = MaxCursor; * } * } * modified = true; * EnterPressed?.Invoke(); * } */ if (modified && TextModified != null) { TextModified.Invoke(this, null); } } }