Add settings tab to TD lobby. Partially fixes #4770.

This commit is contained in:
Paul Chote
2014-03-20 22:53:19 +13:00
parent 48f3d8f3c0
commit 8535e8d257
2 changed files with 22 additions and 5 deletions

View File

@@ -12,6 +12,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using OpenRA.Graphics;
using OpenRA.Network; using OpenRA.Network;
using OpenRA.Traits; using OpenRA.Traits;
using OpenRA.Widgets; using OpenRA.Widgets;
@@ -20,6 +21,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
public class LobbyLogic public class LobbyLogic
{ {
static readonly Action DoNothing = () => { };
readonly Action onStart; readonly Action onStart;
readonly Action onExit; readonly Action onExit;
readonly OrderManager orderManager; readonly OrderManager orderManager;
@@ -86,7 +89,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
} }
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
internal LobbyLogic(Widget widget, World world, OrderManager orderManager, internal LobbyLogic(Widget widget, World world, WorldRenderer worldRenderer, OrderManager orderManager,
Action onExit, Action onStart, bool skirmishMode) Action onExit, Action onStart, bool skirmishMode)
{ {
lobby = widget; lobby = widget;
@@ -164,7 +167,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs() Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
{ {
{ "initialMap", preview.Uid }, { "initialMap", preview.Uid },
{ "onExit", () => { } }, { "onExit", DoNothing },
{ "onSelect", onSelect } { "onSelect", onSelect }
}); });
}; };
@@ -469,9 +472,17 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var musicButton = lobby.GetOrNull<ButtonWidget>("MUSIC_BUTTON"); var musicButton = lobby.GetOrNull<ButtonWidget>("MUSIC_BUTTON");
if (musicButton != null) if (musicButton != null)
musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs { { "onExit", DoNothing } });
new WidgetArgs { { "onExit", () => { } } });
var settingsButton = lobby.GetOrNull<ButtonWidget>("SETTINGS_BUTTON");
if (settingsButton != null)
{
settingsButton.OnClick = () => Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs
{
{ "onExit", DoNothing },
{ "worldRenderer", worldRenderer }
});
}
// Add a bot on the first lobbyinfo update // Add a bot on the first lobbyinfo update
if (this.skirmishMode) if (this.skirmishMode)
Game.LobbyInfoChanged += WidgetUtils.Once(() => Game.LobbyInfoChanged += WidgetUtils.Once(() =>

View File

@@ -161,10 +161,16 @@ Container@SERVER_LOBBY:
Height:35 Height:35
Text:Leave Game Text:Leave Game
Key: escape Key: escape
Button@MUSIC_BUTTON: Button@SETTINGS_BUTTON:
X:150 X:150
Y:499 Y:499
Width:140 Width:140
Height:35 Height:35
Text:Settings
Button@MUSIC_BUTTON:
X:300
Y:499
Width:140
Height:35
Text:Music Text:Music
TooltipContainer@TOOLTIP_CONTAINER: TooltipContainer@TOOLTIP_CONTAINER: