diff --git a/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs index ecfdb0ee40..d27d0f9685 100755 --- a/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncLobbyLogic.cs @@ -132,21 +132,12 @@ namespace OpenRA.Mods.Cnc.Widgets CountryNames = Rules.Info["world"].Traits.WithInterface().ToDictionary(a => a.Race, a => a.Name); CountryNames.Add("random", "Random"); - var mapButton = lobby.GetWidget("CHANGEMAP_BUTTON"); - mapButton.OnMouseUp = mi => - { - Widget.OpenWindow( "MAP_CHOOSER", new Dictionary { { "orderManager", orderManager }, { "mapName", MapUid } } ); - return true; - }; - + var mapButton = lobby.GetWidget("CHANGEMAP_BUTTON"); + mapButton.OnClick = () => Widget.OpenWindow( "MAP_CHOOSER", new Dictionary{ { "orderManager", orderManager }, { "mapName", MapUid } } ); mapButton.IsVisible = () => mapButton.Visible && Game.IsHost; - var disconnectButton = lobby.GetWidget("DISCONNECT_BUTTON"); - disconnectButton.OnMouseUp = mi => - { - onExit(); - return true; - }; + var disconnectButton = lobby.GetWidget("DISCONNECT_BUTTON"); + disconnectButton.OnClick = onExit; var lockTeamsCheckbox = lobby.GetWidget("LOCKTEAMS_CHECKBOX"); lockTeamsCheckbox.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.LockTeams; @@ -166,14 +157,13 @@ namespace OpenRA.Mods.Cnc.Widgets "allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats))); }; - var startGameButton = lobby.GetWidget("START_GAME_BUTTON"); - startGameButton.OnMouseUp = mi => + var startGameButton = lobby.GetWidget("START_GAME_BUTTON"); + startGameButton.OnClick = () => { mapButton.Visible = false; disconnectButton.Visible = false; lockTeamsCheckbox.Visible = false; orderManager.IssueOrder(Order.Command("startgame")); - return true; }; // Todo: Only show if the map requirements are met for player slots diff --git a/OpenRA.Mods.Cnc/Widgets/CncMenuButton.cs b/OpenRA.Mods.Cnc/Widgets/CncMenuButton.cs index fb322082e4..2a0230c1ba 100644 --- a/OpenRA.Mods.Cnc/Widgets/CncMenuButton.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncMenuButton.cs @@ -17,10 +17,20 @@ namespace OpenRA.Mods.Cnc.Widgets { public class CncMenuButtonWidget : ButtonWidget { - public CncMenuButtonWidget() : base() { } - protected CncMenuButtonWidget(CncMenuButtonWidget widget) : base(widget) { } - public Func IsDisabled = () => false; + public Action OnClick = () => {}; + + public CncMenuButtonWidget() + : base() + { + OnMouseUp = mi => { OnClick(); return true; }; + } + + protected CncMenuButtonWidget(CncMenuButtonWidget widget) + : base(widget) + { + OnMouseUp = mi => { OnClick(); return true; }; + } public override int2 ChildOrigin { get { return RenderOrigin; } } public override void DrawInner() diff --git a/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs index f2c5a4b94f..18dc7d6fb8 100755 --- a/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncMenuLogic.cs @@ -38,31 +38,30 @@ namespace OpenRA.Mods.Cnc.Widgets var mainMenu = widget.GetWidget("MAIN_MENU"); mainMenu.IsVisible = () => Menu == MenuType.Main; - mainMenu.GetWidget("SOLO_BUTTON").OnMouseUp = mi => { StartSkirmishGame(); return true; }; - mainMenu.GetWidget("MULTIPLAYER_BUTTON").OnMouseUp = mi => { Menu = MenuType.Multiplayer; return true; }; - mainMenu.GetWidget("SETTINGS_BUTTON").OnMouseUp = mi => { Menu = MenuType.Settings; return true; }; - mainMenu.GetWidget("QUIT_BUTTON").OnMouseUp = mi => { Game.Exit(); return true; }; + mainMenu.GetWidget("SOLO_BUTTON").OnClick = StartSkirmishGame; + mainMenu.GetWidget("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer; + mainMenu.GetWidget("SETTINGS_BUTTON").OnClick = () => Menu = MenuType.Settings; + mainMenu.GetWidget("QUIT_BUTTON").OnClick = Game.Exit; // Multiplayer menu var multiplayerMenu = widget.GetWidget("MULTIPLAYER_MENU"); multiplayerMenu.IsVisible = () => Menu == MenuType.Multiplayer; - multiplayerMenu.GetWidget("BACK_BUTTON").OnMouseUp = mi => { Menu = MenuType.Main; return true; }; - multiplayerMenu.GetWidget("JOIN_BUTTON").OnMouseUp = mi => + multiplayerMenu.GetWidget("BACK_BUTTON").OnClick = () => Menu = MenuType.Main; + multiplayerMenu.GetWidget("JOIN_BUTTON").OnClick = () => { Menu = MenuType.None; Widget.OpenWindow("SERVERBROWSER_PANEL", new Dictionary() { - {"onExit", new Action(() => {Menu = MenuType.Multiplayer; Widget.CloseWindow();})} + {"onExit", new Action(() => { Menu = MenuType.Multiplayer; Widget.CloseWindow(); })} }); - return true; }; // Settings menu var settingsMenu = widget.GetWidget("SETTINGS_MENU"); settingsMenu.IsVisible = () => Menu == MenuType.Settings; - settingsMenu.GetWidget("BACK_BUTTON").OnMouseUp = mi => { Menu = MenuType.Main; return true; }; + settingsMenu.GetWidget("BACK_BUTTON").OnClick = () => Menu = MenuType.Main; } diff --git a/OpenRA.Mods.Cnc/Widgets/CncServerBrowserLogic.cs b/OpenRA.Mods.Cnc/Widgets/CncServerBrowserLogic.cs index 2c815e8973..50092252e0 100644 --- a/OpenRA.Mods.Cnc/Widgets/CncServerBrowserLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/CncServerBrowserLogic.cs @@ -57,30 +57,27 @@ namespace OpenRA.Mods.Cnc.Widgets var sl = panel.GetWidget("SERVER_LIST"); // Menu buttons - panel.GetWidget("REFRESH_BUTTON").OnMouseUp = mi => + panel.GetWidget("REFRESH_BUTTON").OnClick = () => { searchStatus = SearchStatus.Fetching; sl.RemoveChildren(); currentServer = null; MasterServerQuery.Refresh(Game.Settings.Server.MasterServer); - - return true; }; var join = panel.GetWidget("JOIN_BUTTON"); join.IsDisabled = () => currentServer == null || !ServerBrowserDelegate.CanJoin(currentServer); - join.OnMouseUp = mi => + join.OnClick = () => { if (currentServer == null) - return false; + return; Widget.CloseWindow(); Game.JoinServer(currentServer.Address.Split(':')[0], int.Parse(currentServer.Address.Split(':')[1])); - return true; }; - panel.GetWidget("BACK_BUTTON").OnMouseUp = mi => { onExit(); return true; }; + panel.GetWidget("BACK_BUTTON").OnClick = onExit; // Server list serverTemplate = sl.GetWidget("SERVER_TEMPLATE");