Upgraded ChatBox and fixed FocusChat hotkey

Upgraded ChatBox to use Keybinds.
Put cursor at the end of text of ChatBox history.
Fixed FocusChat hotkey getting called when typing in a LineEdit.
Added Keybinds.
This commit is contained in:
ShadowCommander
2019-08-05 22:59:37 -07:00
parent ca9cc36a93
commit 7454c62ff2
4 changed files with 60 additions and 25 deletions

View File

@@ -8,6 +8,7 @@ using Robust.Shared.Maths;
using Robust.Shared.Utility;
using Robust.Shared.Localization;
using Robust.Shared.IoC;
using Robust.Shared.Input;
namespace Content.Client.Chat
{
@@ -84,7 +85,7 @@ namespace Content.Client.Chat
vBox.AddChild(contentMargin);
Input = new LineEdit();
Input.OnKeyDown += InputKeyDown;
Input.OnKeyBindDown += InputKeyBindDown;
Input.OnTextEntered += Input_OnTextEntered;
vBox.AddChild(Input);
@@ -133,16 +134,15 @@ namespace Content.Client.Chat
Input.GrabKeyboardFocus();
}
private void InputKeyDown(GUIKeyEventArgs e)
private void InputKeyBindDown(GUIBoundKeyEventArgs args)
{
if (e.Key == Keyboard.Key.Escape)
if (args.Function == EngineKeyFunctions.TextReleaseFocus)
{
Input.ReleaseKeyboardFocus();
e.Handle();
args.Handle();
return;
}
if (e.Key == Keyboard.Key.Up)
else if (args.Function == EngineKeyFunctions.TextHistoryPrev)
{
if (_inputIndex == -1 && _inputHistory.Count != 0)
{
@@ -158,12 +158,12 @@ namespace Content.Client.Chat
{
Input.Text = _inputHistory[_inputIndex];
}
Input.CursorPos = Input.Text.Length;
e.Handle();
args.Handle();
return;
}
if (e.Key == Keyboard.Key.Down)
else if (args.Function == EngineKeyFunctions.TextHistoryNext)
{
if (_inputIndex == 0)
{
@@ -176,8 +176,9 @@ namespace Content.Client.Chat
_inputIndex--;
Input.Text = _inputHistory[_inputIndex];
}
Input.CursorPos = Input.Text.Length;
e.Handle();
args.Handle();
}
}