From a683bddfeadfeaf1eed04d9f20c3341c01e579be Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 9 Apr 2010 18:23:34 +1200 Subject: [PATCH] Quick-fix for "Invisible chrome" bug --- OpenRA.Game/Chrome.cs | 13 ++++++---- OpenRA.Game/Graphics/Viewport.cs | 26 +++++++++---------- OpenRA.Game/Widgets/ButtonWidget.cs | 8 +++--- .../Delegates/ConnectionDialogsDelegate.cs | 6 ++--- .../Delegates/CreateServerMenuDelegate.cs | 8 +++--- .../Delegates/MainMenuButtonsDelegate.cs | 2 +- .../Delegates/ServerBrowserDelegate.cs | 8 +++--- .../Widgets/Delegates/SettingsMenuDelegate.cs | 6 ++--- 8 files changed, 40 insertions(+), 37 deletions(-) diff --git a/OpenRA.Game/Chrome.cs b/OpenRA.Game/Chrome.cs index 251f178466..e4e1fa6bf9 100644 --- a/OpenRA.Game/Chrome.cs +++ b/OpenRA.Game/Chrome.cs @@ -130,13 +130,16 @@ namespace OpenRA clock = new Animation("clock"); var widgetYaml = m.ChromeLayout.Select(a => MiniYaml.FromFile(a)).Aggregate(MiniYaml.Merge); - - rootWidget = WidgetLoader.LoadWidget( widgetYaml.FirstOrDefault() ); - rootWidget.Initialize(); + + if (rootWidget == null) + { + rootWidget = WidgetLoader.LoadWidget( widgetYaml.FirstOrDefault() ); + rootWidget.Initialize(); + } } - public Widget rootWidget; - public Widget selectedWidget; + public static Widget rootWidget = null; + public static Widget selectedWidget; List visibleTabs = new List(); diff --git a/OpenRA.Game/Graphics/Viewport.cs b/OpenRA.Game/Graphics/Viewport.cs index 4c0a619ded..d08c3919e6 100644 --- a/OpenRA.Game/Graphics/Viewport.cs +++ b/OpenRA.Game/Graphics/Viewport.cs @@ -93,31 +93,31 @@ namespace OpenRA.Graphics switch( Game.orderManager.Connection.ConnectionState ) { case ConnectionState.PreConnecting: - Game.chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = true; - Game.chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = false; - Game.chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = false; + Chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = true; + Chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = false; + Chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = false; break; case ConnectionState.Connecting: - Game.chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = false; - Game.chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = true; - Game.chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = false; + Chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = false; + Chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = true; + Chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = false; //(Game.chrome.rootWidget.GetWidget("CONNECTION_GROUP_FAILED") as LabelWidget).Text = "Connecting abort"; //Game.chrome.DrawDialog("Connecting to {0}:{1}...".F( Game.Settings.NetworkHost, Game.Settings.NetworkPort )); break; case ConnectionState.NotConnected: - Game.chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = false; - Game.chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = false; - Game.chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = true; + Chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = false; + Chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = false; + Chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = true; //(Game.chrome.rootWidget.GetWidget("CONNECTION_GROUP_FAILED") as LabelWidget).Text = "Not Connected Retry/fail"; //Game.chrome.DrawDialog("Connection failed.", "Retry", _ => {}, "Cancel",_ => {}); break; case ConnectionState.Connected: - Game.chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = false; - Game.chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = false; - Game.chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = false; + Chrome.rootWidget.GetWidget("MAINMENU_BG").Visible = false; + Chrome.rootWidget.GetWidget("CONNECTING_BG").Visible = false; + Chrome.rootWidget.GetWidget("CONNECTION_FAILED_BG").Visible = false; //Game.chrome.DrawLobby( world ); break; } @@ -128,9 +128,9 @@ namespace OpenRA.Graphics Game.chrome.DrawLobby(); lastConnectionState = state; - Game.chrome.DrawWidgets(world); } + Game.chrome.DrawWidgets(world); var cursorName = Game.chrome.HitTest(mousePos) ? "default" : Game.controller.ChooseCursor( world ); var c = new Cursor(cursorName); diff --git a/OpenRA.Game/Widgets/ButtonWidget.cs b/OpenRA.Game/Widgets/ButtonWidget.cs index 0b663638a7..a82e8e4a05 100644 --- a/OpenRA.Game/Widgets/ButtonWidget.cs +++ b/OpenRA.Game/Widgets/ButtonWidget.cs @@ -29,13 +29,13 @@ namespace OpenRA.Widgets public int VisualHeight = 1; public override bool HandleInput(MouseInput mi) { - if (Game.chrome.selectedWidget == this) + if (Chrome.selectedWidget == this) Depressed = (GetEventBounds().Contains(mi.Location.X,mi.Location.Y)) ? true : false; // Relinquish focus - if (Game.chrome.selectedWidget == this && mi.Event == MouseInputEvent.Up) + if (Chrome.selectedWidget == this && mi.Event == MouseInputEvent.Up) { - Game.chrome.selectedWidget = null; + Chrome.selectedWidget = null; Depressed = false; } @@ -53,7 +53,7 @@ namespace OpenRA.Widgets // We also want to play a click sound if (mi.Event == MouseInputEvent.Down) { - Game.chrome.selectedWidget = this; + Chrome.selectedWidget = this; Depressed = true; return true; } diff --git a/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs b/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs index 7490cc197a..7d376e7973 100644 --- a/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs @@ -24,13 +24,13 @@ namespace OpenRA.Widgets.Delegates { public ConnectionDialogsDelegate() { - var r = Game.chrome.rootWidget; + var r = Chrome.rootWidget; r.GetWidget("CONNECTION_BUTTON_ABORT").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu("MAINMENU_BG"); + r.ShowMenu("MAINMENU_BG"); return true; }; r.GetWidget("CONNECTION_BUTTON_CANCEL").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu("MAINMENU_BG"); + r.ShowMenu("MAINMENU_BG"); return true; }; r.GetWidget("CONNECTION_BUTTON_RETRY").OnMouseUp = mi => { diff --git a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs index db59835cf9..68fb75ebd4 100644 --- a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs @@ -29,19 +29,19 @@ namespace OpenRA.Widgets.Delegates public CreateServerMenuDelegate() { - var r = Game.chrome.rootWidget; + var r = Chrome.rootWidget; r.GetWidget("MAINMENU_BUTTON_CREATE").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu("CREATESERVER_BG"); + r.ShowMenu("CREATESERVER_BG"); return true; }; r.GetWidget("CREATESERVER_BUTTON_CANCEL").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu("MAINMENU_BG"); + r.ShowMenu("MAINMENU_BG"); return true; }; r.GetWidget("CREATESERVER_BUTTON_START").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu(null); + r.ShowMenu(null); Log.Write("Creating server"); // TODO: Get this from a map chooser diff --git a/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs b/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs index edd949bb6e..bd9ceb2060 100644 --- a/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs @@ -24,7 +24,7 @@ namespace OpenRA.Widgets.Delegates { public MainMenuButtonsDelegate() { - Game.chrome.rootWidget.GetWidget("MAINMENU_BUTTON_QUIT").OnMouseUp = mi => {Game.Exit(); return true;}; + Chrome.rootWidget.GetWidget("MAINMENU_BUTTON_QUIT").OnMouseUp = mi => {Game.Exit(); return true;}; } } } diff --git a/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs b/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs index 0c33e93083..9ac28881f6 100644 --- a/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs @@ -32,10 +32,10 @@ namespace OpenRA.Widgets.Delegates public ServerBrowserDelegate() { - var r = Game.chrome.rootWidget; + var r = Chrome.rootWidget; r.GetWidget("MAINMENU_BUTTON_JOIN").OnMouseUp = mi => { - var bg = Game.chrome.rootWidget.ShowMenu("JOINSERVER_BG"); + var bg = r.ShowMenu("JOINSERVER_BG"); int height = 50; int width = 300; int i = 0; @@ -53,7 +53,7 @@ namespace OpenRA.Widgets.Delegates b.GetType().GetField("Delegate").SetValue(b, "ServerBrowserDelegate"); b.OnMouseUp = nmi => { - Game.chrome.rootWidget.GetWidget("JOINSERVER_BG").Visible = false; + r.GetWidget("JOINSERVER_BG").Visible = false; Game.JoinServer(GameList[i].Address.Split(':')[0], int.Parse(GameList[i].Address.Split(':')[1])); return true; }; @@ -74,7 +74,7 @@ namespace OpenRA.Widgets.Delegates }; r.GetWidget("JOINSERVER_BUTTON_CANCEL").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu("MAINMENU_BG"); + r.ShowMenu("MAINMENU_BG"); return true; }; } diff --git a/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs b/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs index d5be536d85..f24f85dd7b 100644 --- a/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs @@ -9,7 +9,7 @@ namespace OpenRA.Widgets.Delegates { public SettingsMenuDelegate() { - var r = Game.chrome.rootWidget; + var r = Chrome.rootWidget; // Checkboxes r.GetWidget("SETTINGS_CHECKBOX_UNITDEBUG").Checked = () => {return Game.Settings.UnitDebug;}; @@ -45,12 +45,12 @@ namespace OpenRA.Widgets.Delegates // Menu Buttons r.GetWidget("MAINMENU_BUTTON_SETTINGS").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu("SETTINGS_BG"); + r.ShowMenu("SETTINGS_BG"); return true; }; r.GetWidget("SETTINGS_BUTTON_OK").OnMouseUp = mi => { - Game.chrome.rootWidget.ShowMenu("MAINMENU_BG"); + r.ShowMenu("MAINMENU_BG"); return true; }; }