#2051 fixed -- Widget.Get() throws by default

This commit is contained in:
Chris Forbes
2012-04-27 19:39:07 +12:00
parent 5d1a071287
commit c30d46c014
52 changed files with 409 additions and 398 deletions

View File

@@ -85,7 +85,7 @@ namespace OpenRA.Widgets
var panel = (ScrollPanelWidget)Ui.LoadWidget(panelTemplate, null, new WidgetArgs() var panel = (ScrollPanelWidget)Ui.LoadWidget(panelTemplate, null, new WidgetArgs()
{{ "substitutions", substitutions }}); {{ "substitutions", substitutions }});
var itemTemplate = panel.GetWidget<ScrollItemWidget>("TEMPLATE"); var itemTemplate = panel.Get<ScrollItemWidget>("TEMPLATE");
panel.RemoveChildren(); panel.RemoveChildren();
foreach (var option in options) foreach (var option in options)
{ {

View File

@@ -363,25 +363,36 @@ namespace OpenRA.Widgets
c.Removed(); c.Removed();
} }
public Widget GetWidget(string id) public Widget GetOrNull(string id)
{ {
if (this.Id == id) if (this.Id == id)
return this; return this;
foreach (var child in Children) foreach (var child in Children)
{ {
var w = child.GetWidget(id); var w = child.GetOrNull(id);
if (w != null) if (w != null)
return w; return w;
} }
return null; return null;
} }
public T GetWidget<T>(string id) where T : Widget public T GetOrNull<T>(string id) where T : Widget
{ {
var widget = GetWidget(id); return (T) GetOrNull(id);
return (widget != null) ? (T)widget : null;
} }
public T Get<T>(string id) where T : Widget
{
var t = GetOrNull<T>(id);
if (t == null)
throw new InvalidOperationException(
"Widget {0} has no child {1} of type {2}".F(
Id, id, typeof(T).Name));
return t;
}
public Widget Get(string id) { return Get<Widget>(id); }
} }
public class ContainerWidget : Widget public class ContainerWidget : Widget

View File

@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Cnc.Widgets
this.world = world; this.world = world;
tabsWidget = Lazy.New(() => tabsWidget = Lazy.New(() =>
Ui.Root.GetWidget<ProductionTabsWidget>(info.ProductionTabsWidget)); Ui.Root.Get<ProductionTabsWidget>(info.ProductionTabsWidget));
} }
public void SelectionChanged() public void SelectionChanged()

View File

@@ -20,16 +20,16 @@ namespace OpenRA.Mods.Cnc.Widgets
public static void PromptConfirmAction(string title, string text, Action onConfirm, Action onCancel) public static void PromptConfirmAction(string title, string text, Action onConfirm, Action onCancel)
{ {
var prompt = Ui.OpenWindow("CONFIRM_PROMPT"); var prompt = Ui.OpenWindow("CONFIRM_PROMPT");
prompt.GetWidget<LabelWidget>("PROMPT_TITLE").GetText = () => title; prompt.Get<LabelWidget>("PROMPT_TITLE").GetText = () => title;
prompt.GetWidget<LabelWidget>("PROMPT_TEXT").GetText = () => text; prompt.Get<LabelWidget>("PROMPT_TEXT").GetText = () => text;
prompt.GetWidget<ButtonWidget>("CONFIRM_BUTTON").OnClick = () => prompt.Get<ButtonWidget>("CONFIRM_BUTTON").OnClick = () =>
{ {
Ui.CloseWindow(); Ui.CloseWindow();
onConfirm(); onConfirm();
}; };
prompt.GetWidget<ButtonWidget>("CANCEL_BUTTON").OnClick = () => prompt.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () =>
{ {
Ui.CloseWindow(); Ui.CloseWindow();
onCancel(); onCancel();

View File

@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Cnc.Widgets
: base(world, worldRenderer) : base(world, worldRenderer)
{ {
tooltipContainer = Lazy.New(() => tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer)); Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
} }
public override void MouseEntered() public override void MouseEntered()

View File

@@ -17,8 +17,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public ButtonTooltipLogic(Widget widget, ToggleButtonWidget button) public ButtonTooltipLogic(Widget widget, ToggleButtonWidget button)
{ {
var label = widget.GetWidget<LabelWidget>("LABEL"); var label = widget.Get<LabelWidget>("LABEL");
var hotkey = widget.GetWidget<LabelWidget>("HOTKEY"); var hotkey = widget.Get<LabelWidget>("HOTKEY");
label.GetText = () => button.TooltipText; label.GetText = () => button.TooltipText;
var labelWidth = Game.Renderer.Fonts[label.Font].Measure(button.TooltipText).X; var labelWidth = Game.Renderer.Fonts[label.Font].Measure(button.TooltipText).X;

View File

@@ -19,16 +19,16 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public CncConquestObjectivesLogic(Widget widget, World world) public CncConquestObjectivesLogic(Widget widget, World world)
{ {
var panel = widget.GetWidget("CONQUEST_OBJECTIVES"); var panel = widget.Get("CONQUEST_OBJECTIVES");
panel.GetWidget<LabelWidget>("TITLE").GetText = () => "Conquest: " + world.Map.Title; panel.Get<LabelWidget>("TITLE").GetText = () => "Conquest: " + world.Map.Title;
var statusLabel = panel.GetWidget<LabelWidget>("STATUS"); var statusLabel = panel.Get<LabelWidget>("STATUS");
statusLabel.IsVisible = () => world.LocalPlayer != null; statusLabel.IsVisible = () => world.LocalPlayer != null;
if (world.LocalPlayer != null) if (world.LocalPlayer != null)
{ {
var lp = world.LocalPlayer; var lp = world.LocalPlayer;
var objectiveCheckbox = panel.GetWidget<CheckboxWidget>("1"); var objectiveCheckbox = panel.Get<CheckboxWidget>("1");
objectiveCheckbox.IsChecked = () => lp.WinState != WinState.Undefined; objectiveCheckbox.IsChecked = () => lp.WinState != WinState.Undefined;
objectiveCheckbox.GetCheckType = () => lp.WinState == WinState.Won ? objectiveCheckbox.GetCheckType = () => lp.WinState == WinState.Won ?
"checked" : "crossed"; "checked" : "crossed";
@@ -39,8 +39,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
lp.WinState == WinState.Lost ? Color.Red : Color.White; lp.WinState == WinState.Lost ? Color.Red : Color.White;
} }
var scrollpanel = panel.GetWidget<ScrollPanelWidget>("PLAYER_LIST"); var scrollpanel = panel.Get<ScrollPanelWidget>("PLAYER_LIST");
var itemTemplate = scrollpanel.GetWidget("PLAYER_TEMPLATE"); var itemTemplate = scrollpanel.Get("PLAYER_TEMPLATE");
scrollpanel.RemoveChildren(); scrollpanel.RemoveChildren();
foreach (var p in world.Players.Where(a => !a.NonCombatant)) foreach (var p in world.Players.Where(a => !a.NonCombatant))
@@ -48,21 +48,21 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Player pp = p; Player pp = p;
var c = world.LobbyInfo.ClientWithIndex(pp.ClientIndex); var c = world.LobbyInfo.ClientWithIndex(pp.ClientIndex);
var item = itemTemplate.Clone(); var item = itemTemplate.Clone();
var nameLabel = item.GetWidget<LabelWidget>("NAME"); var nameLabel = item.Get<LabelWidget>("NAME");
nameLabel.GetText = () => pp.WinState == WinState.Lost ? pp.PlayerName + " (Dead)" : pp.PlayerName; nameLabel.GetText = () => pp.WinState == WinState.Lost ? pp.PlayerName + " (Dead)" : pp.PlayerName;
nameLabel.GetColor = () => pp.ColorRamp.GetColor(0); nameLabel.GetColor = () => pp.ColorRamp.GetColor(0);
var flag = item.GetWidget<ImageWidget>("FACTIONFLAG"); var flag = item.Get<ImageWidget>("FACTIONFLAG");
flag.GetImageName = () => pp.Country.Race; flag.GetImageName = () => pp.Country.Race;
flag.GetImageCollection = () => "flags"; flag.GetImageCollection = () => "flags";
item.GetWidget<LabelWidget>("FACTION").GetText = () => pp.Country.Name; item.Get<LabelWidget>("FACTION").GetText = () => pp.Country.Name;
var team = item.GetWidget<LabelWidget>("TEAM"); var team = item.Get<LabelWidget>("TEAM");
team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString(); team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString();
scrollpanel.AddChild(item); scrollpanel.AddChild(item);
item.GetWidget<LabelWidget>("KILLS").GetText = () => pp.Kills.ToString(); item.Get<LabelWidget>("KILLS").GetText = () => pp.Kills.ToString();
item.GetWidget<LabelWidget>("DEATHS").GetText = () => pp.Deaths.ToString(); item.Get<LabelWidget>("DEATHS").GetText = () => pp.Deaths.ToString();
} }
} }
} }

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
void AddChatLine(Color c, string from, string text) void AddChatLine(Color c, string from, string text)
{ {
ingameRoot.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text); ingameRoot.Get<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
} }
void UnregisterEvents() void UnregisterEvents()
@@ -57,7 +57,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift)); button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
button.IsToggled = () => queueTabs.QueueGroup == group; button.IsToggled = () => queueTabs.QueueGroup == group;
var chromeName = group.ToLowerInvariant(); var chromeName = group.ToLowerInvariant();
var icon = button.GetWidget<ImageWidget>("ICON"); var icon = button.Get<ImageWidget>("ICON");
icon.GetImageName = () => button.IsDisabled() ? chromeName+"-disabled" : icon.GetImageName = () => button.IsDisabled() ? chromeName+"-disabled" :
queueTabs.Groups[group].Alert ? chromeName+"-alert" : chromeName; queueTabs.Groups[group].Alert ? chromeName+"-alert" : chromeName;
} }
@@ -72,8 +72,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Game.AddChatLine += AddChatLine; Game.AddChatLine += AddChatLine;
Game.BeforeGameStart += UnregisterEvents; Game.BeforeGameStart += UnregisterEvents;
ingameRoot = widget.GetWidget("INGAME_ROOT"); ingameRoot = widget.Get("INGAME_ROOT");
var playerRoot = ingameRoot.GetWidget("PLAYER_ROOT"); var playerRoot = ingameRoot.Get("PLAYER_ROOT");
// Observer // Observer
if (world.LocalPlayer == null) if (world.LocalPlayer == null)
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public void InitObserverWidgets(World world, Widget playerRoot) public void InitObserverWidgets(World world, Widget playerRoot)
{ {
var observerWidgets = Game.LoadWidget(world, "OBSERVER_WIDGETS", playerRoot, new WidgetArgs()); var observerWidgets = Game.LoadWidget(world, "OBSERVER_WIDGETS", playerRoot, new WidgetArgs());
observerWidgets.GetWidget<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked; observerWidgets.Get<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked;
} }
public void InitPlayerWidgets(World world, Widget playerRoot) public void InitPlayerWidgets(World world, Widget playerRoot)
@@ -109,29 +109,29 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs()); var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs());
playerWidgets.IsVisible = () => true; playerWidgets.IsVisible = () => true;
var sidebarRoot = playerWidgets.GetWidget("SIDEBAR_BACKGROUND"); var sidebarRoot = playerWidgets.Get("SIDEBAR_BACKGROUND");
BindOrderButton<SellOrderGenerator>(world, sidebarRoot, "SELL_BUTTON", "sell"); BindOrderButton<SellOrderGenerator>(world, sidebarRoot, "SELL_BUTTON", "sell");
BindOrderButton<RepairOrderGenerator>(world, sidebarRoot, "REPAIR_BUTTON", "repair"); BindOrderButton<RepairOrderGenerator>(world, sidebarRoot, "REPAIR_BUTTON", "repair");
var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>(); var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
sidebarRoot.GetWidget<LabelWidget>("CASH").GetText = () => sidebarRoot.Get<LabelWidget>("CASH").GetText = () =>
"${0}".F(playerResources.DisplayCash + playerResources.DisplayOre); "${0}".F(playerResources.DisplayCash + playerResources.DisplayOre);
queueTabs = playerWidgets.GetWidget<ProductionTabsWidget>("PRODUCTION_TABS"); queueTabs = playerWidgets.Get<ProductionTabsWidget>("PRODUCTION_TABS");
world.ActorAdded += queueTabs.ActorChanged; world.ActorAdded += queueTabs.ActorChanged;
world.ActorRemoved += queueTabs.ActorChanged; world.ActorRemoved += queueTabs.ActorChanged;
var queueTypes = sidebarRoot.GetWidget("PRODUCTION_TYPES"); var queueTypes = sidebarRoot.Get("PRODUCTION_TYPES");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("BUILDING"), "Building"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("BUILDING"), "Building");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("DEFENSE"), "Defense"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("DEFENSE"), "Defense");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("INFANTRY"), "Infantry"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("INFANTRY"), "Infantry");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("VEHICLE"), "Vehicle"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("VEHICLE"), "Vehicle");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("AIRCRAFT"), "Aircraft"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("AIRCRAFT"), "Aircraft");
playerWidgets.GetWidget<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked; playerWidgets.Get<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked;
var cheatsButton = playerWidgets.GetWidget<ButtonWidget>("CHEATS_BUTTON"); var cheatsButton = playerWidgets.Get<ButtonWidget>("CHEATS_BUTTON");
cheatsButton.OnClick = () => cheatsButton.OnClick = () =>
{ {
if (menu != MenuType.None) if (menu != MenuType.None)
@@ -142,7 +142,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}; };
cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats; cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats;
var winLossWatcher = playerWidgets.GetWidget<LogicTickerWidget>("WIN_LOSS_WATCHER"); var winLossWatcher = playerWidgets.Get<LogicTickerWidget>("WIN_LOSS_WATCHER");
winLossWatcher.OnTick = () => winLossWatcher.OnTick = () =>
{ {
if (world.LocalPlayer.WinState != WinState.Undefined) if (world.LocalPlayer.WinState != WinState.Undefined)
@@ -157,11 +157,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
static void BindOrderButton<T>(World world, Widget parent, string button, string icon) static void BindOrderButton<T>(World world, Widget parent, string button, string icon)
where T : IOrderGenerator, new() where T : IOrderGenerator, new()
{ {
var w = parent.GetWidget<ToggleButtonWidget>(button); var w = parent.Get<ToggleButtonWidget>(button);
w.OnClick = () => world.ToggleInputMode<T>(); w.OnClick = () => world.ToggleInputMode<T>();
w.IsToggled = () => world.OrderGenerator is T; w.IsToggled = () => world.OrderGenerator is T;
w.GetWidget<ImageWidget>("ICON").GetImageName = w.Get<ImageWidget>("ICON").GetImageName =
() => world.OrderGenerator is T ? icon+"-active" : icon; () => world.OrderGenerator is T ? icon+"-active" : icon;
} }
} }

View File

@@ -23,14 +23,14 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public CncIngameMenuLogic(Widget widget, World world, Action onExit) public CncIngameMenuLogic(Widget widget, World world, Action onExit)
{ {
var resumeDisabled = false; var resumeDisabled = false;
menu = widget.GetWidget("INGAME_MENU"); menu = widget.Get("INGAME_MENU");
var mpe = world.WorldActor.Trait<CncMenuPaletteEffect>(); var mpe = world.WorldActor.Trait<CncMenuPaletteEffect>();
mpe.Fade(CncMenuPaletteEffect.EffectType.Desaturated); mpe.Fade(CncMenuPaletteEffect.EffectType.Desaturated);
menu.GetWidget<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion; menu.Get<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
bool hideButtons = false; bool hideButtons = false;
menu.GetWidget("MENU_BUTTONS").IsVisible = () => !hideButtons; menu.Get("MENU_BUTTONS").IsVisible = () => !hideButtons;
// TODO: Create a mechanism to do things like this cleaner. Also needed for scripted missions // TODO: Create a mechanism to do things like this cleaner. Also needed for scripted missions
Action onQuit = () => Action onQuit = () =>
@@ -48,16 +48,16 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Action doNothing = () => {}; Action doNothing = () => {};
menu.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = () => menu.Get<ButtonWidget>("QUIT_BUTTON").OnClick = () =>
CncWidgetUtils.PromptConfirmAction("Abort Mission", "Leave this game and return to the menu?", onQuit, doNothing); CncWidgetUtils.PromptConfirmAction("Abort Mission", "Leave this game and return to the menu?", onQuit, doNothing);
Action onSurrender = () => world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false)); Action onSurrender = () => world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false));
var surrenderButton = menu.GetWidget<ButtonWidget>("SURRENDER_BUTTON"); var surrenderButton = menu.Get<ButtonWidget>("SURRENDER_BUTTON");
surrenderButton.IsDisabled = () => (world.LocalPlayer == null || world.LocalPlayer.WinState != WinState.Undefined); surrenderButton.IsDisabled = () => (world.LocalPlayer == null || world.LocalPlayer.WinState != WinState.Undefined);
surrenderButton.OnClick = () => surrenderButton.OnClick = () =>
CncWidgetUtils.PromptConfirmAction("Surrender", "Are you sure you want to surrender?", onSurrender, doNothing); CncWidgetUtils.PromptConfirmAction("Surrender", "Are you sure you want to surrender?", onSurrender, doNothing);
menu.GetWidget<ButtonWidget>("MUSIC_BUTTON").OnClick = () => menu.Get<ButtonWidget>("MUSIC_BUTTON").OnClick = () =>
{ {
hideButtons = true; hideButtons = true;
Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs() Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs()
@@ -66,7 +66,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}); });
}; };
menu.GetWidget<ButtonWidget>("SETTINGS_BUTTON").OnClick = () => menu.Get<ButtonWidget>("SETTINGS_BUTTON").OnClick = () =>
{ {
hideButtons = true; hideButtons = true;
Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs() Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs()
@@ -76,7 +76,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}); });
}; };
var resumeButton = menu.GetWidget<ButtonWidget>("RESUME_BUTTON"); var resumeButton = menu.Get<ButtonWidget>("RESUME_BUTTON");
resumeButton.IsDisabled = () => resumeDisabled; resumeButton.IsDisabled = () => resumeDisabled;
resumeButton.OnClick = () => resumeButton.OnClick = () =>
{ {

View File

@@ -36,17 +36,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
this.filesToExtract = filesToExtract; this.filesToExtract = filesToExtract;
panel = widget; panel = widget;
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR"); progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL"); statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
backButton = panel.GetWidget<ButtonWidget>("BACK_BUTTON"); backButton = panel.Get<ButtonWidget>("BACK_BUTTON");
backButton.OnClick = Ui.CloseWindow; backButton.OnClick = Ui.CloseWindow;
retryButton = panel.GetWidget<ButtonWidget>("RETRY_BUTTON"); retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
retryButton.OnClick = CheckForDisk; retryButton.OnClick = CheckForDisk;
installingContainer = panel.GetWidget("INSTALLING"); installingContainer = panel.Get("INSTALLING");
insertDiskContainer = panel.GetWidget("INSERT_DISK"); insertDiskContainer = panel.Get("INSERT_DISK");
CheckForDisk(); CheckForDisk();
} }

View File

@@ -19,17 +19,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public CncInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading) public CncInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading)
{ {
var panel = widget.GetWidget("INSTALL_PANEL"); var panel = widget.Get("INSTALL_PANEL");
var args = new WidgetArgs() var args = new WidgetArgs()
{ {
{ "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } },
{ "installData", installData } { "installData", installData }
}; };
panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args);
panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () => panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
Ui.OpenWindow("INSTALL_FROMCD_PANEL", new WidgetArgs(args) Ui.OpenWindow("INSTALL_FROMCD_PANEL", new WidgetArgs(args)
{ {
{ "filesToCopy", new[] { "CONQUER.MIX", "DESERT.MIX", "SCORES.MIX", { "filesToCopy", new[] { "CONQUER.MIX", "DESERT.MIX", "SCORES.MIX",
@@ -37,9 +37,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
{ "filesToExtract", new[] { "speech.mix", "tempicnh.mix", "transit.mix" } }, { "filesToExtract", new[] { "speech.mix", "tempicnh.mix", "transit.mix" } },
}); });
panel.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
panel.GetWidget<ButtonWidget>("MODS_BUTTON").OnClick = () => panel.Get<ButtonWidget>("MODS_BUTTON").OnClick = () =>
{ {
Ui.OpenWindow("MODS_PANEL", new WidgetArgs() Ui.OpenWindow("MODS_PANEL", new WidgetArgs()
{ {

View File

@@ -27,17 +27,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
world.WorldActor.Trait<CncMenuPaletteEffect>() world.WorldActor.Trait<CncMenuPaletteEffect>()
.Fade(CncMenuPaletteEffect.EffectType.Desaturated); .Fade(CncMenuPaletteEffect.EffectType.Desaturated);
rootMenu = widget.GetWidget("MENU_BACKGROUND"); rootMenu = widget.Get("MENU_BACKGROUND");
rootMenu.GetWidget<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion; rootMenu.Get<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
// Menu buttons // Menu buttons
var mainMenu = widget.GetWidget("MAIN_MENU"); var mainMenu = widget.Get("MAIN_MENU");
mainMenu.IsVisible = () => Menu == MenuType.Main; mainMenu.IsVisible = () => Menu == MenuType.Main;
mainMenu.GetWidget<ButtonWidget>("SOLO_BUTTON").OnClick = StartSkirmishGame; mainMenu.Get<ButtonWidget>("SOLO_BUTTON").OnClick = StartSkirmishGame;
mainMenu.GetWidget<ButtonWidget>("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer; mainMenu.Get<ButtonWidget>("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer;
mainMenu.GetWidget<ButtonWidget>("MODS_BUTTON").OnClick = () => mainMenu.Get<ButtonWidget>("MODS_BUTTON").OnClick = () =>
{ {
Menu = MenuType.None; Menu = MenuType.None;
Ui.OpenWindow("MODS_PANEL", new WidgetArgs() Ui.OpenWindow("MODS_PANEL", new WidgetArgs()
@@ -47,23 +47,23 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}); });
}; };
mainMenu.GetWidget<ButtonWidget>("SETTINGS_BUTTON").OnClick = () => Menu = MenuType.Settings; mainMenu.Get<ButtonWidget>("SETTINGS_BUTTON").OnClick = () => Menu = MenuType.Settings;
mainMenu.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; mainMenu.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
// Multiplayer menu // Multiplayer menu
var multiplayerMenu = widget.GetWidget("MULTIPLAYER_MENU"); var multiplayerMenu = widget.Get("MULTIPLAYER_MENU");
multiplayerMenu.IsVisible = () => Menu == MenuType.Multiplayer; multiplayerMenu.IsVisible = () => Menu == MenuType.Multiplayer;
multiplayerMenu.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main; multiplayerMenu.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
multiplayerMenu.GetWidget<ButtonWidget>("JOIN_BUTTON").OnClick = () => OpenGamePanel("SERVERBROWSER_PANEL"); multiplayerMenu.Get<ButtonWidget>("JOIN_BUTTON").OnClick = () => OpenGamePanel("SERVERBROWSER_PANEL");
multiplayerMenu.GetWidget<ButtonWidget>("CREATE_BUTTON").OnClick = () => OpenGamePanel("CREATESERVER_PANEL"); multiplayerMenu.Get<ButtonWidget>("CREATE_BUTTON").OnClick = () => OpenGamePanel("CREATESERVER_PANEL");
multiplayerMenu.GetWidget<ButtonWidget>("DIRECTCONNECT_BUTTON").OnClick = () => OpenGamePanel("DIRECTCONNECT_PANEL"); multiplayerMenu.Get<ButtonWidget>("DIRECTCONNECT_BUTTON").OnClick = () => OpenGamePanel("DIRECTCONNECT_PANEL");
// Settings menu // Settings menu
var settingsMenu = widget.GetWidget("SETTINGS_MENU"); var settingsMenu = widget.Get("SETTINGS_MENU");
settingsMenu.IsVisible = () => Menu == MenuType.Settings; settingsMenu.IsVisible = () => Menu == MenuType.Settings;
settingsMenu.GetWidget<ButtonWidget>("REPLAYS_BUTTON").OnClick = () => settingsMenu.Get<ButtonWidget>("REPLAYS_BUTTON").OnClick = () =>
{ {
Menu = MenuType.None; Menu = MenuType.None;
Ui.OpenWindow("REPLAYBROWSER_PANEL", new WidgetArgs() Ui.OpenWindow("REPLAYBROWSER_PANEL", new WidgetArgs()
@@ -73,7 +73,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}); });
}; };
settingsMenu.GetWidget<ButtonWidget>("MUSIC_BUTTON").OnClick = () => settingsMenu.Get<ButtonWidget>("MUSIC_BUTTON").OnClick = () =>
{ {
Menu = MenuType.None; Menu = MenuType.None;
Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs() Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs()
@@ -82,7 +82,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}); });
}; };
settingsMenu.GetWidget<ButtonWidget>("SETTINGS_BUTTON").OnClick = () => settingsMenu.Get<ButtonWidget>("SETTINGS_BUTTON").OnClick = () =>
{ {
Menu = MenuType.None; Menu = MenuType.None;
Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs() Ui.OpenWindow("SETTINGS_PANEL", new WidgetArgs()
@@ -92,9 +92,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}); });
}; };
settingsMenu.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main; settingsMenu.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
rootMenu.GetWidget<ImageWidget>("RECBLOCK").IsVisible = () => world.FrameNumber / 25 % 2 == 0; rootMenu.Get<ImageWidget>("RECBLOCK").IsVisible = () => world.FrameNumber / 25 % 2 == 0;
} }
void OpenGamePanel(string id) void OpenGamePanel(string id)

View File

@@ -31,10 +31,10 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public CncMusicPlayerLogic(Widget widget, Action onExit) public CncMusicPlayerLogic(Widget widget, Action onExit)
{ {
panel = widget.GetWidget("MUSIC_PANEL"); panel = widget.Get("MUSIC_PANEL");
var ml = panel.GetWidget<ScrollPanelWidget>("MUSIC_LIST"); var ml = panel.Get<ScrollPanelWidget>("MUSIC_LIST");
itemTemplate = ml.GetWidget<ScrollItemWidget>("MUSIC_TEMPLATE"); itemTemplate = ml.Get<ScrollItemWidget>("MUSIC_TEMPLATE");
BuildMusicTable(ml); BuildMusicTable(ml);
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
installed = Rules.Music.Where(m => m.Value.Exists).Any(); installed = Rules.Music.Where(m => m.Value.Exists).Any();
Func<bool> noMusic = () => !installed; Func<bool> noMusic = () => !installed;
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
Action afterInstall = () => Action afterInstall = () =>
{ {
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
BuildMusicTable(ml); BuildMusicTable(ml);
}; };
var installButton = panel.GetWidget<ButtonWidget>("INSTALL_BUTTON"); var installButton = panel.Get<ButtonWidget>("INSTALL_BUTTON");
installButton.OnClick = () => installButton.OnClick = () =>
Ui.OpenWindow("INSTALL_MUSIC_PANEL", new WidgetArgs() { Ui.OpenWindow("INSTALL_MUSIC_PANEL", new WidgetArgs() {
{ "afterInstall", afterInstall }, { "afterInstall", afterInstall },
@@ -69,42 +69,42 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
}); });
installButton.IsVisible = () => music.Length < 3; // Hack around music being split between transit.mix and scores.mix installButton.IsVisible = () => music.Length < 3; // Hack around music being split between transit.mix and scores.mix
panel.GetWidget("NO_MUSIC_LABEL").IsVisible = noMusic; panel.Get("NO_MUSIC_LABEL").IsVisible = noMusic;
var playButton = panel.GetWidget<ButtonWidget>("BUTTON_PLAY"); var playButton = panel.Get<ButtonWidget>("BUTTON_PLAY");
playButton.OnClick = Play; playButton.OnClick = Play;
playButton.IsDisabled = noMusic; playButton.IsDisabled = noMusic;
var pauseButton = panel.GetWidget<ButtonWidget>("BUTTON_PAUSE"); var pauseButton = panel.Get<ButtonWidget>("BUTTON_PAUSE");
pauseButton.OnClick = Pause; pauseButton.OnClick = Pause;
pauseButton.IsDisabled = noMusic; pauseButton.IsDisabled = noMusic;
var stopButton = panel.GetWidget<ButtonWidget>("BUTTON_STOP"); var stopButton = panel.Get<ButtonWidget>("BUTTON_STOP");
stopButton.OnClick = Stop; stopButton.OnClick = Stop;
stopButton.IsDisabled = noMusic; stopButton.IsDisabled = noMusic;
var nextButton = panel.GetWidget<ButtonWidget>("BUTTON_NEXT"); var nextButton = panel.Get<ButtonWidget>("BUTTON_NEXT");
nextButton.OnClick = () => { currentSong = GetNextSong(); Play(); }; nextButton.OnClick = () => { currentSong = GetNextSong(); Play(); };
nextButton.IsDisabled = noMusic; nextButton.IsDisabled = noMusic;
var prevButton = panel.GetWidget<ButtonWidget>("BUTTON_PREV"); var prevButton = panel.Get<ButtonWidget>("BUTTON_PREV");
prevButton.OnClick = () => { currentSong = GetPrevSong(); Play(); }; prevButton.OnClick = () => { currentSong = GetPrevSong(); Play(); };
prevButton.IsDisabled = noMusic; prevButton.IsDisabled = noMusic;
var shuffleCheckbox = panel.GetWidget<CheckboxWidget>("SHUFFLE"); var shuffleCheckbox = panel.Get<CheckboxWidget>("SHUFFLE");
shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle; shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle;
shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true; shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true;
var repeatCheckbox = panel.GetWidget<CheckboxWidget>("REPEAT"); var repeatCheckbox = panel.Get<CheckboxWidget>("REPEAT");
repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat; repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat;
repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true; repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true;
panel.GetWidget<LabelWidget>("TIME_LABEL").GetText = () => (currentSong == null) ? "" : panel.Get<LabelWidget>("TIME_LABEL").GetText = () => (currentSong == null) ? "" :
"{0:D2}:{1:D2} / {2:D2}:{3:D2}".F((int)Sound.MusicSeekPosition / 60, (int)Sound.MusicSeekPosition % 60, "{0:D2}:{1:D2} / {2:D2}:{3:D2}".F((int)Sound.MusicSeekPosition / 60, (int)Sound.MusicSeekPosition % 60,
currentSong.Length / 60, currentSong.Length % 60); currentSong.Length / 60, currentSong.Length % 60);
panel.GetWidget<LabelWidget>("TITLE_LABEL").GetText = () => (currentSong == null) ? "" : currentSong.Title; panel.Get<LabelWidget>("TITLE_LABEL").GetText = () => (currentSong == null) ? "" : currentSong.Title;
var musicSlider = panel.GetWidget<SliderWidget>("MUSIC_SLIDER"); var musicSlider = panel.Get<SliderWidget>("MUSIC_SLIDER");
musicSlider.OnChange += x => Sound.MusicVolume = x; musicSlider.OnChange += x => Sound.MusicVolume = x;
musicSlider.Value = Sound.MusicVolume; musicSlider.Value = Sound.MusicVolume;
} }
@@ -122,8 +122,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
currentSong = song; currentSong = song;
var item = ScrollItemWidget.Setup(itemTemplate, () => currentSong == song, () => { currentSong = song; Play(); }); var item = ScrollItemWidget.Setup(itemTemplate, () => currentSong == song, () => { currentSong = song; Play(); });
item.GetWidget<LabelWidget>("TITLE").GetText = () => song.Title; item.Get<LabelWidget>("TITLE").GetText = () => song.Title;
item.GetWidget<LabelWidget>("LENGTH").GetText = () => SongLengthLabel(song); item.Get<LabelWidget>("LENGTH").GetText = () => SongLengthLabel(song);
list.AddChild(item); list.AddChild(item);
} }
} }
@@ -140,22 +140,22 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Play(); Play();
}); });
panel.GetWidget("BUTTON_PLAY").Visible = false; panel.Get("BUTTON_PLAY").Visible = false;
panel.GetWidget("BUTTON_PAUSE").Visible = true; panel.Get("BUTTON_PAUSE").Visible = true;
} }
void Pause() void Pause()
{ {
Sound.PauseMusic(); Sound.PauseMusic();
panel.GetWidget("BUTTON_PAUSE").Visible = false; panel.Get("BUTTON_PAUSE").Visible = false;
panel.GetWidget("BUTTON_PLAY").Visible = true; panel.Get("BUTTON_PLAY").Visible = true;
} }
void Stop() void Stop()
{ {
Sound.StopMusic(); Sound.StopMusic();
panel.GetWidget("BUTTON_PAUSE").Visible = false; panel.Get("BUTTON_PAUSE").Visible = false;
panel.GetWidget("BUTTON_PLAY").Visible = true; panel.Get("BUTTON_PLAY").Visible = true;
} }
string SongLengthLabel(MusicInfo song) string SongLengthLabel(MusicInfo song)

View File

@@ -19,9 +19,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public CncPerfDebugLogic(Widget widget) public CncPerfDebugLogic(Widget widget)
{ {
// Performance info // Performance info
var perfRoot = widget.GetWidget("PERFORMANCE_INFO"); var perfRoot = widget.Get("PERFORMANCE_INFO");
perfRoot.IsVisible = () => Game.Settings.Debug.PerfGraph; perfRoot.IsVisible = () => Game.Settings.Debug.PerfGraph;
var text = perfRoot.GetWidget<LabelWidget>("PERF_TEXT"); var text = perfRoot.Get<LabelWidget>("PERF_TEXT");
text.IsVisible = () => Game.Settings.Debug.PerfText; text.IsVisible = () => Game.Settings.Debug.PerfText;
text.GetText = () => text.GetText = () =>
"Tick {0} @ {1:F1} ms\nRender {2} @ {3:F1} ms\nBatches: {4}".F( "Tick {0} @ {1:F1} ms\nRender {2} @ {3:F1} ms\nBatches: {4}".F(

View File

@@ -32,14 +32,14 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public CncSettingsLogic(Widget widget, World world, Action onExit) public CncSettingsLogic(Widget widget, World world, Action onExit)
{ {
this.world = world; this.world = world;
var panel = widget.GetWidget("SETTINGS_PANEL"); var panel = widget.Get("SETTINGS_PANEL");
// General pane // General pane
var generalButton = panel.GetWidget<ButtonWidget>("GENERAL_BUTTON"); var generalButton = panel.Get<ButtonWidget>("GENERAL_BUTTON");
generalButton.OnClick = () => Settings = PanelType.General; generalButton.OnClick = () => Settings = PanelType.General;
generalButton.IsDisabled = () => Settings == PanelType.General; generalButton.IsDisabled = () => Settings == PanelType.General;
var generalPane = panel.GetWidget("GENERAL_CONTROLS"); var generalPane = panel.Get("GENERAL_CONTROLS");
generalPane.IsVisible = () => Settings == PanelType.General; generalPane.IsVisible = () => Settings == PanelType.General;
var gameSettings = Game.Settings.Game; var gameSettings = Game.Settings.Game;
@@ -49,36 +49,36 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
var soundSettings = Game.Settings.Sound; var soundSettings = Game.Settings.Sound;
// Player profile // Player profile
var nameTextfield = generalPane.GetWidget<TextFieldWidget>("NAME_TEXTFIELD"); var nameTextfield = generalPane.Get<TextFieldWidget>("NAME_TEXTFIELD");
nameTextfield.Text = playerSettings.Name; nameTextfield.Text = playerSettings.Name;
playerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>(); playerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>();
playerPalettePreview.Ramp = playerSettings.ColorRamp; playerPalettePreview.Ramp = playerSettings.ColorRamp;
var colorDropdown = generalPane.GetWidget<DropDownButtonWidget>("COLOR"); var colorDropdown = generalPane.Get<DropDownButtonWidget>("COLOR");
colorDropdown.OnMouseDown = _ => ShowColorPicker(colorDropdown, playerSettings); colorDropdown.OnMouseDown = _ => ShowColorPicker(colorDropdown, playerSettings);
colorDropdown.GetWidget<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerSettings.ColorRamp.GetColor(0); colorDropdown.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerSettings.ColorRamp.GetColor(0);
// Debug // Debug
var perftextCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFTEXT_CHECKBOX"); var perftextCheckbox = generalPane.Get<CheckboxWidget>("PERFTEXT_CHECKBOX");
perftextCheckbox.IsChecked = () => debugSettings.PerfText; perftextCheckbox.IsChecked = () => debugSettings.PerfText;
perftextCheckbox.OnClick = () => debugSettings.PerfText ^= true; perftextCheckbox.OnClick = () => debugSettings.PerfText ^= true;
var perfgraphCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFGRAPH_CHECKBOX"); var perfgraphCheckbox = generalPane.Get<CheckboxWidget>("PERFGRAPH_CHECKBOX");
perfgraphCheckbox.IsChecked = () => debugSettings.PerfGraph; perfgraphCheckbox.IsChecked = () => debugSettings.PerfGraph;
perfgraphCheckbox.OnClick = () => debugSettings.PerfGraph ^= true; perfgraphCheckbox.OnClick = () => debugSettings.PerfGraph ^= true;
var checkunsyncedCheckbox = generalPane.GetWidget<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX"); var checkunsyncedCheckbox = generalPane.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
checkunsyncedCheckbox.IsChecked = () => debugSettings.SanityCheckUnsyncedCode; checkunsyncedCheckbox.IsChecked = () => debugSettings.SanityCheckUnsyncedCode;
checkunsyncedCheckbox.OnClick = () => debugSettings.SanityCheckUnsyncedCode ^= true; checkunsyncedCheckbox.OnClick = () => debugSettings.SanityCheckUnsyncedCode ^= true;
// Video // Video
var windowModeDropdown = generalPane.GetWidget<DropDownButtonWidget>("MODE_DROPDOWN"); var windowModeDropdown = generalPane.Get<DropDownButtonWidget>("MODE_DROPDOWN");
windowModeDropdown.OnMouseDown = _ => SettingsMenuLogic.ShowWindowModeDropdown(windowModeDropdown, graphicsSettings); windowModeDropdown.OnMouseDown = _ => SettingsMenuLogic.ShowWindowModeDropdown(windowModeDropdown, graphicsSettings);
windowModeDropdown.GetText = () => graphicsSettings.Mode == WindowMode.Windowed ? windowModeDropdown.GetText = () => graphicsSettings.Mode == WindowMode.Windowed ?
"Windowed" : graphicsSettings.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen"; "Windowed" : graphicsSettings.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
var pixelDoubleCheckbox = generalPane.GetWidget<CheckboxWidget>("PIXELDOUBLE_CHECKBOX"); var pixelDoubleCheckbox = generalPane.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
pixelDoubleCheckbox.IsChecked = () => graphicsSettings.PixelDouble; pixelDoubleCheckbox.IsChecked = () => graphicsSettings.PixelDouble;
pixelDoubleCheckbox.OnClick = () => pixelDoubleCheckbox.OnClick = () =>
{ {
@@ -86,53 +86,53 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Game.viewport.Zoom = graphicsSettings.PixelDouble ? 2 : 1; Game.viewport.Zoom = graphicsSettings.PixelDouble ? 2 : 1;
}; };
generalPane.GetWidget("WINDOW_RESOLUTION").IsVisible = () => graphicsSettings.Mode == WindowMode.Windowed; generalPane.Get("WINDOW_RESOLUTION").IsVisible = () => graphicsSettings.Mode == WindowMode.Windowed;
var windowWidth = generalPane.GetWidget<TextFieldWidget>("WINDOW_WIDTH"); var windowWidth = generalPane.Get<TextFieldWidget>("WINDOW_WIDTH");
windowWidth.Text = graphicsSettings.WindowedSize.X.ToString(); windowWidth.Text = graphicsSettings.WindowedSize.X.ToString();
var windowHeight = generalPane.GetWidget<TextFieldWidget>("WINDOW_HEIGHT"); var windowHeight = generalPane.Get<TextFieldWidget>("WINDOW_HEIGHT");
windowHeight.Text = graphicsSettings.WindowedSize.Y.ToString(); windowHeight.Text = graphicsSettings.WindowedSize.Y.ToString();
// Audio // Audio
var soundSlider = generalPane.GetWidget<SliderWidget>("SOUND_SLIDER"); var soundSlider = generalPane.Get<SliderWidget>("SOUND_SLIDER");
soundSlider.OnChange += x => { soundSettings.SoundVolume = x; Sound.SoundVolume = x;}; soundSlider.OnChange += x => { soundSettings.SoundVolume = x; Sound.SoundVolume = x;};
soundSlider.Value = soundSettings.SoundVolume; soundSlider.Value = soundSettings.SoundVolume;
var musicSlider = generalPane.GetWidget<SliderWidget>("MUSIC_SLIDER"); var musicSlider = generalPane.Get<SliderWidget>("MUSIC_SLIDER");
musicSlider.OnChange += x => { soundSettings.MusicVolume = x; Sound.MusicVolume = x; }; musicSlider.OnChange += x => { soundSettings.MusicVolume = x; Sound.MusicVolume = x; };
musicSlider.Value = soundSettings.MusicVolume; musicSlider.Value = soundSettings.MusicVolume;
var shellmapMusicCheckbox = generalPane.GetWidget<CheckboxWidget>("SHELLMAP_MUSIC"); var shellmapMusicCheckbox = generalPane.Get<CheckboxWidget>("SHELLMAP_MUSIC");
shellmapMusicCheckbox.IsChecked = () => soundSettings.ShellmapMusic; shellmapMusicCheckbox.IsChecked = () => soundSettings.ShellmapMusic;
shellmapMusicCheckbox.OnClick = () => soundSettings.ShellmapMusic ^= true; shellmapMusicCheckbox.OnClick = () => soundSettings.ShellmapMusic ^= true;
// Input pane // Input pane
var inputPane = panel.GetWidget("INPUT_CONTROLS"); var inputPane = panel.Get("INPUT_CONTROLS");
inputPane.IsVisible = () => Settings == PanelType.Input; inputPane.IsVisible = () => Settings == PanelType.Input;
var inputButton = panel.GetWidget<ButtonWidget>("INPUT_BUTTON"); var inputButton = panel.Get<ButtonWidget>("INPUT_BUTTON");
inputButton.OnClick = () => Settings = PanelType.Input; inputButton.OnClick = () => Settings = PanelType.Input;
inputButton.IsDisabled = () => Settings == PanelType.Input; inputButton.IsDisabled = () => Settings == PanelType.Input;
inputPane.GetWidget<CheckboxWidget>("CLASSICORDERS_CHECKBOX").IsDisabled = () => true; inputPane.Get<CheckboxWidget>("CLASSICORDERS_CHECKBOX").IsDisabled = () => true;
var scrollSlider = inputPane.GetWidget<SliderWidget>("SCROLLSPEED_SLIDER"); var scrollSlider = inputPane.Get<SliderWidget>("SCROLLSPEED_SLIDER");
scrollSlider.Value = gameSettings.ViewportEdgeScrollStep; scrollSlider.Value = gameSettings.ViewportEdgeScrollStep;
scrollSlider.OnChange += x => gameSettings.ViewportEdgeScrollStep = x; scrollSlider.OnChange += x => gameSettings.ViewportEdgeScrollStep = x;
var edgescrollCheckbox = inputPane.GetWidget<CheckboxWidget>("EDGESCROLL_CHECKBOX"); var edgescrollCheckbox = inputPane.Get<CheckboxWidget>("EDGESCROLL_CHECKBOX");
edgescrollCheckbox.IsChecked = () => gameSettings.ViewportEdgeScroll; edgescrollCheckbox.IsChecked = () => gameSettings.ViewportEdgeScroll;
edgescrollCheckbox.OnClick = () => gameSettings.ViewportEdgeScroll ^= true; edgescrollCheckbox.OnClick = () => gameSettings.ViewportEdgeScroll ^= true;
var mouseScrollDropdown = inputPane.GetWidget<DropDownButtonWidget>("MOUSE_SCROLL"); var mouseScrollDropdown = inputPane.Get<DropDownButtonWidget>("MOUSE_SCROLL");
mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(mouseScrollDropdown, gameSettings); mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(mouseScrollDropdown, gameSettings);
mouseScrollDropdown.GetText = () => gameSettings.MouseScroll.ToString(); mouseScrollDropdown.GetText = () => gameSettings.MouseScroll.ToString();
var teamchatCheckbox = inputPane.GetWidget<CheckboxWidget>("TEAMCHAT_CHECKBOX"); var teamchatCheckbox = inputPane.Get<CheckboxWidget>("TEAMCHAT_CHECKBOX");
teamchatCheckbox.IsChecked = () => gameSettings.TeamChatToggle; teamchatCheckbox.IsChecked = () => gameSettings.TeamChatToggle;
teamchatCheckbox.OnClick = () => gameSettings.TeamChatToggle ^= true; teamchatCheckbox.OnClick = () => gameSettings.TeamChatToggle ^= true;
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () =>
{ {
playerSettings.Name = nameTextfield.Text; playerSettings.Name = nameTextfield.Text;
int x, y; int x, y;
@@ -175,7 +175,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate, var item = ScrollItemWidget.Setup(itemTemplate,
() => s.MouseScroll == options[o], () => s.MouseScroll == options[o],
() => s.MouseScroll = options[o]); () => s.MouseScroll = options[o]);
item.GetWidget<LabelWidget>("LABEL").GetText = () => o; item.Get<LabelWidget>("LABEL").GetText = () => o;
return item; return item;
}; };

View File

@@ -27,11 +27,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
var pr = palette.world.LocalPlayer.PlayerActor.Trait<PlayerResources>(); var pr = palette.world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
widget.IsVisible = () => palette.TooltipActor != null; widget.IsVisible = () => palette.TooltipActor != null;
var nameLabel = widget.GetWidget<LabelWidget>("NAME"); var nameLabel = widget.Get<LabelWidget>("NAME");
var requiresLabel = widget.GetWidget<LabelWidget>("REQUIRES"); var requiresLabel = widget.Get<LabelWidget>("REQUIRES");
var powerLabel = widget.GetWidget<LabelWidget>("POWER"); var powerLabel = widget.Get<LabelWidget>("POWER");
var timeLabel = widget.GetWidget<LabelWidget>("TIME"); var timeLabel = widget.Get<LabelWidget>("TIME");
var costLabel = widget.GetWidget<LabelWidget>("COST"); var costLabel = widget.Get<LabelWidget>("COST");
var font = Game.Renderer.Fonts[nameLabel.Font]; var font = Game.Renderer.Fonts[nameLabel.Font];
var requiresFont = Game.Renderer.Fonts[requiresLabel.Font]; var requiresFont = Game.Renderer.Fonts[requiresLabel.Font];

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public SimpleTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, Func<string> getText) public SimpleTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, Func<string> getText)
{ {
var label = widget.GetWidget<LabelWidget>("LABEL"); var label = widget.Get<LabelWidget>("LABEL");
var font = Game.Renderer.Fonts[label.Font]; var font = Game.Renderer.Fonts[label.Font];
var cachedWidth = 0; var cachedWidth = 0;

View File

@@ -20,9 +20,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public SupportPowerTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, SupportPowersWidget palette) public SupportPowerTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, SupportPowersWidget palette)
{ {
widget.IsVisible = () => palette.TooltipPower != null; widget.IsVisible = () => palette.TooltipPower != null;
var nameLabel = widget.GetWidget<LabelWidget>("NAME"); var nameLabel = widget.Get<LabelWidget>("NAME");
var timeLabel = widget.GetWidget<LabelWidget>("TIME"); var timeLabel = widget.Get<LabelWidget>("TIME");
var descLabel = widget.GetWidget<LabelWidget>("DESC"); var descLabel = widget.Get<LabelWidget>("DESC");
var nameFont = Game.Renderer.Fonts[nameLabel.Font]; var nameFont = Game.Renderer.Fonts[nameLabel.Font];
var timeFont = Game.Renderer.Fonts[timeLabel.Font]; var timeFont = Game.Renderer.Fonts[timeLabel.Font];
var descFont = Game.Renderer.Fonts[descLabel.Font]; var descFont = Game.Renderer.Fonts[descLabel.Font];

View File

@@ -20,9 +20,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public WorldTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, CncWorldInteractionControllerWidget wic) public WorldTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, CncWorldInteractionControllerWidget wic)
{ {
widget.IsVisible = () => wic.TooltipType != WorldTooltipType.None; widget.IsVisible = () => wic.TooltipType != WorldTooltipType.None;
var label = widget.GetWidget<LabelWidget>("LABEL"); var label = widget.Get<LabelWidget>("LABEL");
var flag = widget.GetWidget<ImageWidget>("FLAG"); var flag = widget.Get<ImageWidget>("FLAG");
var owner = widget.GetWidget<LabelWidget>("OWNER"); var owner = widget.Get<LabelWidget>("OWNER");
var font = Game.Renderer.Fonts[label.Font]; var font = Game.Renderer.Fonts[label.Font];
var ownerFont = Game.Renderer.Fonts[owner.Font]; var ownerFont = Game.Renderer.Fonts[owner.Font];

View File

@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Cnc.Widgets
{ {
pm = world.LocalPlayer.PlayerActor.Trait<PowerManager>(); pm = world.LocalPlayer.PlayerActor.Trait<PowerManager>();
tooltipContainer = Lazy.New(() => tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer)); Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
} }
public override void MouseEntered() public override void MouseEntered()

View File

@@ -63,7 +63,7 @@ namespace OpenRA.Mods.Cnc.Widgets
this.world = world; this.world = world;
this.worldRenderer = worldRenderer; this.worldRenderer = worldRenderer;
tooltipContainer = Lazy.New(() => tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer)); Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
cantBuild = new Animation("clock"); cantBuild = new Animation("clock");
cantBuild.PlayFetchIndex("idle", () => 0); cantBuild.PlayFetchIndex("idle", () => 0);

View File

@@ -86,7 +86,7 @@ namespace OpenRA.Mods.Cnc.Widgets
// Only visible if the production palette has icons to display // Only visible if the production palette has icons to display
IsVisible = () => queueGroup != null && Groups[queueGroup].Tabs.Count > 0; IsVisible = () => queueGroup != null && Groups[queueGroup].Tabs.Count > 0;
paletteWidget = Lazy.New(() => Ui.Root.GetWidget<ProductionPaletteWidget>(PaletteWidget)); paletteWidget = Lazy.New(() => Ui.Root.Get<ProductionPaletteWidget>(PaletteWidget));
} }
public void SelectNextTab(bool reverse) public void SelectNextTab(bool reverse)

View File

@@ -34,7 +34,7 @@ namespace OpenRA.Mods.Cnc.Widgets
{ {
pr = world.LocalPlayer.PlayerActor.Trait<PlayerResources>(); pr = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
tooltipContainer = Lazy.New(() => tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer)); Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
} }
public override void MouseEntered() public override void MouseEntered()

View File

@@ -45,7 +45,7 @@ namespace OpenRA.Mods.Cnc.Widgets
this.worldRenderer = worldRenderer; this.worldRenderer = worldRenderer;
spm = world.LocalPlayer.PlayerActor.Trait<SupportPowerManager>(); spm = world.LocalPlayer.PlayerActor.Trait<SupportPowerManager>();
tooltipContainer = Lazy.New(() => tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer)); Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
iconSprites = Rules.Info.Values.SelectMany( u => u.Traits.WithInterface<SupportPowerInfo>() ) iconSprites = Rules.Info.Values.SelectMany( u => u.Traits.WithInterface<SupportPowerInfo>() )
.Select(u => u.Image).Distinct() .Select(u => u.Image).Distinct()

View File

@@ -27,7 +27,7 @@ namespace OpenRA.Mods.Cnc.Widgets
: base() : base()
{ {
tooltipContainer = Lazy.New(() => tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer)); Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
} }
protected ToggleButtonWidget(ToggleButtonWidget other) protected ToggleButtonWidget(ToggleButtonWidget other)
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Cnc.Widgets
TooltipText = other.TooltipText; TooltipText = other.TooltipText;
TooltipContainer = other.TooltipContainer; TooltipContainer = other.TooltipContainer;
tooltipContainer = Lazy.New(() => tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer)); Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
} }
public override void MouseEntered() public override void MouseEntered()

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Scripting
public static void PlayFMVFullscreen(World w, string movie, Action onComplete) public static void PlayFMVFullscreen(World w, string movie, Action onComplete)
{ {
var playerRoot = Game.OpenWindow(w, "FMVPLAYER"); var playerRoot = Game.OpenWindow(w, "FMVPLAYER");
var player = playerRoot.GetWidget<VqaPlayerWidget>("PLAYER"); var player = playerRoot.Get<VqaPlayerWidget>("PLAYER");
w.EnableTick = false; w.EnableTick = false;
player.Load(movie); player.Load(movie);

View File

@@ -22,41 +22,41 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
var devTrait = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>(); var devTrait = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>();
var shroudCheckbox = widget.GetWidget<CheckboxWidget>("DISABLE_SHROUD"); var shroudCheckbox = widget.Get<CheckboxWidget>("DISABLE_SHROUD");
shroudCheckbox.IsChecked = () => devTrait.DisableShroud; shroudCheckbox.IsChecked = () => devTrait.DisableShroud;
shroudCheckbox.OnClick = () => Order(world, "DevShroud"); shroudCheckbox.OnClick = () => Order(world, "DevShroud");
var pathCheckbox = widget.GetWidget<CheckboxWidget>("SHOW_UNIT_PATHS"); var pathCheckbox = widget.Get<CheckboxWidget>("SHOW_UNIT_PATHS");
pathCheckbox.IsChecked = () => devTrait.PathDebug; pathCheckbox.IsChecked = () => devTrait.PathDebug;
pathCheckbox.OnClick = () => Order(world, "DevPathDebug"); pathCheckbox.OnClick = () => Order(world, "DevPathDebug");
widget.GetWidget<ButtonWidget>("GIVE_CASH").OnClick = () => widget.Get<ButtonWidget>("GIVE_CASH").OnClick = () =>
world.IssueOrder(new Order("DevGiveCash", world.LocalPlayer.PlayerActor, false)); world.IssueOrder(new Order("DevGiveCash", world.LocalPlayer.PlayerActor, false));
var fastBuildCheckbox = widget.GetWidget<CheckboxWidget>("INSTANT_BUILD"); var fastBuildCheckbox = widget.Get<CheckboxWidget>("INSTANT_BUILD");
fastBuildCheckbox.IsChecked = () => devTrait.FastBuild; fastBuildCheckbox.IsChecked = () => devTrait.FastBuild;
fastBuildCheckbox.OnClick = () => Order(world, "DevFastBuild"); fastBuildCheckbox.OnClick = () => Order(world, "DevFastBuild");
var fastChargeCheckbox = widget.GetWidget<CheckboxWidget>("INSTANT_CHARGE"); var fastChargeCheckbox = widget.Get<CheckboxWidget>("INSTANT_CHARGE");
fastChargeCheckbox.IsChecked = () => devTrait.FastCharge; fastChargeCheckbox.IsChecked = () => devTrait.FastCharge;
fastChargeCheckbox.OnClick = () => Order(world, "DevFastCharge"); fastChargeCheckbox.OnClick = () => Order(world, "DevFastCharge");
var allTechCheckbox = widget.GetWidget<CheckboxWidget>("ENABLE_TECH"); var allTechCheckbox = widget.Get<CheckboxWidget>("ENABLE_TECH");
allTechCheckbox.IsChecked = () => devTrait.AllTech; allTechCheckbox.IsChecked = () => devTrait.AllTech;
allTechCheckbox.OnClick = () => Order(world, "DevEnableTech"); allTechCheckbox.OnClick = () => Order(world, "DevEnableTech");
var powerCheckbox = widget.GetWidget<CheckboxWidget>("UNLIMITED_POWER"); var powerCheckbox = widget.Get<CheckboxWidget>("UNLIMITED_POWER");
powerCheckbox.IsChecked = () => devTrait.UnlimitedPower; powerCheckbox.IsChecked = () => devTrait.UnlimitedPower;
powerCheckbox.OnClick = () => Order(world, "DevUnlimitedPower"); powerCheckbox.OnClick = () => Order(world, "DevUnlimitedPower");
var buildAnywhereCheckbox = widget.GetWidget<CheckboxWidget>("BUILD_ANYWHERE"); var buildAnywhereCheckbox = widget.Get<CheckboxWidget>("BUILD_ANYWHERE");
buildAnywhereCheckbox.IsChecked = () => devTrait.BuildAnywhere; buildAnywhereCheckbox.IsChecked = () => devTrait.BuildAnywhere;
buildAnywhereCheckbox.OnClick = () => Order(world, "DevBuildAnywhere"); buildAnywhereCheckbox.OnClick = () => Order(world, "DevBuildAnywhere");
widget.GetWidget<ButtonWidget>("GIVE_EXPLORATION").OnClick = () => widget.Get<ButtonWidget>("GIVE_EXPLORATION").OnClick = () =>
world.IssueOrder(new Order("DevGiveExploration", world.LocalPlayer.PlayerActor, false)); world.IssueOrder(new Order("DevGiveExploration", world.LocalPlayer.PlayerActor, false));
widget.GetWidget<ButtonWidget>("CLOSE").OnClick = () => { Ui.CloseWindow(); onExit(); }; widget.Get<ButtonWidget>("CLOSE").OnClick = () => { Ui.CloseWindow(); onExit(); };
} }
public void Order(World world, string order) public void Order(World world, string order)

View File

@@ -25,9 +25,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
var panel = widget; var panel = widget;
ramp = initialRamp; ramp = initialRamp;
var hueSlider = panel.GetWidget<SliderWidget>("HUE"); var hueSlider = panel.Get<SliderWidget>("HUE");
var satSlider = panel.GetWidget<SliderWidget>("SAT"); var satSlider = panel.Get<SliderWidget>("SAT");
var lumSlider = panel.GetWidget<SliderWidget>("LUM"); var lumSlider = panel.Get<SliderWidget>("LUM");
Action sliderChanged = () => Action sliderChanged = () =>
{ {
@@ -49,9 +49,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
lumSlider.Value = ramp.L / 255f; lumSlider.Value = ramp.L / 255f;
}; };
panel.GetWidget<ButtonWidget>("SAVE_BUTTON").OnClick = () => onSelect(ramp); panel.Get<ButtonWidget>("SAVE_BUTTON").OnClick = () => onSelect(ramp);
var randomButton = panel.GetWidget<ButtonWidget>("RANDOM_BUTTON"); var randomButton = panel.Get<ButtonWidget>("RANDOM_BUTTON");
if (randomButton != null) if (randomButton != null)
randomButton.OnClick = () => randomButton.OnClick = () =>
{ {

View File

@@ -59,9 +59,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Game.ConnectionStateChanged += ConnectionStateChanged; Game.ConnectionStateChanged += ConnectionStateChanged;
var panel = widget; var panel = widget;
panel.GetWidget<ButtonWidget>("ABORT_BUTTON").OnClick = () => { CloseWindow(); onAbort(); }; panel.Get<ButtonWidget>("ABORT_BUTTON").OnClick = () => { CloseWindow(); onAbort(); };
widget.GetWidget<LabelWidget>("CONNECTING_DESC").GetText = () => widget.Get<LabelWidget>("CONNECTING_DESC").GetText = () =>
"Connecting to {0}:{1}...".F(host, port); "Connecting to {0}:{1}...".F(host, port);
} }
@@ -85,10 +85,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public ConnectionFailedLogic(Widget widget, string host, int port, Action onRetry, Action onAbort) public ConnectionFailedLogic(Widget widget, string host, int port, Action onRetry, Action onAbort)
{ {
var panel = widget; var panel = widget;
panel.GetWidget<ButtonWidget>("ABORT_BUTTON").OnClick = () => { Ui.CloseWindow(); onAbort(); }; panel.Get<ButtonWidget>("ABORT_BUTTON").OnClick = () => { Ui.CloseWindow(); onAbort(); };
panel.GetWidget<ButtonWidget>("RETRY_BUTTON").OnClick = () => { Ui.CloseWindow(); onRetry(); }; panel.Get<ButtonWidget>("RETRY_BUTTON").OnClick = () => { Ui.CloseWindow(); onRetry(); };
widget.GetWidget<LabelWidget>("CONNECTING_DESC").GetText = () => widget.Get<LabelWidget>("CONNECTING_DESC").GetText = () =>
"Could not connect to {0}:{1}".F(host, port); "Could not connect to {0}:{1}".F(host, port);
} }
} }

View File

@@ -28,9 +28,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public DiplomacyLogic(World world) public DiplomacyLogic(World world)
{ {
this.world = world; this.world = world;
var root = Ui.Root.GetWidget("INGAME_ROOT"); var root = Ui.Root.Get("INGAME_ROOT");
var diplomacyBG = root.GetWidget("DIPLOMACY_BG"); var diplomacyBG = root.Get("DIPLOMACY_BG");
var diplomacy = root.GetWidget<ButtonWidget>("INGAME_DIPLOMACY_BUTTON"); var diplomacy = root.Get<ButtonWidget>("INGAME_DIPLOMACY_BUTTON");
diplomacy.OnClick = () => diplomacy.OnClick = () =>
{ {
@@ -129,7 +129,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
() => s == world.LocalPlayer.Stances[ p ], () => s == world.LocalPlayer.Stances[ p ],
() => SetStance(dropdown, p, s)); () => SetStance(dropdown, p, s));
item.GetWidget<LabelWidget>("LABEL").GetText = () => s.ToString(); item.Get<LabelWidget>("LABEL").GetText = () => s.ToString();
return item; return item;
}; };

View File

@@ -19,14 +19,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public DirectConnectLogic(Widget widget, Action onExit, Action openLobby) public DirectConnectLogic(Widget widget, Action onExit, Action openLobby)
{ {
var panel = widget; var panel = widget;
var ipField = panel.GetWidget<TextFieldWidget>("IP"); var ipField = panel.Get<TextFieldWidget>("IP");
var portField = panel.GetWidget<TextFieldWidget>("PORT"); var portField = panel.Get<TextFieldWidget>("PORT");
var last = Game.Settings.Player.LastServer.Split(':'); var last = Game.Settings.Player.LastServer.Split(':');
ipField.Text = last.Length > 1 ? last[0] : "localhost"; ipField.Text = last.Length > 1 ? last[0] : "localhost";
portField.Text = last.Length > 2 ? last[1] : "1234"; portField.Text = last.Length > 2 ? last[1] : "1234";
panel.GetWidget<ButtonWidget>("JOIN_BUTTON").OnClick = () => panel.Get<ButtonWidget>("JOIN_BUTTON").OnClick = () =>
{ {
var port = Exts.WithDefault(1234, () => int.Parse(portField.Text)); var port = Exts.WithDefault(1234, () => int.Parse(portField.Text));
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
ConnectionLogic.Connect(ipField.Text, port, openLobby, onExit); ConnectionLogic.Connect(ipField.Text, port, openLobby, onExit);
}; };
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
} }
} }
} }

View File

@@ -33,9 +33,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
this.installData = installData; this.installData = installData;
this.afterInstall = afterInstall; this.afterInstall = afterInstall;
panel = widget.GetWidget("INSTALL_DOWNLOAD_PANEL"); panel = widget.Get("INSTALL_DOWNLOAD_PANEL");
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR"); progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL"); statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
ShowDownloadDialog(); ShowDownloadDialog();
} }
@@ -44,10 +44,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
statusLabel.GetText = () => "Initializing..."; statusLabel.GetText = () => "Initializing...";
progressBar.SetIndeterminate(true); progressBar.SetIndeterminate(true);
var retryButton = panel.GetWidget<ButtonWidget>("RETRY_BUTTON"); var retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
retryButton.IsVisible = () => false; retryButton.IsVisible = () => false;
var cancelButton = panel.GetWidget<ButtonWidget>("CANCEL_BUTTON"); var cancelButton = panel.Get<ButtonWidget>("CANCEL_BUTTON");
// Save the package to a temp file // Save the package to a temp file
var file = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); var file = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());

View File

@@ -25,38 +25,38 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Game.BeforeGameStart += UnregisterEvents; Game.BeforeGameStart += UnregisterEvents;
var r = Ui.Root; var r = Ui.Root;
gameRoot = r.GetWidget("INGAME_ROOT"); gameRoot = r.Get("INGAME_ROOT");
var optionsBG = gameRoot.GetWidget("INGAME_OPTIONS_BG"); var optionsBG = gameRoot.Get("INGAME_OPTIONS_BG");
r.GetWidget<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () => r.Get<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () =>
optionsBG.Visible = !optionsBG.Visible; optionsBG.Visible = !optionsBG.Visible;
var cheatsButton = gameRoot.GetWidget<ButtonWidget>("CHEATS_BUTTON"); var cheatsButton = gameRoot.Get<ButtonWidget>("CHEATS_BUTTON");
cheatsButton.OnClick = () => cheatsButton.OnClick = () =>
{ {
Game.OpenWindow("CHEATS_PANEL", new WidgetArgs() {{"onExit", () => {} }}); Game.OpenWindow("CHEATS_PANEL", new WidgetArgs() {{"onExit", () => {} }});
}; };
cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats; cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats;
optionsBG.GetWidget<ButtonWidget>("DISCONNECT").OnClick = () => LeaveGame(optionsBG); optionsBG.Get<ButtonWidget>("DISCONNECT").OnClick = () => LeaveGame(optionsBG);
optionsBG.GetWidget<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU"); optionsBG.Get<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
optionsBG.GetWidget<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU"); optionsBG.Get<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
optionsBG.GetWidget<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false; optionsBG.Get<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false;
optionsBG.GetWidget<ButtonWidget>("SURRENDER").OnClick = () => optionsBG.Get<ButtonWidget>("SURRENDER").OnClick = () =>
{ {
optionsBG.Visible = false; optionsBG.Visible = false;
world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false)); world.IssueOrder(new Order("Surrender", world.LocalPlayer.PlayerActor, false));
}; };
optionsBG.GetWidget("SURRENDER").IsVisible = () => (world.LocalPlayer != null && world.LocalPlayer.WinState == WinState.Undefined); optionsBG.Get("SURRENDER").IsVisible = () => (world.LocalPlayer != null && world.LocalPlayer.WinState == WinState.Undefined);
var postgameBG = gameRoot.GetWidget("POSTGAME_BG"); var postgameBG = gameRoot.Get("POSTGAME_BG");
var postgameText = postgameBG.GetWidget<LabelWidget>("TEXT"); var postgameText = postgameBG.Get<LabelWidget>("TEXT");
var postGameObserve = postgameBG.GetWidget<ButtonWidget>("POSTGAME_OBSERVE"); var postGameObserve = postgameBG.Get<ButtonWidget>("POSTGAME_OBSERVE");
var postgameQuit = postgameBG.GetWidget<ButtonWidget>("POSTGAME_QUIT"); var postgameQuit = postgameBG.Get<ButtonWidget>("POSTGAME_QUIT");
postgameQuit.OnClick = () => LeaveGame(postgameQuit); postgameQuit.OnClick = () => LeaveGame(postgameQuit);
postGameObserve.OnClick = () => postgameQuit.Visible = false; postGameObserve.OnClick = () => postgameQuit.Visible = false;
@@ -93,7 +93,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
void AddChatLine(Color c, string from, string text) void AddChatLine(Color c, string from, string text)
{ {
gameRoot.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text); gameRoot.Get<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
} }
} }
} }

View File

@@ -26,13 +26,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Game.BeforeGameStart += UnregisterEvents; Game.BeforeGameStart += UnregisterEvents;
var r = Ui.Root; var r = Ui.Root;
gameRoot = r.GetWidget("OBSERVER_ROOT"); gameRoot = r.Get("OBSERVER_ROOT");
var optionsBG = gameRoot.GetWidget("INGAME_OPTIONS_BG"); var optionsBG = gameRoot.Get("INGAME_OPTIONS_BG");
r.GetWidget<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () => r.Get<ButtonWidget>("INGAME_OPTIONS_BUTTON").OnClick = () =>
optionsBG.Visible = !optionsBG.Visible; optionsBG.Visible = !optionsBG.Visible;
optionsBG.GetWidget<ButtonWidget>("DISCONNECT").OnClick = () => optionsBG.Get<ButtonWidget>("DISCONNECT").OnClick = () =>
{ {
optionsBG.Visible = false; optionsBG.Visible = false;
Game.Disconnect(); Game.Disconnect();
@@ -41,10 +41,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Ui.OpenWindow("MAINMENU_BG"); Ui.OpenWindow("MAINMENU_BG");
}; };
optionsBG.GetWidget<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU"); optionsBG.Get<ButtonWidget>("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
optionsBG.GetWidget<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU"); optionsBG.Get<ButtonWidget>("MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
optionsBG.GetWidget<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false; optionsBG.Get<ButtonWidget>("RESUME").OnClick = () => optionsBG.Visible = false;
optionsBG.GetWidget<ButtonWidget>("SURRENDER").IsVisible = () => false; optionsBG.Get<ButtonWidget>("SURRENDER").IsVisible = () => false;
} }
void UnregisterEvents() void UnregisterEvents()
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
void AddChatLine(Color c, string from, string text) void AddChatLine(Color c, string from, string text)
{ {
gameRoot.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text); gameRoot.Get<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
} }
} }
} }

View File

@@ -98,21 +98,21 @@ namespace OpenRA.Mods.RA.Widgets.Logic
UpdateCurrentMap(); UpdateCurrentMap();
PlayerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>(); PlayerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>();
PlayerPalettePreview.Ramp = Game.Settings.Player.ColorRamp; PlayerPalettePreview.Ramp = Game.Settings.Player.ColorRamp;
Players = lobby.GetWidget<ScrollPanelWidget>("PLAYERS"); Players = lobby.Get<ScrollPanelWidget>("PLAYERS");
EditablePlayerTemplate = Players.GetWidget("TEMPLATE_EDITABLE_PLAYER"); EditablePlayerTemplate = Players.Get("TEMPLATE_EDITABLE_PLAYER");
NonEditablePlayerTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_PLAYER"); NonEditablePlayerTemplate = Players.Get("TEMPLATE_NONEDITABLE_PLAYER");
EmptySlotTemplate = Players.GetWidget("TEMPLATE_EMPTY"); EmptySlotTemplate = Players.Get("TEMPLATE_EMPTY");
EditableSpectatorTemplate = Players.GetWidget("TEMPLATE_EDITABLE_SPECTATOR"); EditableSpectatorTemplate = Players.Get("TEMPLATE_EDITABLE_SPECTATOR");
NonEditableSpectatorTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_SPECTATOR"); NonEditableSpectatorTemplate = Players.Get("TEMPLATE_NONEDITABLE_SPECTATOR");
NewSpectatorTemplate = Players.GetWidget("TEMPLATE_NEW_SPECTATOR"); NewSpectatorTemplate = Players.Get("TEMPLATE_NEW_SPECTATOR");
var mapPreview = lobby.GetWidget<MapPreviewWidget>("MAP_PREVIEW"); var mapPreview = lobby.Get<MapPreviewWidget>("MAP_PREVIEW");
mapPreview.IsVisible = () => Map != null; mapPreview.IsVisible = () => Map != null;
mapPreview.Map = () => Map; mapPreview.Map = () => Map;
mapPreview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint( orderManager, mapPreview, Map, mi ); mapPreview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint( orderManager, mapPreview, Map, mi );
mapPreview.SpawnColors = () => LobbyUtils.GetSpawnColors( orderManager, Map ); mapPreview.SpawnColors = () => LobbyUtils.GetSpawnColors( orderManager, Map );
var mapTitle = lobby.GetWidget<LabelWidget>("MAP_TITLE"); var mapTitle = lobby.GetOrNull<LabelWidget>("MAP_TITLE");
if (mapTitle != null) if (mapTitle != null)
{ {
mapTitle.IsVisible = () => Map != null; mapTitle.IsVisible = () => Map != null;
@@ -124,7 +124,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
.ToDictionary(a => a.Race, a => a.Name); .ToDictionary(a => a.Race, a => a.Name);
CountryNames.Add("random", "Any"); CountryNames.Add("random", "Any");
var mapButton = lobby.GetWidget<ButtonWidget>("CHANGEMAP_BUTTON"); var mapButton = lobby.Get<ButtonWidget>("CHANGEMAP_BUTTON");
mapButton.OnClick = () => mapButton.OnClick = () =>
{ {
var onSelect = new Action<Map>(m => var onSelect = new Action<Map>(m =>
@@ -143,19 +143,19 @@ namespace OpenRA.Mods.RA.Widgets.Logic
}; };
mapButton.IsVisible = () => mapButton.Visible && Game.IsHost; mapButton.IsVisible = () => mapButton.Visible && Game.IsHost;
var disconnectButton = lobby.GetWidget<ButtonWidget>("DISCONNECT_BUTTON"); var disconnectButton = lobby.Get<ButtonWidget>("DISCONNECT_BUTTON");
disconnectButton.OnClick = () => { CloseWindow(); onExit(); }; disconnectButton.OnClick = () => { CloseWindow(); onExit(); };
var gameStarting = false; var gameStarting = false;
var allowCheats = lobby.GetWidget<CheckboxWidget>("ALLOWCHEATS_CHECKBOX"); var allowCheats = lobby.Get<CheckboxWidget>("ALLOWCHEATS_CHECKBOX");
allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats; allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
allowCheats.IsDisabled = () => !Game.IsHost || gameStarting || orderManager.LocalClient == null allowCheats.IsDisabled = () => !Game.IsHost || gameStarting || orderManager.LocalClient == null
|| orderManager.LocalClient.IsReady; || orderManager.LocalClient.IsReady;
allowCheats.OnClick = () => orderManager.IssueOrder(Order.Command( allowCheats.OnClick = () => orderManager.IssueOrder(Order.Command(
"allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats))); "allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats)));
var startGameButton = lobby.GetWidget<ButtonWidget>("START_GAME_BUTTON"); var startGameButton = lobby.Get<ButtonWidget>("START_GAME_BUTTON");
startGameButton.IsVisible = () => Game.IsHost; startGameButton.IsVisible = () => Game.IsHost;
startGameButton.IsDisabled = () => gameStarting; startGameButton.IsDisabled = () => gameStarting;
startGameButton.OnClick = () => startGameButton.OnClick = () =>
@@ -165,8 +165,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
}; };
bool teamChat = false; bool teamChat = false;
var chatLabel = lobby.GetWidget<LabelWidget>("LABEL_CHATTYPE"); var chatLabel = lobby.Get<LabelWidget>("LABEL_CHATTYPE");
var chatTextField = lobby.GetWidget<TextFieldWidget>("CHAT_TEXTFIELD"); var chatTextField = lobby.Get<TextFieldWidget>("CHAT_TEXTFIELD");
chatTextField.OnEnterKey = () => chatTextField.OnEnterKey = () =>
{ {
@@ -185,11 +185,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
return true; return true;
}; };
chatPanel = lobby.GetWidget<ScrollPanelWidget>("CHAT_DISPLAY"); chatPanel = lobby.Get<ScrollPanelWidget>("CHAT_DISPLAY");
chatTemplate = chatPanel.GetWidget("CHAT_TEMPLATE"); chatTemplate = chatPanel.Get("CHAT_TEMPLATE");
chatPanel.RemoveChildren(); chatPanel.RemoveChildren();
var musicButton = lobby.GetWidget<ButtonWidget>("MUSIC_BUTTON"); var musicButton = lobby.GetOrNull<ButtonWidget>("MUSIC_BUTTON");
if (musicButton != null) if (musicButton != null)
musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs musicButton.OnClick = () => Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs
{ { "onExit", () => {} } }); { { "onExit", () => {} } });
@@ -208,9 +208,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
void AddChatLine(Color c, string from, string text) void AddChatLine(Color c, string from, string text)
{ {
var template = chatTemplate.Clone(); var template = chatTemplate.Clone();
var nameLabel = template.GetWidget<LabelWidget>("NAME"); var nameLabel = template.Get<LabelWidget>("NAME");
var timeLabel = template.GetWidget<LabelWidget>("TIME"); var timeLabel = template.Get<LabelWidget>("TIME");
var textLabel = template.GetWidget<LabelWidget>("TEXT"); var textLabel = template.Get<LabelWidget>("TEXT");
var name = from + ":"; var name = from + ":";
var font = Game.Renderer.Fonts[nameLabel.Font]; var font = Game.Renderer.Fonts[nameLabel.Font];
@@ -246,7 +246,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
MapUid = orderManager.LobbyInfo.GlobalSettings.Map; MapUid = orderManager.LobbyInfo.GlobalSettings.Map;
Map = new Map(Game.modData.AvailableMaps[MapUid].Path); Map = new Map(Game.modData.AvailableMaps[MapUid].Path);
var title = Ui.Root.GetWidget<LabelWidget>("TITLE"); var title = Ui.Root.Get<LabelWidget>("TITLE");
title.Text = orderManager.LobbyInfo.GlobalSettings.ServerName; title.Text = orderManager.LobbyInfo.GlobalSettings.ServerName;
} }
@@ -272,7 +272,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (Game.IsHost) if (Game.IsHost)
{ {
var name = template.GetWidget<DropDownButtonWidget>("NAME_HOST"); var name = template.Get<DropDownButtonWidget>("NAME_HOST");
name.IsVisible = () => true; name.IsVisible = () => true;
name.IsDisabled = () => ready; name.IsDisabled = () => ready;
name.GetText = getText; name.GetText = getText;
@@ -280,12 +280,12 @@ namespace OpenRA.Mods.RA.Widgets.Logic
} }
else else
{ {
var name = template.GetWidget<LabelWidget>("NAME"); var name = template.Get<LabelWidget>("NAME");
name.IsVisible = () => true; name.IsVisible = () => true;
name.GetText = getText; name.GetText = getText;
} }
var join = template.GetWidget<ButtonWidget>("JOIN"); var join = template.Get<ButtonWidget>("JOIN");
join.IsVisible = () => !slot.Closed; join.IsVisible = () => !slot.Closed;
join.IsDisabled = () => ready; join.IsDisabled = () => ready;
join.OnClick = () => orderManager.IssueOrder(Order.Command("slot " + key)); join.OnClick = () => orderManager.IssueOrder(Order.Command("slot " + key));
@@ -300,7 +300,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (client.Bot != null) if (client.Bot != null)
{ {
var name = template.GetWidget<DropDownButtonWidget>("BOT_DROPDOWN"); var name = template.Get<DropDownButtonWidget>("BOT_DROPDOWN");
name.IsVisible = () => true; name.IsVisible = () => true;
name.IsDisabled = () => ready; name.IsDisabled = () => ready;
name.GetText = () => client.Name; name.GetText = () => client.Name;
@@ -308,30 +308,30 @@ namespace OpenRA.Mods.RA.Widgets.Logic
} }
else else
{ {
var name = template.GetWidget<TextFieldWidget>("NAME"); var name = template.Get<TextFieldWidget>("NAME");
name.IsVisible = () => true; name.IsVisible = () => true;
name.IsDisabled = () => ready; name.IsDisabled = () => ready;
LobbyUtils.SetupNameWidget(orderManager, client, name); LobbyUtils.SetupNameWidget(orderManager, client, name);
} }
var color = template.GetWidget<DropDownButtonWidget>("COLOR"); var color = template.Get<DropDownButtonWidget>("COLOR");
color.IsDisabled = () => slot.LockColor || ready; color.IsDisabled = () => slot.LockColor || ready;
color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, client, orderManager, PlayerPalettePreview); color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, client, orderManager, PlayerPalettePreview);
var colorBlock = color.GetWidget<ColorBlockWidget>("COLORBLOCK"); var colorBlock = color.Get<ColorBlockWidget>("COLORBLOCK");
colorBlock.GetColor = () => client.ColorRamp.GetColor(0); colorBlock.GetColor = () => client.ColorRamp.GetColor(0);
var faction = template.GetWidget<DropDownButtonWidget>("FACTION"); var faction = template.Get<DropDownButtonWidget>("FACTION");
faction.IsDisabled = () => slot.LockRace || ready; faction.IsDisabled = () => slot.LockRace || ready;
faction.OnMouseDown = _ => LobbyUtils.ShowRaceDropDown(faction, client, orderManager, CountryNames); faction.OnMouseDown = _ => LobbyUtils.ShowRaceDropDown(faction, client, orderManager, CountryNames);
var factionname = faction.GetWidget<LabelWidget>("FACTIONNAME"); var factionname = faction.Get<LabelWidget>("FACTIONNAME");
factionname.GetText = () => CountryNames[client.Country]; factionname.GetText = () => CountryNames[client.Country];
var factionflag = faction.GetWidget<ImageWidget>("FACTIONFLAG"); var factionflag = faction.Get<ImageWidget>("FACTIONFLAG");
factionflag.GetImageName = () => client.Country; factionflag.GetImageName = () => client.Country;
factionflag.GetImageCollection = () => "flags"; factionflag.GetImageCollection = () => "flags";
var team = template.GetWidget<DropDownButtonWidget>("TEAM"); var team = template.Get<DropDownButtonWidget>("TEAM");
team.IsDisabled = () => slot.LockTeam || ready; team.IsDisabled = () => slot.LockTeam || ready;
team.OnMouseDown = _ => LobbyUtils.ShowTeamDropDown(team, client, orderManager, Map); team.OnMouseDown = _ => LobbyUtils.ShowTeamDropDown(team, client, orderManager, Map);
team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString(); team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString();
@@ -339,35 +339,35 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (client.Bot == null) if (client.Bot == null)
{ {
// local player // local player
var status = template.GetWidget<CheckboxWidget>("STATUS_CHECKBOX"); var status = template.Get<CheckboxWidget>("STATUS_CHECKBOX");
status.IsChecked = () => ready; status.IsChecked = () => ready;
status.IsVisible = () => true; status.IsVisible = () => true;
status.OnClick += CycleReady; status.OnClick += CycleReady;
} }
else // Bot else // Bot
template.GetWidget<ImageWidget>("STATUS_IMAGE").IsVisible = () => true; template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () => true;
} }
else else
{ // Non-editable player in slot { // Non-editable player in slot
template = NonEditablePlayerTemplate.Clone(); template = NonEditablePlayerTemplate.Clone();
template.GetWidget<LabelWidget>("NAME").GetText = () => client.Name; template.Get<LabelWidget>("NAME").GetText = () => client.Name;
var color = template.GetWidget<ColorBlockWidget>("COLOR"); var color = template.Get<ColorBlockWidget>("COLOR");
color.GetColor = () => client.ColorRamp.GetColor(0); color.GetColor = () => client.ColorRamp.GetColor(0);
var faction = template.GetWidget<LabelWidget>("FACTION"); var faction = template.Get<LabelWidget>("FACTION");
var factionname = faction.GetWidget<LabelWidget>("FACTIONNAME"); var factionname = faction.Get<LabelWidget>("FACTIONNAME");
factionname.GetText = () => CountryNames[client.Country]; factionname.GetText = () => CountryNames[client.Country];
var factionflag = faction.GetWidget<ImageWidget>("FACTIONFLAG"); var factionflag = faction.Get<ImageWidget>("FACTIONFLAG");
factionflag.GetImageName = () => client.Country; factionflag.GetImageName = () => client.Country;
factionflag.GetImageCollection = () => "flags"; factionflag.GetImageCollection = () => "flags";
var team = template.GetWidget<LabelWidget>("TEAM"); var team = template.Get<LabelWidget>("TEAM");
team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString(); team.GetText = () => (client.Team == 0) ? "-" : client.Team.ToString();
template.GetWidget<ImageWidget>("STATUS_IMAGE").IsVisible = () => template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () =>
client.Bot != null || client.IsReady; client.Bot != null || client.IsReady;
var kickButton = template.GetWidget<ButtonWidget>("KICK"); var kickButton = template.Get<ButtonWidget>("KICK");
kickButton.IsVisible = () => Game.IsHost && client.Index != orderManager.LocalClient.Index; kickButton.IsVisible = () => Game.IsHost && client.Index != orderManager.LocalClient.Index;
kickButton.IsDisabled = () => orderManager.LocalClient.IsReady; kickButton.IsDisabled = () => orderManager.LocalClient.IsReady;
kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + client.Index)); kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + client.Index));
@@ -388,18 +388,18 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (c.Index == orderManager.LocalClient.Index) if (c.Index == orderManager.LocalClient.Index)
{ {
template = EditableSpectatorTemplate.Clone(); template = EditableSpectatorTemplate.Clone();
var name = template.GetWidget<TextFieldWidget>("NAME"); var name = template.Get<TextFieldWidget>("NAME");
name.IsDisabled = () => ready; name.IsDisabled = () => ready;
LobbyUtils.SetupNameWidget(orderManager, c, name); LobbyUtils.SetupNameWidget(orderManager, c, name);
var color = template.GetWidget<DropDownButtonWidget>("COLOR"); var color = template.Get<DropDownButtonWidget>("COLOR");
color.IsDisabled = () => ready; color.IsDisabled = () => ready;
color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, c, orderManager, PlayerPalettePreview); color.OnMouseDown = _ => LobbyUtils.ShowColorDropDown(color, c, orderManager, PlayerPalettePreview);
var colorBlock = color.GetWidget<ColorBlockWidget>("COLORBLOCK"); var colorBlock = color.Get<ColorBlockWidget>("COLORBLOCK");
colorBlock.GetColor = () => c.ColorRamp.GetColor(0); colorBlock.GetColor = () => c.ColorRamp.GetColor(0);
var status = template.GetWidget<CheckboxWidget>("STATUS_CHECKBOX"); var status = template.Get<CheckboxWidget>("STATUS_CHECKBOX");
status.IsChecked = () => ready; status.IsChecked = () => ready;
status.OnClick += CycleReady; status.OnClick += CycleReady;
} }
@@ -407,13 +407,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
else else
{ {
template = NonEditableSpectatorTemplate.Clone(); template = NonEditableSpectatorTemplate.Clone();
template.GetWidget<LabelWidget>("NAME").GetText = () => c.Name; template.Get<LabelWidget>("NAME").GetText = () => c.Name;
var color = template.GetWidget<ColorBlockWidget>("COLOR"); var color = template.Get<ColorBlockWidget>("COLOR");
color.GetColor = () => c.ColorRamp.GetColor(0); color.GetColor = () => c.ColorRamp.GetColor(0);
template.GetWidget<ImageWidget>("STATUS_IMAGE").IsVisible = () => c.Bot != null || c.IsReady; template.Get<ImageWidget>("STATUS_IMAGE").IsVisible = () => c.Bot != null || c.IsReady;
var kickButton = template.GetWidget<ButtonWidget>("KICK"); var kickButton = template.Get<ButtonWidget>("KICK");
kickButton.IsVisible = () => Game.IsHost && c.Index != orderManager.LocalClient.Index; kickButton.IsVisible = () => Game.IsHost && c.Index != orderManager.LocalClient.Index;
kickButton.IsDisabled = () => orderManager.LocalClient.IsReady; kickButton.IsDisabled = () => orderManager.LocalClient.IsReady;
kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + c.Index)); kickButton.OnClick = () => orderManager.IssueOrder(Order.Command("kick " + c.Index));
@@ -427,7 +427,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
if (orderManager.LocalClient.Slot != null) if (orderManager.LocalClient.Slot != null)
{ {
var spec = NewSpectatorTemplate.Clone(); var spec = NewSpectatorTemplate.Clone();
var btn = spec.GetWidget<ButtonWidget>("SPECTATE"); var btn = spec.Get<ButtonWidget>("SPECTATE");
btn.OnClick = () => orderManager.IssueOrder(Order.Command("spectate")); btn.OnClick = () => orderManager.IssueOrder(Order.Command("spectate"));
btn.IsDisabled = () => orderManager.LocalClient.IsReady; btn.IsDisabled = () => orderManager.LocalClient.IsReady;
spec.IsVisible = () => true; spec.IsVisible = () => true;

View File

@@ -79,7 +79,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate, var item = ScrollItemWidget.Setup(itemTemplate,
o.Selected, o.Selected,
() => orderManager.IssueOrder(Order.Command(o.Order))); () => orderManager.IssueOrder(Order.Command(o.Order)));
item.GetWidget<LabelWidget>("LABEL").GetText = () => o.Title; item.Get<LabelWidget>("LABEL").GetText = () => o.Title;
return item; return item;
}; };
@@ -94,7 +94,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate, var item = ScrollItemWidget.Setup(itemTemplate,
() => client.Team == ii, () => client.Team == ii,
() => orderManager.IssueOrder(Order.Command("team {0} {1}".F(client.Index, ii)))); () => orderManager.IssueOrder(Order.Command("team {0} {1}".F(client.Index, ii))));
item.GetWidget<LabelWidget>("LABEL").GetText = () => ii == 0 ? "-" : ii.ToString(); item.Get<LabelWidget>("LABEL").GetText = () => ii == 0 ? "-" : ii.ToString();
return item; return item;
}; };
@@ -110,8 +110,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate, var item = ScrollItemWidget.Setup(itemTemplate,
() => client.Country == race, () => client.Country == race,
() => orderManager.IssueOrder(Order.Command("race {0} {1}".F(client.Index, race)))); () => orderManager.IssueOrder(Order.Command("race {0} {1}".F(client.Index, race))));
item.GetWidget<LabelWidget>("LABEL").GetText = () => countryNames[race]; item.Get<LabelWidget>("LABEL").GetText = () => countryNames[race];
var flag = item.GetWidget<ImageWidget>("FLAG"); var flag = item.Get<ImageWidget>("FLAG");
flag.GetImageCollection = () => "flags"; flag.GetImageCollection = () => "flags";
flag.GetImageName = () => race; flag.GetImageName = () => race;
return item; return item;

View File

@@ -22,26 +22,26 @@ namespace OpenRA.Mods.RA.Widgets.Logic
rootMenu = widget; rootMenu = widget;
Game.modData.WidgetLoader.LoadWidget( new WidgetArgs(), Ui.Root, "PERF_BG" ); Game.modData.WidgetLoader.LoadWidget( new WidgetArgs(), Ui.Root, "PERF_BG" );
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_JOIN").OnClick = () => OpenGamePanel("JOINSERVER_BG"); widget.Get<ButtonWidget>("MAINMENU_BUTTON_JOIN").OnClick = () => OpenGamePanel("JOINSERVER_BG");
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_CREATE").OnClick = () => OpenGamePanel("CREATESERVER_BG"); widget.Get<ButtonWidget>("MAINMENU_BUTTON_CREATE").OnClick = () => OpenGamePanel("CREATESERVER_BG");
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_DIRECTCONNECT").OnClick = () => OpenGamePanel("DIRECTCONNECT_BG"); widget.Get<ButtonWidget>("MAINMENU_BUTTON_DIRECTCONNECT").OnClick = () => OpenGamePanel("DIRECTCONNECT_BG");
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU"); widget.Get<ButtonWidget>("MAINMENU_BUTTON_SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU");
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU"); widget.Get<ButtonWidget>("MAINMENU_BUTTON_MUSIC").OnClick = () => Ui.OpenWindow("MUSIC_MENU");
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_MODS").OnClick = () => widget.Get<ButtonWidget>("MAINMENU_BUTTON_MODS").OnClick = () =>
Ui.OpenWindow("MODS_PANEL", new WidgetArgs() Ui.OpenWindow("MODS_PANEL", new WidgetArgs()
{ {
{ "onExit", () => {} }, { "onExit", () => {} },
{ "onSwitch", RemoveShellmapUI } { "onSwitch", RemoveShellmapUI }
}); });
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_REPLAY_VIEWER").OnClick = () => widget.Get<ButtonWidget>("MAINMENU_BUTTON_REPLAY_VIEWER").OnClick = () =>
Ui.OpenWindow("REPLAYBROWSER_BG", new WidgetArgs() Ui.OpenWindow("REPLAYBROWSER_BG", new WidgetArgs()
{ {
{ "onExit", () => {} }, { "onExit", () => {} },
{ "onStart", RemoveShellmapUI } { "onStart", RemoveShellmapUI }
}); });
widget.GetWidget<ButtonWidget>("MAINMENU_BUTTON_QUIT").OnClick = () => Game.Exit(); widget.Get<ButtonWidget>("MAINMENU_BUTTON_QUIT").OnClick = () => Game.Exit();
} }
void RemoveShellmapUI() void RemoveShellmapUI()

View File

@@ -27,13 +27,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
map = Game.modData.AvailableMaps[WidgetUtils.ChooseInitialMap(initialMap)]; map = Game.modData.AvailableMaps[WidgetUtils.ChooseInitialMap(initialMap)];
widget.GetWidget<ButtonWidget>("BUTTON_OK").OnClick = () => { Ui.CloseWindow(); onSelect(map); }; widget.Get<ButtonWidget>("BUTTON_OK").OnClick = () => { Ui.CloseWindow(); onSelect(map); };
widget.GetWidget<ButtonWidget>("BUTTON_CANCEL").OnClick = () => { Ui.CloseWindow(); onExit(); }; widget.Get<ButtonWidget>("BUTTON_CANCEL").OnClick = () => { Ui.CloseWindow(); onExit(); };
scrollpanel = widget.GetWidget<ScrollPanelWidget>("MAP_LIST"); scrollpanel = widget.Get<ScrollPanelWidget>("MAP_LIST");
itemTemplate = scrollpanel.GetWidget<ScrollItemWidget>("MAP_TEMPLATE"); itemTemplate = scrollpanel.Get<ScrollItemWidget>("MAP_TEMPLATE");
var gameModeDropdown = widget.GetWidget<DropDownButtonWidget>("GAMEMODE_FILTER"); var gameModeDropdown = widget.GetOrNull<DropDownButtonWidget>("GAMEMODE_FILTER");
if (gameModeDropdown != null) if (gameModeDropdown != null)
{ {
var selectableMaps = Game.modData.AvailableMaps.Where(m => m.Value.Selectable); var selectableMaps = Game.modData.AvailableMaps.Where(m => m.Value.Selectable);
@@ -52,7 +52,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(template, var item = ScrollItemWidget.Setup(template,
() => gameMode == ii.First, () => gameMode == ii.First,
() => { gameMode = ii.First; EnumerateMaps(); }); () => { gameMode = ii.First; EnumerateMaps(); });
item.GetWidget<LabelWidget>("LABEL").GetText = () => showItem(ii); item.Get<LabelWidget>("LABEL").GetText = () => showItem(ii);
return item; return item;
}; };
@@ -82,19 +82,19 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var m = kv.Value; var m = kv.Value;
var item = ScrollItemWidget.Setup(itemTemplate, () => m == map, () => map = m); var item = ScrollItemWidget.Setup(itemTemplate, () => m == map, () => map = m);
var titleLabel = item.GetWidget<LabelWidget>("TITLE"); var titleLabel = item.Get<LabelWidget>("TITLE");
titleLabel.GetText = () => m.Title; titleLabel.GetText = () => m.Title;
var previewWidget = item.GetWidget<MapPreviewWidget>("PREVIEW"); var previewWidget = item.Get<MapPreviewWidget>("PREVIEW");
previewWidget.IgnoreMouseOver = true; previewWidget.IgnoreMouseOver = true;
previewWidget.IgnoreMouseInput = true; previewWidget.IgnoreMouseInput = true;
previewWidget.Map = () => m; previewWidget.Map = () => m;
var detailsWidget = item.GetWidget<LabelWidget>("DETAILS"); var detailsWidget = item.Get<LabelWidget>("DETAILS");
if (detailsWidget != null) if (detailsWidget != null)
detailsWidget.GetText = () => "{0} ({1})".F(m.Type, m.PlayerCount); detailsWidget.GetText = () => "{0} ({1})".F(m.Type, m.PlayerCount);
var authorWidget = item.GetWidget<LabelWidget>("AUTHOR"); var authorWidget = item.Get<LabelWidget>("AUTHOR");
if (authorWidget != null) if (authorWidget != null)
authorWidget.GetText = () => m.Author; authorWidget.GetText = () => m.Author;

View File

@@ -23,24 +23,24 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public ModBrowserLogic(Widget widget, Action onSwitch, Action onExit) public ModBrowserLogic(Widget widget, Action onSwitch, Action onExit)
{ {
var panel = widget; var panel = widget;
var modList = panel.GetWidget<ScrollPanelWidget>("MOD_LIST"); var modList = panel.Get<ScrollPanelWidget>("MOD_LIST");
var loadButton = panel.GetWidget<ButtonWidget>("LOAD_BUTTON"); var loadButton = panel.Get<ButtonWidget>("LOAD_BUTTON");
loadButton.OnClick = () => LoadMod(currentMod.Id, onSwitch); loadButton.OnClick = () => LoadMod(currentMod.Id, onSwitch);
loadButton.IsDisabled = () => currentMod.Id == Game.CurrentMods.Keys.First(); loadButton.IsDisabled = () => currentMod.Id == Game.CurrentMods.Keys.First();
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
currentMod = Mod.AllMods[Game.modData.Manifest.Mods[0]]; currentMod = Mod.AllMods[Game.modData.Manifest.Mods[0]];
// Mod list // Mod list
var modTemplate = modList.GetWidget<ScrollItemWidget>("MOD_TEMPLATE"); var modTemplate = modList.Get<ScrollItemWidget>("MOD_TEMPLATE");
foreach (var m in Mod.AllMods) foreach (var m in Mod.AllMods)
{ {
var mod = m.Value; var mod = m.Value;
var item = ScrollItemWidget.Setup(modTemplate, () => currentMod == mod, () => currentMod = mod); var item = ScrollItemWidget.Setup(modTemplate, () => currentMod == mod, () => currentMod = mod);
item.GetWidget<LabelWidget>("TITLE").GetText = () => mod.Title; item.Get<LabelWidget>("TITLE").GetText = () => mod.Title;
item.GetWidget<LabelWidget>("VERSION").GetText = () => mod.Version; item.Get<LabelWidget>("VERSION").GetText = () => mod.Version;
item.GetWidget<LabelWidget>("AUTHOR").GetText = () => mod.Author; item.Get<LabelWidget>("AUTHOR").GetText = () => mod.Author;
modList.AddChild(item); modList.AddChild(item);
} }
} }

View File

@@ -34,32 +34,32 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public MusicPlayerLogic() public MusicPlayerLogic()
{ {
bg = Ui.Root.GetWidget("MUSIC_MENU"); bg = Ui.Root.Get("MUSIC_MENU");
CurrentSong = GetNextSong(); CurrentSong = GetNextSong();
bg.GetWidget( "BUTTON_PAUSE" ).IsVisible = () => Sound.MusicPlaying; bg.Get( "BUTTON_PAUSE" ).IsVisible = () => Sound.MusicPlaying;
bg.GetWidget( "BUTTON_PLAY" ).IsVisible = () => !Sound.MusicPlaying; bg.Get( "BUTTON_PLAY" ).IsVisible = () => !Sound.MusicPlaying;
bg.GetWidget<ButtonWidget>("BUTTON_CLOSE").OnClick = bg.Get<ButtonWidget>("BUTTON_CLOSE").OnClick =
() => { Game.Settings.Save(); Ui.CloseWindow(); }; () => { Game.Settings.Save(); Ui.CloseWindow(); };
bg.GetWidget("BUTTON_INSTALL").IsVisible = () => false; bg.Get("BUTTON_INSTALL").IsVisible = () => false;
bg.GetWidget<ButtonWidget>("BUTTON_PLAY").OnClick = () => Play( CurrentSong ); bg.Get<ButtonWidget>("BUTTON_PLAY").OnClick = () => Play( CurrentSong );
bg.GetWidget<ButtonWidget>("BUTTON_PAUSE").OnClick = Sound.PauseMusic; bg.Get<ButtonWidget>("BUTTON_PAUSE").OnClick = Sound.PauseMusic;
bg.GetWidget<ButtonWidget>("BUTTON_STOP").OnClick = Sound.StopMusic; bg.Get<ButtonWidget>("BUTTON_STOP").OnClick = Sound.StopMusic;
bg.GetWidget<ButtonWidget>("BUTTON_NEXT").OnClick = () => Play( GetNextSong() ); bg.Get<ButtonWidget>("BUTTON_NEXT").OnClick = () => Play( GetNextSong() );
bg.GetWidget<ButtonWidget>("BUTTON_PREV").OnClick = () => Play( GetPrevSong() ); bg.Get<ButtonWidget>("BUTTON_PREV").OnClick = () => Play( GetPrevSong() );
var shuffleCheckbox = bg.GetWidget<CheckboxWidget>("SHUFFLE"); var shuffleCheckbox = bg.Get<CheckboxWidget>("SHUFFLE");
shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle; shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle;
shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true; shuffleCheckbox.OnClick = () => Game.Settings.Sound.Shuffle ^= true;
var repeatCheckbox = bg.GetWidget<CheckboxWidget>("REPEAT"); var repeatCheckbox = bg.Get<CheckboxWidget>("REPEAT");
repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat; repeatCheckbox.IsChecked = () => Game.Settings.Sound.Repeat;
repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true; repeatCheckbox.OnClick = () => Game.Settings.Sound.Repeat ^= true;
bg.GetWidget<LabelWidget>("TIME").GetText = () => bg.Get<LabelWidget>("TIME").GetText = () =>
{ {
if (CurrentSong == null) if (CurrentSong == null)
return ""; return "";
@@ -68,14 +68,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
WidgetUtils.FormatTimeSeconds( Rules.Music[CurrentSong].Length )); WidgetUtils.FormatTimeSeconds( Rules.Music[CurrentSong].Length ));
}; };
var ml = bg.GetWidget<ScrollPanelWidget>("MUSIC_LIST"); var ml = bg.Get<ScrollPanelWidget>("MUSIC_LIST");
var itemTemplate = ml.GetWidget<ScrollItemWidget>("MUSIC_TEMPLATE"); var itemTemplate = ml.Get<ScrollItemWidget>("MUSIC_TEMPLATE");
if (!Rules.InstalledMusic.Any()) if (!Rules.InstalledMusic.Any())
{ {
itemTemplate.IsVisible = () => true; itemTemplate.IsVisible = () => true;
itemTemplate.GetWidget<LabelWidget>("TITLE").GetText = () => "No Music Installed"; itemTemplate.Get<LabelWidget>("TITLE").GetText = () => "No Music Installed";
itemTemplate.GetWidget<LabelWidget>("TITLE").Align = TextAlign.Center; itemTemplate.Get<LabelWidget>("TITLE").Align = TextAlign.Center;
} }
foreach (var kv in Rules.InstalledMusic) foreach (var kv in Rules.InstalledMusic)
@@ -84,8 +84,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate, var item = ScrollItemWidget.Setup(itemTemplate,
() => CurrentSong == song, () => CurrentSong == song,
() => Play( song )); () => Play( song ));
item.GetWidget<LabelWidget>("TITLE").GetText = () => Rules.Music[song].Title; item.Get<LabelWidget>("TITLE").GetText = () => Rules.Music[song].Title;
item.GetWidget<LabelWidget>("LENGTH").GetText = item.Get<LabelWidget>("LENGTH").GetText =
() => WidgetUtils.FormatTimeSeconds( Rules.Music[song].Length ); () => WidgetUtils.FormatTimeSeconds( Rules.Music[song].Length );
ml.AddChild(item); ml.AddChild(item);
} }

View File

@@ -21,9 +21,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
/* todo: attach this to the correct widget, to remove the lookups below */ /* todo: attach this to the correct widget, to remove the lookups below */
var r = Ui.Root; var r = Ui.Root;
var gameRoot = r.GetWidget("INGAME_ROOT"); var gameRoot = r.Get("INGAME_ROOT");
var moneybin = gameRoot.GetWidget("INGAME_MONEY_BIN"); var moneybin = gameRoot.Get("INGAME_MONEY_BIN");
moneybin.IsVisible = () => { moneybin.IsVisible = () => {
return world.LocalPlayer.WinState == WinState.Undefined; return world.LocalPlayer.WinState == WinState.Undefined;
}; };
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
static void BindOrderButton<T>(World world, Widget parent, string button) static void BindOrderButton<T>(World world, Widget parent, string button)
where T : IOrderGenerator, new() where T : IOrderGenerator, new()
{ {
var w = parent.GetWidget<OrderButtonWidget>(button); var w = parent.GetOrNull<OrderButtonWidget>(button);
if (w != null) if (w != null)
{ {
w.Pressed = () => world.OrderGenerator is T; w.Pressed = () => world.OrderGenerator is T;

View File

@@ -18,11 +18,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public PerfDebugLogic() public PerfDebugLogic()
{ {
var r = Ui.Root; var r = Ui.Root;
var perfRoot = r.GetWidget("PERF_BG"); var perfRoot = r.Get("PERF_BG");
perfRoot.IsVisible = () => perfRoot.Visible && Game.Settings.Debug.PerfGraph; perfRoot.IsVisible = () => perfRoot.Visible && Game.Settings.Debug.PerfGraph;
// Perf text // Perf text
var perfText = perfRoot.GetWidget<LabelWidget>("TEXT"); var perfText = perfRoot.Get<LabelWidget>("TEXT");
perfText.GetText = () => "Render {0} ({5}={2:F1} ms)\nTick {4} ({3:F1} ms)".F( perfText.GetText = () => "Render {0} ({5}={2:F1} ms)\nTick {4} ({3:F1} ms)".F(
Game.RenderFrame, Game.RenderFrame,
Game.NetFrameNumber, Game.NetFrameNumber,

View File

@@ -31,18 +31,18 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public RAInstallFromCDLogic(Widget widget, Action continueLoading) public RAInstallFromCDLogic(Widget widget, Action continueLoading)
{ {
this.continueLoading = continueLoading; this.continueLoading = continueLoading;
panel = widget.GetWidget("INSTALL_FROMCD_PANEL"); panel = widget.Get("INSTALL_FROMCD_PANEL");
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR"); progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL"); statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
backButton = panel.GetWidget<ButtonWidget>("BACK_BUTTON"); backButton = panel.Get<ButtonWidget>("BACK_BUTTON");
backButton.OnClick = Ui.CloseWindow; backButton.OnClick = Ui.CloseWindow;
retryButton = panel.GetWidget<ButtonWidget>("RETRY_BUTTON"); retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
retryButton.OnClick = CheckForDisk; retryButton.OnClick = CheckForDisk;
installingContainer = panel.GetWidget("INSTALLING"); installingContainer = panel.Get("INSTALLING");
insertDiskContainer = panel.GetWidget("INSERT_DISK"); insertDiskContainer = panel.Get("INSERT_DISK");
CheckForDisk(); CheckForDisk();
} }

View File

@@ -19,20 +19,20 @@ namespace OpenRA.Mods.RA.Widgets.Logic
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public RAInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading) public RAInstallLogic(Widget widget, Dictionary<string,string> installData, Action continueLoading)
{ {
var panel = widget.GetWidget("INSTALL_PANEL"); var panel = widget.Get("INSTALL_PANEL");
var args = new WidgetArgs() var args = new WidgetArgs()
{ {
{ "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } }, { "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } },
{ "installData", installData } { "installData", installData }
}; };
panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () => panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args); Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args);
panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () => panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
Ui.OpenWindow("INSTALL_FROMCD_PANEL", args); Ui.OpenWindow("INSTALL_FROMCD_PANEL", args);
panel.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit; panel.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
} }
} }
} }

View File

@@ -25,12 +25,12 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{ {
panel = widget; panel = widget;
panel.GetWidget<ButtonWidget>("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; panel.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
var rl = panel.GetWidget<ScrollPanelWidget>("REPLAY_LIST"); var rl = panel.Get<ScrollPanelWidget>("REPLAY_LIST");
var replayDir = Path.Combine(Platform.SupportDir, "Replays"); var replayDir = Path.Combine(Platform.SupportDir, "Replays");
var template = panel.GetWidget<ScrollItemWidget>("REPLAY_TEMPLATE"); var template = panel.Get<ScrollItemWidget>("REPLAY_TEMPLATE");
rl.RemoveChildren(); rl.RemoveChildren();
if (Directory.Exists(replayDir)) if (Directory.Exists(replayDir))
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
SelectReplay(files.FirstOrDefault()); SelectReplay(files.FirstOrDefault());
} }
var watch = panel.GetWidget<ButtonWidget>("WATCH_BUTTON"); var watch = panel.Get<ButtonWidget>("WATCH_BUTTON");
watch.IsDisabled = () => currentReplay == null || currentMap == null || currentReplay.Duration == 0; watch.IsDisabled = () => currentReplay == null || currentMap == null || currentReplay.Duration == 0;
watch.OnClick = () => watch.OnClick = () =>
{ {
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
} }
}; };
panel.GetWidget("REPLAY_INFO").IsVisible = () => currentReplay != null; panel.Get("REPLAY_INFO").IsVisible = () => currentReplay != null;
} }
Replay currentReplay; Replay currentReplay;
@@ -70,15 +70,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
currentReplay = new Replay(filename); currentReplay = new Replay(filename);
currentMap = currentReplay.Map(); currentMap = currentReplay.Map();
panel.GetWidget<LabelWidget>("DURATION").GetText = panel.Get<LabelWidget>("DURATION").GetText =
() => WidgetUtils.FormatTime(currentReplay.Duration * 3 /* todo: 3:1 ratio isnt always true. */); () => WidgetUtils.FormatTime(currentReplay.Duration * 3 /* todo: 3:1 ratio isnt always true. */);
panel.GetWidget<MapPreviewWidget>("MAP_PREVIEW").Map = () => currentMap; panel.Get<MapPreviewWidget>("MAP_PREVIEW").Map = () => currentMap;
panel.GetWidget<LabelWidget>("MAP_TITLE").GetText = panel.Get<LabelWidget>("MAP_TITLE").GetText =
() => currentMap != null ? currentMap.Title : "(Unknown Map)"; () => currentMap != null ? currentMap.Title : "(Unknown Map)";
var players = currentReplay.LobbyInfo.Slots var players = currentReplay.LobbyInfo.Slots
.Count(s => currentReplay.LobbyInfo.ClientInSlot(s.Key) != null); .Count(s => currentReplay.LobbyInfo.ClientInSlot(s.Key) != null);
panel.GetWidget<LabelWidget>("PLAYERS").GetText = () => players.ToString(); panel.Get<LabelWidget>("PLAYERS").GetText = () => players.ToString();
} }
catch (Exception e) catch (Exception e)
{ {
@@ -94,7 +94,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
() => currentReplay != null && currentReplay.Filename == filename, () => currentReplay != null && currentReplay.Filename == filename,
() => SelectReplay(filename)); () => SelectReplay(filename));
var f = Path.GetFileName(filename); var f = Path.GetFileName(filename);
item.GetWidget<LabelWidget>("TITLE").GetText = () => f; item.Get<LabelWidget>("TITLE").GetText = () => f;
list.AddChild(item); list.AddChild(item);
} }
} }

View File

@@ -41,10 +41,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public ServerBrowserLogic(Widget widget, Action openLobby, Action onExit) public ServerBrowserLogic(Widget widget, Action openLobby, Action onExit)
{ {
var panel = widget; var panel = widget;
var sl = panel.GetWidget<ScrollPanelWidget>("SERVER_LIST"); var sl = panel.Get<ScrollPanelWidget>("SERVER_LIST");
// Menu buttons // Menu buttons
var refreshButton = panel.GetWidget<ButtonWidget>("REFRESH_BUTTON"); var refreshButton = panel.Get<ButtonWidget>("REFRESH_BUTTON");
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching; refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
refreshButton.OnClick = () => refreshButton.OnClick = () =>
{ {
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
ServerList.Query(games => RefreshServerList(panel, games)); ServerList.Query(games => RefreshServerList(panel, games));
}; };
var join = panel.GetWidget<ButtonWidget>("JOIN_BUTTON"); var join = panel.Get<ButtonWidget>("JOIN_BUTTON");
join.IsDisabled = () => currentServer == null || !currentServer.CanJoin(); join.IsDisabled = () => currentServer == null || !currentServer.CanJoin();
join.OnClick = () => join.OnClick = () =>
{ {
@@ -68,14 +68,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
ConnectionLogic.Connect(host, port, openLobby, onExit); ConnectionLogic.Connect(host, port, openLobby, onExit);
}; };
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
// Server list // Server list
serverTemplate = sl.GetWidget<ScrollItemWidget>("SERVER_TEMPLATE"); serverTemplate = sl.Get<ScrollItemWidget>("SERVER_TEMPLATE");
// Display the progress label over the server list // Display the progress label over the server list
// The text is only visible when the list is empty // The text is only visible when the list is empty
var progressText = panel.GetWidget<LabelWidget>("PROGRESS_LABEL"); var progressText = panel.Get<LabelWidget>("PROGRESS_LABEL");
progressText.IsVisible = () => searchStatus != SearchStatus.Hidden; progressText.IsVisible = () => searchStatus != SearchStatus.Hidden;
progressText.GetText = ProgressLabelText; progressText.GetText = ProgressLabelText;
@@ -123,7 +123,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public void RefreshServerList(Widget panel, IEnumerable<GameServer> games) public void RefreshServerList(Widget panel, IEnumerable<GameServer> games)
{ {
var sl = panel.GetWidget<ScrollPanelWidget>("SERVER_LIST"); var sl = panel.Get<ScrollPanelWidget>("SERVER_LIST");
sl.RemoveChildren(); sl.RemoveChildren();
currentServer = null; currentServer = null;
@@ -151,15 +151,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(serverTemplate, () => currentServer == game, () => currentServer = game); var item = ScrollItemWidget.Setup(serverTemplate, () => currentServer == game, () => currentServer = game);
var preview = item.GetWidget<MapPreviewWidget>("MAP_PREVIEW"); var preview = item.Get<MapPreviewWidget>("MAP_PREVIEW");
preview.Map = () => GetMapPreview(game); preview.Map = () => GetMapPreview(game);
preview.IsVisible = () => GetMapPreview(game) != null; preview.IsVisible = () => GetMapPreview(game) != null;
var title = item.GetWidget<LabelWidget>("TITLE"); var title = item.Get<LabelWidget>("TITLE");
title.GetText = () => game.Name; title.GetText = () => game.Name;
// TODO: Use game.MapTitle once the server supports it // TODO: Use game.MapTitle once the server supports it
var maptitle = item.GetWidget<LabelWidget>("MAP"); var maptitle = item.Get<LabelWidget>("MAP");
maptitle.GetText = () => maptitle.GetText = () =>
{ {
var map = Game.modData.FindMapByUid(game.Map); var map = Game.modData.FindMapByUid(game.Map);
@@ -167,16 +167,16 @@ namespace OpenRA.Mods.RA.Widgets.Logic
}; };
// TODO: Use game.MaxPlayers once the server supports it // TODO: Use game.MaxPlayers once the server supports it
var players = item.GetWidget<LabelWidget>("PLAYERS"); var players = item.Get<LabelWidget>("PLAYERS");
players.GetText = () => GetPlayersLabel(game); players.GetText = () => GetPlayersLabel(game);
var state = item.GetWidget<LabelWidget>("STATE"); var state = item.Get<LabelWidget>("STATE");
state.GetText = () => GetStateLabel(game); state.GetText = () => GetStateLabel(game);
var ip = item.GetWidget<LabelWidget>("IP"); var ip = item.Get<LabelWidget>("IP");
ip.GetText = () => game.Address; ip.GetText = () => game.Address;
var version = item.GetWidget<LabelWidget>("VERSION"); var version = item.Get<LabelWidget>("VERSION");
version.GetText = () => GenerateModsLabel(game); version.GetText = () => GenerateModsLabel(game);
version.IsVisible = () => !game.CompatibleVersion(); version.IsVisible = () => !game.CompatibleVersion();

View File

@@ -31,15 +31,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
this.onExit = onExit; this.onExit = onExit;
var settings = Game.Settings; var settings = Game.Settings;
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
panel.GetWidget<ButtonWidget>("CREATE_BUTTON").OnClick = CreateAndJoin; panel.Get<ButtonWidget>("CREATE_BUTTON").OnClick = CreateAndJoin;
map = Game.modData.AvailableMaps[ WidgetUtils.ChooseInitialMap(Game.Settings.Server.Map) ]; map = Game.modData.AvailableMaps[ WidgetUtils.ChooseInitialMap(Game.Settings.Server.Map) ];
var mapButton = panel.GetWidget<ButtonWidget>("MAP_BUTTON"); var mapButton = panel.GetOrNull<ButtonWidget>("MAP_BUTTON");
if (mapButton != null) if (mapButton != null)
{ {
panel.GetWidget<ButtonWidget>("MAP_BUTTON").OnClick = () => panel.Get<ButtonWidget>("MAP_BUTTON").OnClick = () =>
{ {
Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs() Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
{ {
@@ -49,31 +49,31 @@ namespace OpenRA.Mods.RA.Widgets.Logic
}); });
}; };
panel.GetWidget<MapPreviewWidget>("MAP_PREVIEW").Map = () => map; panel.Get<MapPreviewWidget>("MAP_PREVIEW").Map = () => map;
panel.GetWidget<LabelWidget>("MAP_NAME").GetText = () => map.Title; panel.Get<LabelWidget>("MAP_NAME").GetText = () => map.Title;
} }
panel.GetWidget<TextFieldWidget>("SERVER_NAME").Text = settings.Server.Name ?? ""; panel.Get<TextFieldWidget>("SERVER_NAME").Text = settings.Server.Name ?? "";
panel.GetWidget<TextFieldWidget>("LISTEN_PORT").Text = settings.Server.ListenPort.ToString(); panel.Get<TextFieldWidget>("LISTEN_PORT").Text = settings.Server.ListenPort.ToString();
advertiseOnline = Game.Settings.Server.AdvertiseOnline; advertiseOnline = Game.Settings.Server.AdvertiseOnline;
var externalPort = panel.GetWidget<TextFieldWidget>("EXTERNAL_PORT"); var externalPort = panel.Get<TextFieldWidget>("EXTERNAL_PORT");
externalPort.Text = settings.Server.ExternalPort.ToString(); externalPort.Text = settings.Server.ExternalPort.ToString();
externalPort.IsDisabled = () => !advertiseOnline; externalPort.IsDisabled = () => !advertiseOnline;
var advertiseCheckbox = panel.GetWidget<CheckboxWidget>("ADVERTISE_CHECKBOX"); var advertiseCheckbox = panel.Get<CheckboxWidget>("ADVERTISE_CHECKBOX");
advertiseCheckbox.IsChecked = () => advertiseOnline; advertiseCheckbox.IsChecked = () => advertiseOnline;
advertiseCheckbox.OnClick = () => advertiseOnline ^= true; advertiseCheckbox.OnClick = () => advertiseOnline ^= true;
} }
void CreateAndJoin() void CreateAndJoin()
{ {
var name = panel.GetWidget<TextFieldWidget>("SERVER_NAME").Text; var name = panel.Get<TextFieldWidget>("SERVER_NAME").Text;
int listenPort, externalPort; int listenPort, externalPort;
if (!int.TryParse(panel.GetWidget<TextFieldWidget>("LISTEN_PORT").Text, out listenPort)) if (!int.TryParse(panel.Get<TextFieldWidget>("LISTEN_PORT").Text, out listenPort))
listenPort = 1234; listenPort = 1234;
if (!int.TryParse(panel.GetWidget<TextFieldWidget>("EXTERNAL_PORT").Text, out externalPort)) if (!int.TryParse(panel.Get<TextFieldWidget>("EXTERNAL_PORT").Text, out externalPort))
externalPort = 1234; externalPort = 1234;
// Save new settings // Save new settings

View File

@@ -23,20 +23,20 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public SettingsMenuLogic() public SettingsMenuLogic()
{ {
bg = Ui.Root.GetWidget<BackgroundWidget>("SETTINGS_MENU"); bg = Ui.Root.Get<BackgroundWidget>("SETTINGS_MENU");
var tabs = bg.GetWidget<ContainerWidget>("TAB_CONTAINER"); var tabs = bg.Get<ContainerWidget>("TAB_CONTAINER");
//Tabs //Tabs
tabs.GetWidget<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE"); tabs.Get<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE");
tabs.GetWidget<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE"); tabs.Get<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE");
tabs.GetWidget<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE"); tabs.Get<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE");
tabs.GetWidget<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE"); tabs.Get<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE");
FlipToTab("GENERAL_PANE"); FlipToTab("GENERAL_PANE");
//General //General
var general = bg.GetWidget("GENERAL_PANE"); var general = bg.Get("GENERAL_PANE");
var name = general.GetWidget<TextFieldWidget>("NAME"); var name = general.Get<TextFieldWidget>("NAME");
name.Text = Game.Settings.Player.Name; name.Text = Game.Settings.Player.Name;
name.OnLoseFocus = () => name.OnLoseFocus = () =>
{ {
@@ -49,54 +49,54 @@ namespace OpenRA.Mods.RA.Widgets.Logic
}; };
name.OnEnterKey = () => { name.LoseFocus(); return true; }; name.OnEnterKey = () => { name.LoseFocus(); return true; };
var edgescrollCheckbox = general.GetWidget<CheckboxWidget>("EDGE_SCROLL"); var edgescrollCheckbox = general.Get<CheckboxWidget>("EDGE_SCROLL");
edgescrollCheckbox.IsChecked = () => Game.Settings.Game.ViewportEdgeScroll; edgescrollCheckbox.IsChecked = () => Game.Settings.Game.ViewportEdgeScroll;
edgescrollCheckbox.OnClick = () => Game.Settings.Game.ViewportEdgeScroll ^= true; edgescrollCheckbox.OnClick = () => Game.Settings.Game.ViewportEdgeScroll ^= true;
var edgeScrollSlider = general.GetWidget<SliderWidget>("EDGE_SCROLL_AMOUNT"); var edgeScrollSlider = general.Get<SliderWidget>("EDGE_SCROLL_AMOUNT");
edgeScrollSlider.Value = Game.Settings.Game.ViewportEdgeScrollStep; edgeScrollSlider.Value = Game.Settings.Game.ViewportEdgeScrollStep;
edgeScrollSlider.OnChange += x => Game.Settings.Game.ViewportEdgeScrollStep = x; edgeScrollSlider.OnChange += x => Game.Settings.Game.ViewportEdgeScrollStep = x;
var inversescroll = general.GetWidget<CheckboxWidget>("INVERSE_SCROLL"); var inversescroll = general.Get<CheckboxWidget>("INVERSE_SCROLL");
inversescroll.IsChecked = () => Game.Settings.Game.MouseScroll == MouseScrollType.Inverted; inversescroll.IsChecked = () => Game.Settings.Game.MouseScroll == MouseScrollType.Inverted;
inversescroll.OnClick = () => Game.Settings.Game.MouseScroll = (Game.Settings.Game.MouseScroll == MouseScrollType.Inverted) ? MouseScrollType.Standard : MouseScrollType.Inverted; inversescroll.OnClick = () => Game.Settings.Game.MouseScroll = (Game.Settings.Game.MouseScroll == MouseScrollType.Inverted) ? MouseScrollType.Standard : MouseScrollType.Inverted;
var teamchatCheckbox = general.GetWidget<CheckboxWidget>("TEAMCHAT_TOGGLE"); var teamchatCheckbox = general.Get<CheckboxWidget>("TEAMCHAT_TOGGLE");
teamchatCheckbox.IsChecked = () => Game.Settings.Game.TeamChatToggle; teamchatCheckbox.IsChecked = () => Game.Settings.Game.TeamChatToggle;
teamchatCheckbox.OnClick = () => Game.Settings.Game.TeamChatToggle ^= true; teamchatCheckbox.OnClick = () => Game.Settings.Game.TeamChatToggle ^= true;
var showShellmapCheckbox = general.GetWidget<CheckboxWidget>("SHOW_SHELLMAP"); var showShellmapCheckbox = general.Get<CheckboxWidget>("SHOW_SHELLMAP");
showShellmapCheckbox.IsChecked = () => Game.Settings.Game.ShowShellmap; showShellmapCheckbox.IsChecked = () => Game.Settings.Game.ShowShellmap;
showShellmapCheckbox.OnClick = () => Game.Settings.Game.ShowShellmap ^= true; showShellmapCheckbox.OnClick = () => Game.Settings.Game.ShowShellmap ^= true;
// Audio // Audio
var audio = bg.GetWidget("AUDIO_PANE"); var audio = bg.Get("AUDIO_PANE");
var soundslider = audio.GetWidget<SliderWidget>("SOUND_VOLUME"); var soundslider = audio.Get<SliderWidget>("SOUND_VOLUME");
soundslider.OnChange += x => Sound.SoundVolume = x; soundslider.OnChange += x => Sound.SoundVolume = x;
soundslider.Value = Sound.SoundVolume; soundslider.Value = Sound.SoundVolume;
var musicslider = audio.GetWidget<SliderWidget>("MUSIC_VOLUME"); var musicslider = audio.Get<SliderWidget>("MUSIC_VOLUME");
musicslider.OnChange += x => Sound.MusicVolume = x; musicslider.OnChange += x => Sound.MusicVolume = x;
musicslider.Value = Sound.MusicVolume; musicslider.Value = Sound.MusicVolume;
// Display // Display
var display = bg.GetWidget("DISPLAY_PANE"); var display = bg.Get("DISPLAY_PANE");
var gs = Game.Settings.Graphics; var gs = Game.Settings.Graphics;
var windowModeDropdown = display.GetWidget<DropDownButtonWidget>("MODE_DROPDOWN"); var windowModeDropdown = display.Get<DropDownButtonWidget>("MODE_DROPDOWN");
windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(windowModeDropdown, gs); windowModeDropdown.OnMouseDown = _ => ShowWindowModeDropdown(windowModeDropdown, gs);
windowModeDropdown.GetText = () => gs.Mode == WindowMode.Windowed ? windowModeDropdown.GetText = () => gs.Mode == WindowMode.Windowed ?
"Windowed" : gs.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen"; "Windowed" : gs.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
display.GetWidget("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed; display.Get("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed;
var windowWidth = display.GetWidget<TextFieldWidget>("WINDOW_WIDTH"); var windowWidth = display.Get<TextFieldWidget>("WINDOW_WIDTH");
windowWidth.Text = gs.WindowedSize.X.ToString(); windowWidth.Text = gs.WindowedSize.X.ToString();
var windowHeight = display.GetWidget<TextFieldWidget>("WINDOW_HEIGHT"); var windowHeight = display.Get<TextFieldWidget>("WINDOW_HEIGHT");
windowHeight.Text = gs.WindowedSize.Y.ToString(); windowHeight.Text = gs.WindowedSize.Y.ToString();
var pixelDoubleCheckbox = display.GetWidget<CheckboxWidget>("PIXELDOUBLE_CHECKBOX"); var pixelDoubleCheckbox = display.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
pixelDoubleCheckbox.IsChecked = () => gs.PixelDouble; pixelDoubleCheckbox.IsChecked = () => gs.PixelDouble;
pixelDoubleCheckbox.OnClick = () => pixelDoubleCheckbox.OnClick = () =>
{ {
@@ -105,17 +105,17 @@ namespace OpenRA.Mods.RA.Widgets.Logic
}; };
// Debug // Debug
var debug = bg.GetWidget("DEBUG_PANE"); var debug = bg.Get("DEBUG_PANE");
var perfgraphCheckbox = debug.GetWidget<CheckboxWidget>("PERFDEBUG_CHECKBOX"); var perfgraphCheckbox = debug.Get<CheckboxWidget>("PERFDEBUG_CHECKBOX");
perfgraphCheckbox.IsChecked = () => Game.Settings.Debug.PerfGraph; perfgraphCheckbox.IsChecked = () => Game.Settings.Debug.PerfGraph;
perfgraphCheckbox.OnClick = () => Game.Settings.Debug.PerfGraph ^= true; perfgraphCheckbox.OnClick = () => Game.Settings.Debug.PerfGraph ^= true;
var checkunsyncedCheckbox = debug.GetWidget<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX"); var checkunsyncedCheckbox = debug.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
checkunsyncedCheckbox.IsChecked = () => Game.Settings.Debug.SanityCheckUnsyncedCode; checkunsyncedCheckbox.IsChecked = () => Game.Settings.Debug.SanityCheckUnsyncedCode;
checkunsyncedCheckbox.OnClick = () => Game.Settings.Debug.SanityCheckUnsyncedCode ^= true; checkunsyncedCheckbox.OnClick = () => Game.Settings.Debug.SanityCheckUnsyncedCode ^= true;
bg.GetWidget<ButtonWidget>("BUTTON_CLOSE").OnClick = () => bg.Get<ButtonWidget>("BUTTON_CLOSE").OnClick = () =>
{ {
int x, y; int x, y;
int.TryParse(windowWidth.Text, out x); int.TryParse(windowWidth.Text, out x);
@@ -131,10 +131,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
bool FlipToTab(string id) bool FlipToTab(string id)
{ {
if (open != null) if (open != null)
bg.GetWidget(open).Visible = false; bg.Get(open).Visible = false;
open = id; open = id;
bg.GetWidget(open).Visible = true; bg.Get(open).Visible = true;
return true; return true;
} }
@@ -152,7 +152,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate, var item = ScrollItemWidget.Setup(itemTemplate,
() => s.Mode == options[o], () => s.Mode == options[o],
() => s.Mode = options[o]); () => s.Mode = options[o]);
item.GetWidget<LabelWidget>("LABEL").GetText = () => o; item.Get<LabelWidget>("LABEL").GetText = () => o;
return item; return item;
}; };

View File

@@ -53,7 +53,7 @@ namespace OpenRA.Mods.RA.Widgets
if( world.LocalPlayer == null ) return; if( world.LocalPlayer == null ) return;
if( world.LocalPlayer.WinState != WinState.Undefined ) return; if( world.LocalPlayer.WinState != WinState.Undefined ) return;
var radarBin = Ui.Root.GetWidget<RadarBinWidget>(RadarBin); var radarBin = Ui.Root.Get<RadarBinWidget>(RadarBin);
powerCollection = "power-" + world.LocalPlayer.Country.Race; powerCollection = "power-" + world.LocalPlayer.Country.Race;

View File

@@ -113,7 +113,7 @@ namespace OpenRA.Mods.RA.Widgets
if (WorldInteractionController != null) if (WorldInteractionController != null)
{ {
var controller = Ui.Root.GetWidget<WorldInteractionControllerWidget>(WorldInteractionController); var controller = Ui.Root.Get<WorldInteractionControllerWidget>(WorldInteractionController);
controller.HandleMouseInput(fakemi); controller.HandleMouseInput(fakemi);
fakemi.Event = MouseInputEvent.Up; fakemi.Event = MouseInputEvent.Up;
controller.HandleMouseInput(fakemi); controller.HandleMouseInput(fakemi);

View File

@@ -110,7 +110,7 @@ namespace OpenRA.Mods.RA.Widgets
if (WorldInteractionController != null) if (WorldInteractionController != null)
{ {
var controller = Ui.Root.GetWidget<WorldInteractionControllerWidget>(WorldInteractionController); var controller = Ui.Root.Get<WorldInteractionControllerWidget>(WorldInteractionController);
controller.HandleMouseInput(fakemi); controller.HandleMouseInput(fakemi);
fakemi.Event = MouseInputEvent.Up; fakemi.Event = MouseInputEvent.Up;
controller.HandleMouseInput(fakemi); controller.HandleMouseInput(fakemi);

View File

@@ -31,7 +31,7 @@ namespace OpenRA.Mods.RA
public void SelectionChanged() public void SelectionChanged()
{ {
var palette = Ui.Root.GetWidget<BuildPaletteWidget>("INGAME_BUILD_PALETTE"); var palette = Ui.Root.Get<BuildPaletteWidget>("INGAME_BUILD_PALETTE");
if (palette == null) if (palette == null)
return; return;