Improves filter text field in asset browser.

Text field takes keyboard focus by default.
Esc key resets filter or closes window if text field is empty.
This commit is contained in:
deniz1a
2015-07-24 21:10:35 +03:00
parent d8c996f74a
commit 4fcf73921f

View File

@@ -108,9 +108,29 @@ namespace OpenRA.Mods.Common.Widgets.Logic
panel.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => Game.Settings.Player.Color.RGB; panel.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => Game.Settings.Player.Color.RGB;
} }
Action closeAssetBrowser = () =>
{
if (isVideoLoaded)
player.Stop();
Ui.CloseWindow();
onExit();
};
filenameInput = panel.Get<TextFieldWidget>("FILENAME_INPUT"); filenameInput = panel.Get<TextFieldWidget>("FILENAME_INPUT");
filenameInput.TakeKeyboardFocus();
filenameInput.OnTextEdited = () => ApplyFilter(filenameInput.Text); filenameInput.OnTextEdited = () => ApplyFilter(filenameInput.Text);
filenameInput.OnEscKey = filenameInput.YieldKeyboardFocus; filenameInput.OnEscKey = () =>
{
if (filenameInput.Text.Length == 0)
closeAssetBrowser();
else
{
filenameInput.Text = "";
filenameInput.OnTextEdited();
}
return true;
};
var frameContainer = panel.GetOrNull("FRAME_SELECTOR"); var frameContainer = panel.GetOrNull("FRAME_SELECTOR");
if (frameContainer != null) if (frameContainer != null)
@@ -218,13 +238,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var closeButton = panel.GetOrNull<ButtonWidget>("CLOSE_BUTTON"); var closeButton = panel.GetOrNull<ButtonWidget>("CLOSE_BUTTON");
if (closeButton != null) if (closeButton != null)
closeButton.OnClick = () => closeButton.OnClick = closeAssetBrowser;
{
if (isVideoLoaded)
player.Stop();
Ui.CloseWindow();
onExit();
};
} }
void SelectNextFrame() void SelectNextFrame()