#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()
{{ "substitutions", substitutions }});
var itemTemplate = panel.GetWidget<ScrollItemWidget>("TEMPLATE");
var itemTemplate = panel.Get<ScrollItemWidget>("TEMPLATE");
panel.RemoveChildren();
foreach (var option in options)
{

View File

@@ -363,25 +363,36 @@ namespace OpenRA.Widgets
c.Removed();
}
public Widget GetWidget(string id)
public Widget GetOrNull(string id)
{
if (this.Id == id)
return this;
foreach (var child in Children)
{
var w = child.GetWidget(id);
var w = child.GetOrNull(id);
if (w != null)
return w;
}
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 (widget != null) ? (T)widget : null;
return (T) GetOrNull(id);
}
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

View File

@@ -33,7 +33,7 @@ namespace OpenRA.Mods.Cnc.Widgets
this.world = world;
tabsWidget = Lazy.New(() =>
Ui.Root.GetWidget<ProductionTabsWidget>(info.ProductionTabsWidget));
Ui.Root.Get<ProductionTabsWidget>(info.ProductionTabsWidget));
}
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)
{
var prompt = Ui.OpenWindow("CONFIRM_PROMPT");
prompt.GetWidget<LabelWidget>("PROMPT_TITLE").GetText = () => title;
prompt.GetWidget<LabelWidget>("PROMPT_TEXT").GetText = () => text;
prompt.Get<LabelWidget>("PROMPT_TITLE").GetText = () => title;
prompt.Get<LabelWidget>("PROMPT_TEXT").GetText = () => text;
prompt.GetWidget<ButtonWidget>("CONFIRM_BUTTON").OnClick = () =>
prompt.Get<ButtonWidget>("CONFIRM_BUTTON").OnClick = () =>
{
Ui.CloseWindow();
onConfirm();
};
prompt.GetWidget<ButtonWidget>("CANCEL_BUTTON").OnClick = () =>
prompt.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () =>
{
Ui.CloseWindow();
onCancel();

View File

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

View File

@@ -17,8 +17,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor]
public ButtonTooltipLogic(Widget widget, ToggleButtonWidget button)
{
var label = widget.GetWidget<LabelWidget>("LABEL");
var hotkey = widget.GetWidget<LabelWidget>("HOTKEY");
var label = widget.Get<LabelWidget>("LABEL");
var hotkey = widget.Get<LabelWidget>("HOTKEY");
label.GetText = () => button.TooltipText;
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]
public CncConquestObjectivesLogic(Widget widget, World world)
{
var panel = widget.GetWidget("CONQUEST_OBJECTIVES");
panel.GetWidget<LabelWidget>("TITLE").GetText = () => "Conquest: " + world.Map.Title;
var panel = widget.Get("CONQUEST_OBJECTIVES");
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;
if (world.LocalPlayer != null)
{
var lp = world.LocalPlayer;
var objectiveCheckbox = panel.GetWidget<CheckboxWidget>("1");
var objectiveCheckbox = panel.Get<CheckboxWidget>("1");
objectiveCheckbox.IsChecked = () => lp.WinState != WinState.Undefined;
objectiveCheckbox.GetCheckType = () => lp.WinState == WinState.Won ?
"checked" : "crossed";
@@ -39,8 +39,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
lp.WinState == WinState.Lost ? Color.Red : Color.White;
}
var scrollpanel = panel.GetWidget<ScrollPanelWidget>("PLAYER_LIST");
var itemTemplate = scrollpanel.GetWidget("PLAYER_TEMPLATE");
var scrollpanel = panel.Get<ScrollPanelWidget>("PLAYER_LIST");
var itemTemplate = scrollpanel.Get("PLAYER_TEMPLATE");
scrollpanel.RemoveChildren();
foreach (var p in world.Players.Where(a => !a.NonCombatant))
@@ -48,21 +48,21 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Player pp = p;
var c = world.LobbyInfo.ClientWithIndex(pp.ClientIndex);
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.GetColor = () => pp.ColorRamp.GetColor(0);
var flag = item.GetWidget<ImageWidget>("FACTIONFLAG");
var flag = item.Get<ImageWidget>("FACTIONFLAG");
flag.GetImageName = () => pp.Country.Race;
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();
scrollpanel.AddChild(item);
item.GetWidget<LabelWidget>("KILLS").GetText = () => pp.Kills.ToString();
item.GetWidget<LabelWidget>("DEATHS").GetText = () => pp.Deaths.ToString();
item.Get<LabelWidget>("KILLS").GetText = () => pp.Kills.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)
{
ingameRoot.GetWidget<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
ingameRoot.Get<ChatDisplayWidget>("CHAT_DISPLAY").AddLine(c, from, text);
}
void UnregisterEvents()
@@ -57,7 +57,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift));
button.IsToggled = () => queueTabs.QueueGroup == group;
var chromeName = group.ToLowerInvariant();
var icon = button.GetWidget<ImageWidget>("ICON");
var icon = button.Get<ImageWidget>("ICON");
icon.GetImageName = () => button.IsDisabled() ? chromeName+"-disabled" :
queueTabs.Groups[group].Alert ? chromeName+"-alert" : chromeName;
}
@@ -72,8 +72,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Game.AddChatLine += AddChatLine;
Game.BeforeGameStart += UnregisterEvents;
ingameRoot = widget.GetWidget("INGAME_ROOT");
var playerRoot = ingameRoot.GetWidget("PLAYER_ROOT");
ingameRoot = widget.Get("INGAME_ROOT");
var playerRoot = ingameRoot.Get("PLAYER_ROOT");
// Observer
if (world.LocalPlayer == null)
@@ -100,7 +100,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public void InitObserverWidgets(World world, Widget playerRoot)
{
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)
@@ -109,29 +109,29 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs());
playerWidgets.IsVisible = () => true;
var sidebarRoot = playerWidgets.GetWidget("SIDEBAR_BACKGROUND");
var sidebarRoot = playerWidgets.Get("SIDEBAR_BACKGROUND");
BindOrderButton<SellOrderGenerator>(world, sidebarRoot, "SELL_BUTTON", "sell");
BindOrderButton<RepairOrderGenerator>(world, sidebarRoot, "REPAIR_BUTTON", "repair");
var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>();
sidebarRoot.GetWidget<LabelWidget>("CASH").GetText = () =>
sidebarRoot.Get<LabelWidget>("CASH").GetText = () =>
"${0}".F(playerResources.DisplayCash + playerResources.DisplayOre);
queueTabs = playerWidgets.GetWidget<ProductionTabsWidget>("PRODUCTION_TABS");
queueTabs = playerWidgets.Get<ProductionTabsWidget>("PRODUCTION_TABS");
world.ActorAdded += queueTabs.ActorChanged;
world.ActorRemoved += queueTabs.ActorChanged;
var queueTypes = sidebarRoot.GetWidget("PRODUCTION_TYPES");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("BUILDING"), "Building");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("DEFENSE"), "Defense");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("INFANTRY"), "Infantry");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("VEHICLE"), "Vehicle");
SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("AIRCRAFT"), "Aircraft");
var queueTypes = sidebarRoot.Get("PRODUCTION_TYPES");
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("BUILDING"), "Building");
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("DEFENSE"), "Defense");
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("INFANTRY"), "Infantry");
SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("VEHICLE"), "Vehicle");
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 = () =>
{
if (menu != MenuType.None)
@@ -142,7 +142,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
};
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 = () =>
{
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)
where T : IOrderGenerator, new()
{
var w = parent.GetWidget<ToggleButtonWidget>(button);
var w = parent.Get<ToggleButtonWidget>(button);
w.OnClick = () => world.ToggleInputMode<T>();
w.IsToggled = () => world.OrderGenerator is T;
w.GetWidget<ImageWidget>("ICON").GetImageName =
w.Get<ImageWidget>("ICON").GetImageName =
() => 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)
{
var resumeDisabled = false;
menu = widget.GetWidget("INGAME_MENU");
menu = widget.Get("INGAME_MENU");
var mpe = world.WorldActor.Trait<CncMenuPaletteEffect>();
mpe.Fade(CncMenuPaletteEffect.EffectType.Desaturated);
menu.GetWidget<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
menu.Get<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
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
Action onQuit = () =>
@@ -48,16 +48,16 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
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);
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.OnClick = () =>
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;
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;
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.OnClick = () =>
{

View File

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

View File

@@ -19,17 +19,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor]
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()
{
{ "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } },
{ "installData", installData }
};
panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
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)
{
{ "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" } },
});
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()
{

View File

@@ -27,17 +27,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
world.WorldActor.Trait<CncMenuPaletteEffect>()
.Fade(CncMenuPaletteEffect.EffectType.Desaturated);
rootMenu = widget.GetWidget("MENU_BACKGROUND");
rootMenu.GetWidget<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
rootMenu = widget.Get("MENU_BACKGROUND");
rootMenu.Get<LabelWidget>("VERSION_LABEL").GetText = WidgetUtils.ActiveModVersion;
// Menu buttons
var mainMenu = widget.GetWidget("MAIN_MENU");
var mainMenu = widget.Get("MAIN_MENU");
mainMenu.IsVisible = () => Menu == MenuType.Main;
mainMenu.GetWidget<ButtonWidget>("SOLO_BUTTON").OnClick = StartSkirmishGame;
mainMenu.GetWidget<ButtonWidget>("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer;
mainMenu.Get<ButtonWidget>("SOLO_BUTTON").OnClick = StartSkirmishGame;
mainMenu.Get<ButtonWidget>("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer;
mainMenu.GetWidget<ButtonWidget>("MODS_BUTTON").OnClick = () =>
mainMenu.Get<ButtonWidget>("MODS_BUTTON").OnClick = () =>
{
Menu = MenuType.None;
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.GetWidget<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
mainMenu.Get<ButtonWidget>("SETTINGS_BUTTON").OnClick = () => Menu = MenuType.Settings;
mainMenu.Get<ButtonWidget>("QUIT_BUTTON").OnClick = Game.Exit;
// Multiplayer menu
var multiplayerMenu = widget.GetWidget("MULTIPLAYER_MENU");
var multiplayerMenu = widget.Get("MULTIPLAYER_MENU");
multiplayerMenu.IsVisible = () => Menu == MenuType.Multiplayer;
multiplayerMenu.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
multiplayerMenu.GetWidget<ButtonWidget>("JOIN_BUTTON").OnClick = () => OpenGamePanel("SERVERBROWSER_PANEL");
multiplayerMenu.GetWidget<ButtonWidget>("CREATE_BUTTON").OnClick = () => OpenGamePanel("CREATESERVER_PANEL");
multiplayerMenu.GetWidget<ButtonWidget>("DIRECTCONNECT_BUTTON").OnClick = () => OpenGamePanel("DIRECTCONNECT_PANEL");
multiplayerMenu.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => Menu = MenuType.Main;
multiplayerMenu.Get<ButtonWidget>("JOIN_BUTTON").OnClick = () => OpenGamePanel("SERVERBROWSER_PANEL");
multiplayerMenu.Get<ButtonWidget>("CREATE_BUTTON").OnClick = () => OpenGamePanel("CREATESERVER_PANEL");
multiplayerMenu.Get<ButtonWidget>("DIRECTCONNECT_BUTTON").OnClick = () => OpenGamePanel("DIRECTCONNECT_PANEL");
// Settings menu
var settingsMenu = widget.GetWidget("SETTINGS_MENU");
var settingsMenu = widget.Get("SETTINGS_MENU");
settingsMenu.IsVisible = () => Menu == MenuType.Settings;
settingsMenu.GetWidget<ButtonWidget>("REPLAYS_BUTTON").OnClick = () =>
settingsMenu.Get<ButtonWidget>("REPLAYS_BUTTON").OnClick = () =>
{
Menu = MenuType.None;
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;
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;
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)

View File

@@ -31,10 +31,10 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor]
public CncMusicPlayerLogic(Widget widget, Action onExit)
{
panel = widget.GetWidget("MUSIC_PANEL");
panel = widget.Get("MUSIC_PANEL");
var ml = panel.GetWidget<ScrollPanelWidget>("MUSIC_LIST");
itemTemplate = ml.GetWidget<ScrollItemWidget>("MUSIC_TEMPLATE");
var ml = panel.Get<ScrollPanelWidget>("MUSIC_LIST");
itemTemplate = ml.Get<ScrollItemWidget>("MUSIC_TEMPLATE");
BuildMusicTable(ml);
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
installed = Rules.Music.Where(m => m.Value.Exists).Any();
Func<bool> noMusic = () => !installed;
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
Action afterInstall = () =>
{
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
BuildMusicTable(ml);
};
var installButton = panel.GetWidget<ButtonWidget>("INSTALL_BUTTON");
var installButton = panel.Get<ButtonWidget>("INSTALL_BUTTON");
installButton.OnClick = () =>
Ui.OpenWindow("INSTALL_MUSIC_PANEL", new WidgetArgs() {
{ "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
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.IsDisabled = noMusic;
var pauseButton = panel.GetWidget<ButtonWidget>("BUTTON_PAUSE");
var pauseButton = panel.Get<ButtonWidget>("BUTTON_PAUSE");
pauseButton.OnClick = Pause;
pauseButton.IsDisabled = noMusic;
var stopButton = panel.GetWidget<ButtonWidget>("BUTTON_STOP");
var stopButton = panel.Get<ButtonWidget>("BUTTON_STOP");
stopButton.OnClick = Stop;
stopButton.IsDisabled = noMusic;
var nextButton = panel.GetWidget<ButtonWidget>("BUTTON_NEXT");
var nextButton = panel.Get<ButtonWidget>("BUTTON_NEXT");
nextButton.OnClick = () => { currentSong = GetNextSong(); Play(); };
nextButton.IsDisabled = noMusic;
var prevButton = panel.GetWidget<ButtonWidget>("BUTTON_PREV");
var prevButton = panel.Get<ButtonWidget>("BUTTON_PREV");
prevButton.OnClick = () => { currentSong = GetPrevSong(); Play(); };
prevButton.IsDisabled = noMusic;
var shuffleCheckbox = panel.GetWidget<CheckboxWidget>("SHUFFLE");
var shuffleCheckbox = panel.Get<CheckboxWidget>("SHUFFLE");
shuffleCheckbox.IsChecked = () => Game.Settings.Sound.Shuffle;
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.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,
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.Value = Sound.MusicVolume;
}
@@ -122,8 +122,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
currentSong = song;
var item = ScrollItemWidget.Setup(itemTemplate, () => currentSong == song, () => { currentSong = song; Play(); });
item.GetWidget<LabelWidget>("TITLE").GetText = () => song.Title;
item.GetWidget<LabelWidget>("LENGTH").GetText = () => SongLengthLabel(song);
item.Get<LabelWidget>("TITLE").GetText = () => song.Title;
item.Get<LabelWidget>("LENGTH").GetText = () => SongLengthLabel(song);
list.AddChild(item);
}
}
@@ -140,22 +140,22 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Play();
});
panel.GetWidget("BUTTON_PLAY").Visible = false;
panel.GetWidget("BUTTON_PAUSE").Visible = true;
panel.Get("BUTTON_PLAY").Visible = false;
panel.Get("BUTTON_PAUSE").Visible = true;
}
void Pause()
{
Sound.PauseMusic();
panel.GetWidget("BUTTON_PAUSE").Visible = false;
panel.GetWidget("BUTTON_PLAY").Visible = true;
panel.Get("BUTTON_PAUSE").Visible = false;
panel.Get("BUTTON_PLAY").Visible = true;
}
void Stop()
{
Sound.StopMusic();
panel.GetWidget("BUTTON_PAUSE").Visible = false;
panel.GetWidget("BUTTON_PLAY").Visible = true;
panel.Get("BUTTON_PAUSE").Visible = false;
panel.Get("BUTTON_PLAY").Visible = true;
}
string SongLengthLabel(MusicInfo song)

View File

@@ -19,9 +19,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public CncPerfDebugLogic(Widget widget)
{
// Performance info
var perfRoot = widget.GetWidget("PERFORMANCE_INFO");
var perfRoot = widget.Get("PERFORMANCE_INFO");
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.GetText = () =>
"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)
{
this.world = world;
var panel = widget.GetWidget("SETTINGS_PANEL");
var panel = widget.Get("SETTINGS_PANEL");
// General pane
var generalButton = panel.GetWidget<ButtonWidget>("GENERAL_BUTTON");
var generalButton = panel.Get<ButtonWidget>("GENERAL_BUTTON");
generalButton.OnClick = () => 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;
var gameSettings = Game.Settings.Game;
@@ -49,36 +49,36 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
var soundSettings = Game.Settings.Sound;
// Player profile
var nameTextfield = generalPane.GetWidget<TextFieldWidget>("NAME_TEXTFIELD");
var nameTextfield = generalPane.Get<TextFieldWidget>("NAME_TEXTFIELD");
nameTextfield.Text = playerSettings.Name;
playerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>();
playerPalettePreview.Ramp = playerSettings.ColorRamp;
var colorDropdown = generalPane.GetWidget<DropDownButtonWidget>("COLOR");
var colorDropdown = generalPane.Get<DropDownButtonWidget>("COLOR");
colorDropdown.OnMouseDown = _ => ShowColorPicker(colorDropdown, playerSettings);
colorDropdown.GetWidget<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerSettings.ColorRamp.GetColor(0);
colorDropdown.Get<ColorBlockWidget>("COLORBLOCK").GetColor = () => playerSettings.ColorRamp.GetColor(0);
// Debug
var perftextCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFTEXT_CHECKBOX");
var perftextCheckbox = generalPane.Get<CheckboxWidget>("PERFTEXT_CHECKBOX");
perftextCheckbox.IsChecked = () => debugSettings.PerfText;
perftextCheckbox.OnClick = () => debugSettings.PerfText ^= true;
var perfgraphCheckbox = generalPane.GetWidget<CheckboxWidget>("PERFGRAPH_CHECKBOX");
var perfgraphCheckbox = generalPane.Get<CheckboxWidget>("PERFGRAPH_CHECKBOX");
perfgraphCheckbox.IsChecked = () => debugSettings.PerfGraph;
perfgraphCheckbox.OnClick = () => debugSettings.PerfGraph ^= true;
var checkunsyncedCheckbox = generalPane.GetWidget<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
var checkunsyncedCheckbox = generalPane.Get<CheckboxWidget>("CHECKUNSYNCED_CHECKBOX");
checkunsyncedCheckbox.IsChecked = () => debugSettings.SanityCheckUnsyncedCode;
checkunsyncedCheckbox.OnClick = () => debugSettings.SanityCheckUnsyncedCode ^= true;
// Video
var windowModeDropdown = generalPane.GetWidget<DropDownButtonWidget>("MODE_DROPDOWN");
var windowModeDropdown = generalPane.Get<DropDownButtonWidget>("MODE_DROPDOWN");
windowModeDropdown.OnMouseDown = _ => SettingsMenuLogic.ShowWindowModeDropdown(windowModeDropdown, graphicsSettings);
windowModeDropdown.GetText = () => graphicsSettings.Mode == WindowMode.Windowed ?
"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.OnClick = () =>
{
@@ -86,53 +86,53 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
Game.viewport.Zoom = graphicsSettings.PixelDouble ? 2 : 1;
};
generalPane.GetWidget("WINDOW_RESOLUTION").IsVisible = () => graphicsSettings.Mode == WindowMode.Windowed;
var windowWidth = generalPane.GetWidget<TextFieldWidget>("WINDOW_WIDTH");
generalPane.Get("WINDOW_RESOLUTION").IsVisible = () => graphicsSettings.Mode == WindowMode.Windowed;
var windowWidth = generalPane.Get<TextFieldWidget>("WINDOW_WIDTH");
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();
// 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.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.Value = soundSettings.MusicVolume;
var shellmapMusicCheckbox = generalPane.GetWidget<CheckboxWidget>("SHELLMAP_MUSIC");
var shellmapMusicCheckbox = generalPane.Get<CheckboxWidget>("SHELLMAP_MUSIC");
shellmapMusicCheckbox.IsChecked = () => soundSettings.ShellmapMusic;
shellmapMusicCheckbox.OnClick = () => soundSettings.ShellmapMusic ^= true;
// Input pane
var inputPane = panel.GetWidget("INPUT_CONTROLS");
var inputPane = panel.Get("INPUT_CONTROLS");
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.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.OnChange += x => gameSettings.ViewportEdgeScrollStep = x;
var edgescrollCheckbox = inputPane.GetWidget<CheckboxWidget>("EDGESCROLL_CHECKBOX");
var edgescrollCheckbox = inputPane.Get<CheckboxWidget>("EDGESCROLL_CHECKBOX");
edgescrollCheckbox.IsChecked = () => gameSettings.ViewportEdgeScroll;
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.GetText = () => gameSettings.MouseScroll.ToString();
var teamchatCheckbox = inputPane.GetWidget<CheckboxWidget>("TEAMCHAT_CHECKBOX");
var teamchatCheckbox = inputPane.Get<CheckboxWidget>("TEAMCHAT_CHECKBOX");
teamchatCheckbox.IsChecked = () => gameSettings.TeamChatToggle;
teamchatCheckbox.OnClick = () => gameSettings.TeamChatToggle ^= true;
panel.GetWidget<ButtonWidget>("BACK_BUTTON").OnClick = () =>
panel.Get<ButtonWidget>("BACK_BUTTON").OnClick = () =>
{
playerSettings.Name = nameTextfield.Text;
int x, y;
@@ -175,7 +175,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate,
() => s.MouseScroll == options[o],
() => s.MouseScroll = options[o]);
item.GetWidget<LabelWidget>("LABEL").GetText = () => o;
item.Get<LabelWidget>("LABEL").GetText = () => o;
return item;
};

View File

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

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
[ObjectCreator.UseCtor]
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 cachedWidth = 0;

View File

@@ -20,9 +20,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic
public SupportPowerTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, SupportPowersWidget palette)
{
widget.IsVisible = () => palette.TooltipPower != null;
var nameLabel = widget.GetWidget<LabelWidget>("NAME");
var timeLabel = widget.GetWidget<LabelWidget>("TIME");
var descLabel = widget.GetWidget<LabelWidget>("DESC");
var nameLabel = widget.Get<LabelWidget>("NAME");
var timeLabel = widget.Get<LabelWidget>("TIME");
var descLabel = widget.Get<LabelWidget>("DESC");
var nameFont = Game.Renderer.Fonts[nameLabel.Font];
var timeFont = Game.Renderer.Fonts[timeLabel.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)
{
widget.IsVisible = () => wic.TooltipType != WorldTooltipType.None;
var label = widget.GetWidget<LabelWidget>("LABEL");
var flag = widget.GetWidget<ImageWidget>("FLAG");
var owner = widget.GetWidget<LabelWidget>("OWNER");
var label = widget.Get<LabelWidget>("LABEL");
var flag = widget.Get<ImageWidget>("FLAG");
var owner = widget.Get<LabelWidget>("OWNER");
var font = Game.Renderer.Fonts[label.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>();
tooltipContainer = Lazy.New(() =>
Ui.Root.GetWidget<TooltipContainerWidget>(TooltipContainer));
Ui.Root.Get<TooltipContainerWidget>(TooltipContainer));
}
public override void MouseEntered()

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -22,41 +22,41 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{
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.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.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));
var fastBuildCheckbox = widget.GetWidget<CheckboxWidget>("INSTANT_BUILD");
var fastBuildCheckbox = widget.Get<CheckboxWidget>("INSTANT_BUILD");
fastBuildCheckbox.IsChecked = () => devTrait.FastBuild;
fastBuildCheckbox.OnClick = () => Order(world, "DevFastBuild");
var fastChargeCheckbox = widget.GetWidget<CheckboxWidget>("INSTANT_CHARGE");
var fastChargeCheckbox = widget.Get<CheckboxWidget>("INSTANT_CHARGE");
fastChargeCheckbox.IsChecked = () => devTrait.FastCharge;
fastChargeCheckbox.OnClick = () => Order(world, "DevFastCharge");
var allTechCheckbox = widget.GetWidget<CheckboxWidget>("ENABLE_TECH");
var allTechCheckbox = widget.Get<CheckboxWidget>("ENABLE_TECH");
allTechCheckbox.IsChecked = () => devTrait.AllTech;
allTechCheckbox.OnClick = () => Order(world, "DevEnableTech");
var powerCheckbox = widget.GetWidget<CheckboxWidget>("UNLIMITED_POWER");
var powerCheckbox = widget.Get<CheckboxWidget>("UNLIMITED_POWER");
powerCheckbox.IsChecked = () => devTrait.UnlimitedPower;
powerCheckbox.OnClick = () => Order(world, "DevUnlimitedPower");
var buildAnywhereCheckbox = widget.GetWidget<CheckboxWidget>("BUILD_ANYWHERE");
var buildAnywhereCheckbox = widget.Get<CheckboxWidget>("BUILD_ANYWHERE");
buildAnywhereCheckbox.IsChecked = () => devTrait.BuildAnywhere;
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));
widget.GetWidget<ButtonWidget>("CLOSE").OnClick = () => { Ui.CloseWindow(); onExit(); };
widget.Get<ButtonWidget>("CLOSE").OnClick = () => { Ui.CloseWindow(); onExit(); };
}
public void Order(World world, string order)

View File

@@ -25,9 +25,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{
var panel = widget;
ramp = initialRamp;
var hueSlider = panel.GetWidget<SliderWidget>("HUE");
var satSlider = panel.GetWidget<SliderWidget>("SAT");
var lumSlider = panel.GetWidget<SliderWidget>("LUM");
var hueSlider = panel.Get<SliderWidget>("HUE");
var satSlider = panel.Get<SliderWidget>("SAT");
var lumSlider = panel.Get<SliderWidget>("LUM");
Action sliderChanged = () =>
{
@@ -49,9 +49,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
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)
randomButton.OnClick = () =>
{

View File

@@ -59,9 +59,9 @@ namespace OpenRA.Mods.RA.Widgets.Logic
Game.ConnectionStateChanged += ConnectionStateChanged;
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);
}
@@ -85,10 +85,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public ConnectionFailedLogic(Widget widget, string host, int port, Action onRetry, Action onAbort)
{
var panel = widget;
panel.GetWidget<ButtonWidget>("ABORT_BUTTON").OnClick = () => { Ui.CloseWindow(); onAbort(); };
panel.GetWidget<ButtonWidget>("RETRY_BUTTON").OnClick = () => { Ui.CloseWindow(); onRetry(); };
panel.Get<ButtonWidget>("ABORT_BUTTON").OnClick = () => { Ui.CloseWindow(); onAbort(); };
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);
}
}

View File

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

View File

@@ -19,14 +19,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public DirectConnectLogic(Widget widget, Action onExit, Action openLobby)
{
var panel = widget;
var ipField = panel.GetWidget<TextFieldWidget>("IP");
var portField = panel.GetWidget<TextFieldWidget>("PORT");
var ipField = panel.Get<TextFieldWidget>("IP");
var portField = panel.Get<TextFieldWidget>("PORT");
var last = Game.Settings.Player.LastServer.Split(':');
ipField.Text = last.Length > 1 ? last[0] : "localhost";
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));
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
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.afterInstall = afterInstall;
panel = widget.GetWidget("INSTALL_DOWNLOAD_PANEL");
progressBar = panel.GetWidget<ProgressBarWidget>("PROGRESS_BAR");
statusLabel = panel.GetWidget<LabelWidget>("STATUS_LABEL");
panel = widget.Get("INSTALL_DOWNLOAD_PANEL");
progressBar = panel.Get<ProgressBarWidget>("PROGRESS_BAR");
statusLabel = panel.Get<LabelWidget>("STATUS_LABEL");
ShowDownloadDialog();
}
@@ -44,10 +44,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
{
statusLabel.GetText = () => "Initializing...";
progressBar.SetIndeterminate(true);
var retryButton = panel.GetWidget<ButtonWidget>("RETRY_BUTTON");
var retryButton = panel.Get<ButtonWidget>("RETRY_BUTTON");
retryButton.IsVisible = () => false;
var cancelButton = panel.GetWidget<ButtonWidget>("CANCEL_BUTTON");
var cancelButton = panel.Get<ButtonWidget>("CANCEL_BUTTON");
// Save the package to a temp file
var file = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());

View File

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

View File

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

View File

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

View File

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

View File

@@ -23,24 +23,24 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public ModBrowserLogic(Widget widget, Action onSwitch, Action onExit)
{
var panel = widget;
var modList = panel.GetWidget<ScrollPanelWidget>("MOD_LIST");
var loadButton = panel.GetWidget<ButtonWidget>("LOAD_BUTTON");
var modList = panel.Get<ScrollPanelWidget>("MOD_LIST");
var loadButton = panel.Get<ButtonWidget>("LOAD_BUTTON");
loadButton.OnClick = () => LoadMod(currentMod.Id, onSwitch);
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]];
// Mod list
var modTemplate = modList.GetWidget<ScrollItemWidget>("MOD_TEMPLATE");
var modTemplate = modList.Get<ScrollItemWidget>("MOD_TEMPLATE");
foreach (var m in Mod.AllMods)
{
var mod = m.Value;
var item = ScrollItemWidget.Setup(modTemplate, () => currentMod == mod, () => currentMod = mod);
item.GetWidget<LabelWidget>("TITLE").GetText = () => mod.Title;
item.GetWidget<LabelWidget>("VERSION").GetText = () => mod.Version;
item.GetWidget<LabelWidget>("AUTHOR").GetText = () => mod.Author;
item.Get<LabelWidget>("TITLE").GetText = () => mod.Title;
item.Get<LabelWidget>("VERSION").GetText = () => mod.Version;
item.Get<LabelWidget>("AUTHOR").GetText = () => mod.Author;
modList.AddChild(item);
}
}

View File

@@ -34,32 +34,32 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public MusicPlayerLogic()
{
bg = Ui.Root.GetWidget("MUSIC_MENU");
bg = Ui.Root.Get("MUSIC_MENU");
CurrentSong = GetNextSong();
bg.GetWidget( "BUTTON_PAUSE" ).IsVisible = () => Sound.MusicPlaying;
bg.GetWidget( "BUTTON_PLAY" ).IsVisible = () => !Sound.MusicPlaying;
bg.Get( "BUTTON_PAUSE" ).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(); };
bg.GetWidget("BUTTON_INSTALL").IsVisible = () => false;
bg.Get("BUTTON_INSTALL").IsVisible = () => false;
bg.GetWidget<ButtonWidget>("BUTTON_PLAY").OnClick = () => Play( CurrentSong );
bg.GetWidget<ButtonWidget>("BUTTON_PAUSE").OnClick = Sound.PauseMusic;
bg.GetWidget<ButtonWidget>("BUTTON_STOP").OnClick = Sound.StopMusic;
bg.GetWidget<ButtonWidget>("BUTTON_NEXT").OnClick = () => Play( GetNextSong() );
bg.GetWidget<ButtonWidget>("BUTTON_PREV").OnClick = () => Play( GetPrevSong() );
bg.Get<ButtonWidget>("BUTTON_PLAY").OnClick = () => Play( CurrentSong );
bg.Get<ButtonWidget>("BUTTON_PAUSE").OnClick = Sound.PauseMusic;
bg.Get<ButtonWidget>("BUTTON_STOP").OnClick = Sound.StopMusic;
bg.Get<ButtonWidget>("BUTTON_NEXT").OnClick = () => Play( GetNextSong() );
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.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.OnClick = () => Game.Settings.Sound.Repeat ^= true;
bg.GetWidget<LabelWidget>("TIME").GetText = () =>
bg.Get<LabelWidget>("TIME").GetText = () =>
{
if (CurrentSong == null)
return "";
@@ -68,14 +68,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
WidgetUtils.FormatTimeSeconds( Rules.Music[CurrentSong].Length ));
};
var ml = bg.GetWidget<ScrollPanelWidget>("MUSIC_LIST");
var itemTemplate = ml.GetWidget<ScrollItemWidget>("MUSIC_TEMPLATE");
var ml = bg.Get<ScrollPanelWidget>("MUSIC_LIST");
var itemTemplate = ml.Get<ScrollItemWidget>("MUSIC_TEMPLATE");
if (!Rules.InstalledMusic.Any())
{
itemTemplate.IsVisible = () => true;
itemTemplate.GetWidget<LabelWidget>("TITLE").GetText = () => "No Music Installed";
itemTemplate.GetWidget<LabelWidget>("TITLE").Align = TextAlign.Center;
itemTemplate.Get<LabelWidget>("TITLE").GetText = () => "No Music Installed";
itemTemplate.Get<LabelWidget>("TITLE").Align = TextAlign.Center;
}
foreach (var kv in Rules.InstalledMusic)
@@ -84,8 +84,8 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate,
() => CurrentSong == song,
() => Play( song ));
item.GetWidget<LabelWidget>("TITLE").GetText = () => Rules.Music[song].Title;
item.GetWidget<LabelWidget>("LENGTH").GetText =
item.Get<LabelWidget>("TITLE").GetText = () => Rules.Music[song].Title;
item.Get<LabelWidget>("LENGTH").GetText =
() => WidgetUtils.FormatTimeSeconds( Rules.Music[song].Length );
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 */
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 = () => {
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)
where T : IOrderGenerator, new()
{
var w = parent.GetWidget<OrderButtonWidget>(button);
var w = parent.GetOrNull<OrderButtonWidget>(button);
if (w != null)
{
w.Pressed = () => world.OrderGenerator is T;

View File

@@ -18,11 +18,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public PerfDebugLogic()
{
var r = Ui.Root;
var perfRoot = r.GetWidget("PERF_BG");
var perfRoot = r.Get("PERF_BG");
perfRoot.IsVisible = () => perfRoot.Visible && Game.Settings.Debug.PerfGraph;
// 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(
Game.RenderFrame,
Game.NetFrameNumber,

View File

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

View File

@@ -19,20 +19,20 @@ namespace OpenRA.Mods.RA.Widgets.Logic
[ObjectCreator.UseCtor]
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()
{
{ "afterInstall", () => { Ui.CloseWindow(); continueLoading(); } },
{ "installData", installData }
};
panel.GetWidget<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
panel.Get<ButtonWidget>("DOWNLOAD_BUTTON").OnClick = () =>
Ui.OpenWindow("INSTALL_DOWNLOAD_PANEL", args);
panel.GetWidget<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
panel.Get<ButtonWidget>("INSTALL_BUTTON").OnClick = () =>
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.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 template = panel.GetWidget<ScrollItemWidget>("REPLAY_TEMPLATE");
var template = panel.Get<ScrollItemWidget>("REPLAY_TEMPLATE");
rl.RemoveChildren();
if (Directory.Exists(replayDir))
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
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.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;
@@ -70,15 +70,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
currentReplay = new Replay(filename);
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. */);
panel.GetWidget<MapPreviewWidget>("MAP_PREVIEW").Map = () => currentMap;
panel.GetWidget<LabelWidget>("MAP_TITLE").GetText =
panel.Get<MapPreviewWidget>("MAP_PREVIEW").Map = () => currentMap;
panel.Get<LabelWidget>("MAP_TITLE").GetText =
() => currentMap != null ? currentMap.Title : "(Unknown Map)";
var players = currentReplay.LobbyInfo.Slots
.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)
{
@@ -94,7 +94,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
() => currentReplay != null && currentReplay.Filename == filename,
() => SelectReplay(filename));
var f = Path.GetFileName(filename);
item.GetWidget<LabelWidget>("TITLE").GetText = () => f;
item.Get<LabelWidget>("TITLE").GetText = () => f;
list.AddChild(item);
}
}

View File

@@ -41,10 +41,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public ServerBrowserLogic(Widget widget, Action openLobby, Action onExit)
{
var panel = widget;
var sl = panel.GetWidget<ScrollPanelWidget>("SERVER_LIST");
var sl = panel.Get<ScrollPanelWidget>("SERVER_LIST");
// Menu buttons
var refreshButton = panel.GetWidget<ButtonWidget>("REFRESH_BUTTON");
var refreshButton = panel.Get<ButtonWidget>("REFRESH_BUTTON");
refreshButton.IsDisabled = () => searchStatus == SearchStatus.Fetching;
refreshButton.OnClick = () =>
{
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
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.OnClick = () =>
{
@@ -68,14 +68,14 @@ namespace OpenRA.Mods.RA.Widgets.Logic
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
serverTemplate = sl.GetWidget<ScrollItemWidget>("SERVER_TEMPLATE");
serverTemplate = sl.Get<ScrollItemWidget>("SERVER_TEMPLATE");
// Display the progress label over the server list
// 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.GetText = ProgressLabelText;
@@ -123,7 +123,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public void RefreshServerList(Widget panel, IEnumerable<GameServer> games)
{
var sl = panel.GetWidget<ScrollPanelWidget>("SERVER_LIST");
var sl = panel.Get<ScrollPanelWidget>("SERVER_LIST");
sl.RemoveChildren();
currentServer = null;
@@ -151,15 +151,15 @@ namespace OpenRA.Mods.RA.Widgets.Logic
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.IsVisible = () => GetMapPreview(game) != null;
var title = item.GetWidget<LabelWidget>("TITLE");
var title = item.Get<LabelWidget>("TITLE");
title.GetText = () => game.Name;
// TODO: Use game.MapTitle once the server supports it
var maptitle = item.GetWidget<LabelWidget>("MAP");
var maptitle = item.Get<LabelWidget>("MAP");
maptitle.GetText = () =>
{
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
var players = item.GetWidget<LabelWidget>("PLAYERS");
var players = item.Get<LabelWidget>("PLAYERS");
players.GetText = () => GetPlayersLabel(game);
var state = item.GetWidget<LabelWidget>("STATE");
var state = item.Get<LabelWidget>("STATE");
state.GetText = () => GetStateLabel(game);
var ip = item.GetWidget<LabelWidget>("IP");
var ip = item.Get<LabelWidget>("IP");
ip.GetText = () => game.Address;
var version = item.GetWidget<LabelWidget>("VERSION");
var version = item.Get<LabelWidget>("VERSION");
version.GetText = () => GenerateModsLabel(game);
version.IsVisible = () => !game.CompatibleVersion();

View File

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

View File

@@ -23,20 +23,20 @@ namespace OpenRA.Mods.RA.Widgets.Logic
public SettingsMenuLogic()
{
bg = Ui.Root.GetWidget<BackgroundWidget>("SETTINGS_MENU");
var tabs = bg.GetWidget<ContainerWidget>("TAB_CONTAINER");
bg = Ui.Root.Get<BackgroundWidget>("SETTINGS_MENU");
var tabs = bg.Get<ContainerWidget>("TAB_CONTAINER");
//Tabs
tabs.GetWidget<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE");
tabs.GetWidget<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE");
tabs.GetWidget<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE");
tabs.GetWidget<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE");
tabs.Get<ButtonWidget>("GENERAL").OnClick = () => FlipToTab("GENERAL_PANE");
tabs.Get<ButtonWidget>("AUDIO").OnClick = () => FlipToTab("AUDIO_PANE");
tabs.Get<ButtonWidget>("DISPLAY").OnClick = () => FlipToTab("DISPLAY_PANE");
tabs.Get<ButtonWidget>("DEBUG").OnClick = () => FlipToTab("DEBUG_PANE");
FlipToTab("GENERAL_PANE");
//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.OnLoseFocus = () =>
{
@@ -49,54 +49,54 @@ namespace OpenRA.Mods.RA.Widgets.Logic
};
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.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.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.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.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.OnClick = () => Game.Settings.Game.ShowShellmap ^= true;
// 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.Value = Sound.SoundVolume;
var musicslider = audio.GetWidget<SliderWidget>("MUSIC_VOLUME");
var musicslider = audio.Get<SliderWidget>("MUSIC_VOLUME");
musicslider.OnChange += x => Sound.MusicVolume = x;
musicslider.Value = Sound.MusicVolume;
// Display
var display = bg.GetWidget("DISPLAY_PANE");
var display = bg.Get("DISPLAY_PANE");
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.GetText = () => gs.Mode == WindowMode.Windowed ?
"Windowed" : gs.Mode == WindowMode.Fullscreen ? "Fullscreen" : "Pseudo-Fullscreen";
display.GetWidget("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed;
var windowWidth = display.GetWidget<TextFieldWidget>("WINDOW_WIDTH");
display.Get("WINDOW_RESOLUTION").IsVisible = () => gs.Mode == WindowMode.Windowed;
var windowWidth = display.Get<TextFieldWidget>("WINDOW_WIDTH");
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();
var pixelDoubleCheckbox = display.GetWidget<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
var pixelDoubleCheckbox = display.Get<CheckboxWidget>("PIXELDOUBLE_CHECKBOX");
pixelDoubleCheckbox.IsChecked = () => gs.PixelDouble;
pixelDoubleCheckbox.OnClick = () =>
{
@@ -105,17 +105,17 @@ namespace OpenRA.Mods.RA.Widgets.Logic
};
// 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.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.OnClick = () => Game.Settings.Debug.SanityCheckUnsyncedCode ^= true;
bg.GetWidget<ButtonWidget>("BUTTON_CLOSE").OnClick = () =>
bg.Get<ButtonWidget>("BUTTON_CLOSE").OnClick = () =>
{
int x, y;
int.TryParse(windowWidth.Text, out x);
@@ -131,10 +131,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic
bool FlipToTab(string id)
{
if (open != null)
bg.GetWidget(open).Visible = false;
bg.Get(open).Visible = false;
open = id;
bg.GetWidget(open).Visible = true;
bg.Get(open).Visible = true;
return true;
}
@@ -152,7 +152,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic
var item = ScrollItemWidget.Setup(itemTemplate,
() => s.Mode == options[o],
() => s.Mode = options[o]);
item.GetWidget<LabelWidget>("LABEL").GetText = () => o;
item.Get<LabelWidget>("LABEL").GetText = () => o;
return item;
};

View File

@@ -53,7 +53,7 @@ namespace OpenRA.Mods.RA.Widgets
if( world.LocalPlayer == null ) 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;

View File

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

View File

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

View File

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