public override bool MouseUp(int x, int y)
{
if (_promptShowing)
{
if (!_saveGameNameField.MouseUp(x, y) && !string.IsNullOrEmpty(_saveGameNameField.Text))
{
_promptShowing = false;
_gameMain.SaveGame(_saveGameNameField.Text);
GetSaveList(); //Refresh the list after saving
}
}
if (_scrollBar.MouseUp(x, y))
{
RefreshSaveButtons();
return true;
}
if (_buttons[0].MouseUp(x, y))
{
var func = CloseWindow;
if (func != null)
{
func();
}
_gameMain.ClearAll();
_gameMain.ChangeToScreen(Screen.NewGame);
return true;
}
if (_buttons[1].MouseUp(x, y))
{
_promptShowing = true;
if (_selectedGame >= 0)
{
_saveGameNameField.SetText(_files[_selectedGame].Name.Substring(0, _files[_selectedGame].Name.Length - _files[_selectedGame].Extension.Length));
}
else
{
_saveGameNameField.SetText(string.Empty);
}
_saveGameNameField.Select();
return true;
}
if (_buttons[2].MouseUp(x, y))
{
var func = CloseWindow;
if (func != null)
{
func();
}
_gameMain.LoadGame(_files[_selectedGame].Name);
return true;
}
if (_buttons[3].MouseUp(x, y))
{
//TODO: Add prompt to ensure user really want to exit
_gameMain.ExitGame();
return true;
}
for (int i = 0; i < _maxVisible; i++)
{
if (_saveGameButtons[i].MouseUp(x, y))
{
foreach (var button in _saveGameButtons)
{
button.Selected = false;
}
_saveGameButtons[i].Selected = true;
_selectedGame = i + _scrollBar.TopIndex;
_buttons[2].Enabled = true;
return true;
}
}
if (!base.MouseUp(x, y))
{
//Clicked outside the window, close this window
if (CloseWindow != null)
{
CloseWindow();
}
}
else
{
//Clicked inside window, clear save game selection, if any
_selectedGame = -1;
foreach (var button in _saveGameButtons)
{
button.Selected = false;
}
_buttons[2].Enabled = false;
}
return false;
}