From 3165ec5359a4e7758ef91e3bd166a43bda3493a3 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 21 Sep 2010 00:01:44 +1200 Subject: [PATCH] create widgets on demand --- OpenRA.Game/Game.cs | 29 + OpenRA.Game/ModData.cs | 2 + .../Delegates/ConnectionDialogsDelegate.cs | 57 +- .../Delegates/CreateServerMenuDelegate.cs | 14 +- .../Widgets/Delegates/LobbyDelegate.cs | 10 +- .../Delegates/MainMenuButtonsDelegate.cs | 12 +- .../Widgets/Delegates/MapChooserDelegate.cs | 6 +- .../Widgets/Delegates/MusicPlayerDelegate.cs | 7 +- .../Delegates/ServerBrowserDelegate.cs | 86 +- .../Widgets/Delegates/SettingsMenuDelegate.cs | 8 - OpenRA.Game/Widgets/Widget.cs | 56 +- OpenRA.Game/Widgets/WidgetLoader.cs | 44 +- .../Widgets/Delegates/IngameChromeDelegate.cs | 3 - OpenRA.Mods.RA/Widgets/RadarBinWidget.cs | 3 + mods/ra/chrome/gamelobby.yaml | 1032 ++++++++--------- mods/ra/chrome/ingame.yaml | 572 ++++----- mods/ra/chrome/mainmenu.yaml | 506 ++++---- mods/ra/chrome/serverbrowser.yaml | 744 ++++++------ mods/ra/chrome/settings.yaml | 414 +++---- 19 files changed, 1808 insertions(+), 1797 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 8afa7746a1..286baff6b0 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -279,6 +279,35 @@ namespace OpenRA JoinLocal(); StartGame(modData.Manifest.ShellmapUid); + Game.BeforeGameStart = () => Widget.OpenWindow("INGAME_ROOT"); + + Game.ConnectionStateChanged = () => + { + Widget.CloseWindow(); + switch( Game.orderManager.Connection.ConnectionState ) + { + case ConnectionState.PreConnecting: + Widget.OpenWindow("MAINMENU_BG"); + break; + case ConnectionState.Connecting: + Widget.OpenWindow("CONNECTING_BG"); + break; + case ConnectionState.NotConnected: + Widget.OpenWindow("CONNECTION_FAILED_BG"); + break; + case ConnectionState.Connected: + var lobby = Widget.OpenWindow("SERVER_LOBBY"); + lobby.GetWidget("CHAT_DISPLAY").ClearChat(); + lobby.GetWidget("CHANGEMAP_BUTTON").Visible = true; + lobby.GetWidget("LOCKTEAMS_CHECKBOX").Visible = true; + lobby.GetWidget("DISCONNECT_BUTTON").Visible = true; + //r.GetWidget("INGAME_ROOT").GetWidget("CHAT_DISPLAY").ClearChat(); + break; + } + }; + + Widget.OpenWindow("MAINMENU_BG"); + ResetTimer(); } diff --git a/OpenRA.Game/ModData.cs b/OpenRA.Game/ModData.cs index 406d74aaed..36c758ecf6 100755 --- a/OpenRA.Game/ModData.cs +++ b/OpenRA.Game/ModData.cs @@ -24,6 +24,7 @@ namespace OpenRA public readonly SheetBuilder SheetBuilder; public readonly CursorSheetBuilder CursorSheetBuilder; public readonly Dictionary AvailableMaps; + public readonly WidgetLoader WidgetLoader; public ILoadScreen LoadScreen = null; public ModData( params string[] mods ) @@ -39,6 +40,7 @@ namespace OpenRA SheetBuilder = new SheetBuilder( TextureChannel.Red ); CursorSheetBuilder = new CursorSheetBuilder( this ); AvailableMaps = FindMaps( mods ); + WidgetLoader = new WidgetLoader( this ); } // TODO: Do this nicer diff --git a/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs b/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs index e72cb61848..3e81c54be7 100644 --- a/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/ConnectionDialogsDelegate.cs @@ -14,56 +14,37 @@ namespace OpenRA.Widgets.Delegates { public class ConnectionDialogsDelegate : IWidgetDelegate { - public ConnectionDialogsDelegate() + [ObjectCreator.UseCtor] + public ConnectionDialogsDelegate( [ObjectCreator.Param( "widget" )] Widget widget ) { - var r = Widget.RootWidget; - r.GetWidget("CONNECTION_BUTTON_ABORT").OnMouseUp = mi => { - r.GetWidget("CONNECTION_BUTTON_ABORT").Parent.Visible = false; + widget.GetWidget("CONNECTION_BUTTON_ABORT").OnMouseUp = mi => { + widget.GetWidget("CONNECTION_BUTTON_ABORT").Parent.Visible = false; Game.Disconnect(); return true; }; - r.GetWidget("CONNECTION_BUTTON_CANCEL").OnMouseUp = mi => { - r.GetWidget("CONNECTION_BUTTON_CANCEL").Parent.Visible = false; + + widget.GetWidget("CONNECTING_DESC").GetText = () => + "Connecting to {0}:{1}...".F(Game.CurrentHost, Game.CurrentPort); + } + } + + public class ConnectionFailedDelegate : IWidgetDelegate + { + [ObjectCreator.UseCtor] + public ConnectionFailedDelegate( [ObjectCreator.Param( "widget" )] Widget widget ) + { + widget.GetWidget("CONNECTION_BUTTON_CANCEL").OnMouseUp = mi => { + widget.GetWidget("CONNECTION_BUTTON_CANCEL").Parent.Visible = false; Game.Disconnect(); return true; }; - r.GetWidget("CONNECTION_BUTTON_RETRY").OnMouseUp = mi => { + widget.GetWidget("CONNECTION_BUTTON_RETRY").OnMouseUp = mi => { Game.JoinServer(Game.CurrentHost, Game.CurrentPort); return true; }; - r.GetWidget("CONNECTING_DESC").GetText = () => - "Connecting to {0}:{1}...".F(Game.CurrentHost, Game.CurrentPort); - - r.GetWidget("CONNECTION_FAILED_DESC").GetText = () => + widget.GetWidget("CONNECTION_FAILED_DESC").GetText = () => "Could not connect to {0}:{1}".F(Game.CurrentHost, Game.CurrentPort); - - Game.ConnectionStateChanged += () => - { - Widget.CloseWindow(); - switch( Game.orderManager.Connection.ConnectionState ) - { - case ConnectionState.PreConnecting: - Widget.OpenWindow("MAINMENU_BG"); - break; - case ConnectionState.Connecting: - Widget.OpenWindow("CONNECTING_BG"); - break; - case ConnectionState.NotConnected: - Widget.OpenWindow("CONNECTION_FAILED_BG"); - break; - case ConnectionState.Connected: - Widget.OpenWindow("SERVER_LOBBY"); - - var lobby = r.GetWidget("SERVER_LOBBY"); - lobby.GetWidget("CHAT_DISPLAY").ClearChat(); - lobby.GetWidget("CHANGEMAP_BUTTON").Visible = true; - lobby.GetWidget("LOCKTEAMS_CHECKBOX").Visible = true; - lobby.GetWidget("DISCONNECT_BUTTON").Visible = true; - r.GetWidget("INGAME_ROOT").GetWidget("CHAT_DISPLAY").ClearChat(); - break; - } - }; } } } diff --git a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs index 4ef81bbf97..c6308adfe1 100644 --- a/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/CreateServerMenuDelegate.cs @@ -14,26 +14,18 @@ using System.Net; namespace OpenRA.Widgets.Delegates { public class CreateServerMenuDelegate : IWidgetDelegate - { - public CreateServerMenuDelegate() + { + [ObjectCreator.UseCtor] + public CreateServerMenuDelegate( [ObjectCreator.Param( "widget" )] Widget cs ) { var settings = Game.Settings; - var r = Widget.RootWidget; - var cs = r.GetWidget("CREATESERVER_BG"); - r.GetWidget("MAINMENU_BUTTON_CREATE").OnMouseUp = mi => { - Widget.OpenWindow("CREATESERVER_BG"); - return true; - }; - cs.GetWidget("BUTTON_CANCEL").OnMouseUp = mi => { Widget.CloseWindow(); return true; }; cs.GetWidget("BUTTON_START").OnMouseUp = mi => { - Widget.OpenWindow("SERVER_LOBBY"); - var map = Game.modData.AvailableMaps.FirstOrDefault(m => m.Value.Selectable).Key; settings.Server.Name = cs.GetWidget("GAME_TITLE").Text; diff --git a/OpenRA.Game/Widgets/Delegates/LobbyDelegate.cs b/OpenRA.Game/Widgets/Delegates/LobbyDelegate.cs index bcc5eaabee..08f8f6ac4e 100644 --- a/OpenRA.Game/Widgets/Delegates/LobbyDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/LobbyDelegate.cs @@ -27,7 +27,8 @@ namespace OpenRA.Widgets.Delegates public static Color CurrentColorPreview1; public static Color CurrentColorPreview2; - public LobbyDelegate() + [ObjectCreator.UseCtor] + public LobbyDelegate( [ObjectCreator.Param( "widget" )] Widget lobby ) { Game.LobbyInfoChanged += UpdateCurrentMap; UpdateCurrentMap(); @@ -35,9 +36,7 @@ namespace OpenRA.Widgets.Delegates CurrentColorPreview1 = Game.Settings.Player.Color1; CurrentColorPreview2 = Game.Settings.Player.Color2; - var r = Widget.RootWidget; - var lobby = r.GetWidget("SERVER_LOBBY"); - Players = Widget.RootWidget.GetWidget("SERVER_LOBBY").GetWidget("PLAYERS"); + Players = lobby.GetWidget("PLAYERS"); LocalPlayerTemplate = Players.GetWidget("TEMPLATE_LOCAL"); RemotePlayerTemplate = Players.GetWidget("TEMPLATE_REMOTE"); EmptySlotTemplate = Players.GetWidget("TEMPLATE_EMPTY"); @@ -74,8 +73,7 @@ namespace OpenRA.Widgets.Delegates var mapButton = lobby.GetWidget("CHANGEMAP_BUTTON"); mapButton.OnMouseUp = mi => { - r.GetWidget("MAP_CHOOSER").SpecialOneArg(MapUid); - Widget.OpenWindow("MAP_CHOOSER"); + Widget.OpenWindow("MAP_CHOOSER").SpecialOneArg(MapUid); // WTF return true; }; diff --git a/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs b/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs index e8dd29fc5d..c2dfc12646 100644 --- a/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/MainMenuButtonsDelegate.cs @@ -14,13 +14,17 @@ namespace OpenRA.Widgets.Delegates { public class MainMenuButtonsDelegate : IWidgetDelegate { - public MainMenuButtonsDelegate() + [ObjectCreator.UseCtor] + public MainMenuButtonsDelegate( [ObjectCreator.Param( "widget" )] Widget widget ) { // Main menu is the default window - Widget.WindowList.Push("MAINMENU_BG"); - Widget.RootWidget.GetWidget("MAINMENU_BUTTON_QUIT").OnMouseUp = mi => { Game.Exit(); return true; }; + widget.GetWidget( "MAINMENU_BUTTON_JOIN" ).OnMouseUp = mi => { Widget.OpenWindow( "JOINSERVER_BG" ); return true; }; + widget.GetWidget( "MAINMENU_BUTTON_CREATE" ).OnMouseUp = mi => { Widget.OpenWindow( "CREATESERVER_BG" ); return true; }; + widget.GetWidget( "MAINMENU_BUTTON_SETTINGS" ).OnMouseUp = mi => { Widget.OpenWindow( "SETTINGS_MENU" ); return true; }; + widget.GetWidget( "MAINMENU_BUTTON_MUSIC" ).OnMouseUp = mi => { Widget.OpenWindow( "MUSIC_MENU" ); return true; }; + widget.GetWidget( "MAINMENU_BUTTON_QUIT" ).OnMouseUp = mi => { Game.Exit(); return true; }; - var version = Widget.RootWidget.GetWidget("MAINMENU_BG").GetWidget("VERSION_STRING"); + var version = widget.GetWidget("VERSION_STRING"); if (FileSystem.Exists("VERSION")) { diff --git a/OpenRA.Game/Widgets/Delegates/MapChooserDelegate.cs b/OpenRA.Game/Widgets/Delegates/MapChooserDelegate.cs index 9b21a2cf2a..80e99a2e48 100644 --- a/OpenRA.Game/Widgets/Delegates/MapChooserDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/MapChooserDelegate.cs @@ -17,10 +17,10 @@ namespace OpenRA.Widgets.Delegates public class MapChooserDelegate : IWidgetDelegate { MapStub Map = null; - public MapChooserDelegate() + + [ObjectCreator.UseCtor] + public MapChooserDelegate( [ObjectCreator.Param( "widget" )] Widget bg ) { - var r = Widget.RootWidget; - var bg = r.GetWidget("MAP_CHOOSER"); bg.SpecialOneArg = (map) => RefreshMapList(map); var ml = bg.GetWidget("MAP_LIST"); diff --git a/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs b/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs index a72fc45825..b3a1dc9ad2 100644 --- a/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/MusicPlayerDelegate.cs @@ -27,12 +27,7 @@ namespace OpenRA.Widgets.Delegates Widget.CloseWindow(); return true; }; - - Widget.RootWidget.GetWidget("MAINMENU_BUTTON_MUSIC").OnMouseUp = mi => { - Widget.OpenWindow("MUSIC_MENU"); - return true; - }; - + bg.GetWidget("BUTTON_PLAY").OnMouseUp = mi => { if (CurrentSong == null) diff --git a/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs b/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs index 688f1a7e41..a9e2131d3a 100644 --- a/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/ServerBrowserDelegate.cs @@ -23,28 +23,20 @@ namespace OpenRA.Widgets.Delegates GameServer currentServer = null; Widget ServerTemplate; - public ServerBrowserDelegate() + [ObjectCreator.UseCtor] + public ServerBrowserDelegate( [ObjectCreator.Param( "widget" )] Widget widget ) { - var r = Widget.RootWidget; - var bg = r.GetWidget("JOINSERVER_BG"); - var dc = r.GetWidget("DIRECTCONNECT_BG"); + var bg = widget.GetWidget("JOINSERVER_BG"); MasterServerQuery.OnComplete += games => RefreshServerList(games); - r.GetWidget("MAINMENU_BUTTON_JOIN").OnMouseUp = mi => - { - Widget.OpenWindow("JOINSERVER_BG"); + widget.GetWidget("JOINSERVER_PROGRESS_TITLE").Visible = true; + widget.GetWidget("JOINSERVER_PROGRESS_TITLE").Text = "Fetching game list..."; - r.GetWidget("JOINSERVER_PROGRESS_TITLE").Visible = true; - r.GetWidget("JOINSERVER_PROGRESS_TITLE").Text = "Fetching game list..."; + bg.Children.RemoveAll(a => GameButtons.Contains(a)); + GameButtons.Clear(); - bg.Children.RemoveAll(a => GameButtons.Contains(a)); - GameButtons.Clear(); - - MasterServerQuery.Refresh(Game.Settings.Server.MasterServer); - - return true; - }; + MasterServerQuery.Refresh(Game.Settings.Server.MasterServer); bg.GetWidget("SERVER_INFO").IsVisible = () => currentServer != null; var preview = bg.GetWidget("MAP_PREVIEW"); @@ -70,8 +62,8 @@ namespace OpenRA.Widgets.Delegates bg.GetWidget("REFRESH_BUTTON").OnMouseUp = mi => { - r.GetWidget("JOINSERVER_PROGRESS_TITLE").Visible = true; - r.GetWidget("JOINSERVER_PROGRESS_TITLE").Text = "Fetching game list..."; + widget.GetWidget("JOINSERVER_PROGRESS_TITLE").Visible = true; + widget.GetWidget("JOINSERVER_PROGRESS_TITLE").Text = "Fetching game list..."; bg.Children.RemoveAll(a => GameButtons.Contains(a)); GameButtons.Clear(); @@ -90,8 +82,6 @@ namespace OpenRA.Widgets.Delegates bg.GetWidget("DIRECTCONNECT_BUTTON").OnMouseUp = mi => { Widget.CloseWindow(); - - dc.GetWidget("SERVER_ADDRESS").Text = Game.Settings.Player.LastServer; Widget.OpenWindow("DIRECTCONNECT_BG"); return true; }; @@ -123,29 +113,6 @@ namespace OpenRA.Widgets.Delegates Game.JoinServer(currentServer.Address.Split(':')[0], int.Parse(currentServer.Address.Split(':')[1])); return true; }; - - // Direct Connect - dc.GetWidget("JOIN_BUTTON").OnMouseUp = mi => - { - - var address = dc.GetWidget("SERVER_ADDRESS").Text; - var cpts = address.Split(':').ToArray(); - if (cpts.Length != 2) - return true; - - Game.Settings.Player.LastServer = address; - Game.Settings.Save(); - - Widget.CloseWindow(); - Game.JoinServer(cpts[0], int.Parse(cpts[1])); - return true; - }; - - dc.GetWidget("CANCEL_BUTTON").OnMouseUp = mi => - { - Widget.CloseWindow(); - return r.GetWidget("MAINMENU_BUTTON_JOIN").OnMouseUp(mi); - }; } MapStub CurrentMap() @@ -205,4 +172,37 @@ namespace OpenRA.Widgets.Delegates } } } + + public class DirectConnectDelegate : IWidgetDelegate + { + [ObjectCreator.UseCtor] + public DirectConnectDelegate( [ObjectCreator.Param( "widget" )] Widget widget ) + { + var dc = widget.GetWidget("DIRECTCONNECT_BG"); + + dc.GetWidget("SERVER_ADDRESS").Text = Game.Settings.Player.LastServer; + + dc.GetWidget("JOIN_BUTTON").OnMouseUp = mi => + { + + var address = dc.GetWidget("SERVER_ADDRESS").Text; + var cpts = address.Split(':').ToArray(); + if (cpts.Length != 2) + return true; + + Game.Settings.Player.LastServer = address; + Game.Settings.Save(); + + Widget.CloseWindow(); + Game.JoinServer(cpts[0], int.Parse(cpts[1])); + return true; + }; + + dc.GetWidget("CANCEL_BUTTON").OnMouseUp = mi => + { + Widget.CloseWindow(); + return widget.GetWidget("MAINMENU_BUTTON_JOIN").OnMouseUp(mi); + }; + } + } } diff --git a/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs b/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs index 910d52c614..cb6f53f290 100644 --- a/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs +++ b/OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs @@ -153,14 +153,6 @@ namespace OpenRA.Widgets.Delegates Widget.CloseWindow(); return true; }; - - // Menu Buttons - Widget.RootWidget.GetWidget("MAINMENU_BUTTON_SETTINGS").OnMouseUp = mi => { - Widget.OpenWindow("SETTINGS_MENU"); - return true; - }; - - } string open = null; diff --git a/OpenRA.Game/Widgets/Widget.cs b/OpenRA.Game/Widgets/Widget.cs index 157dbcc3dc..803544867b 100644 --- a/OpenRA.Game/Widgets/Widget.cs +++ b/OpenRA.Game/Widgets/Widget.cs @@ -26,6 +26,7 @@ namespace OpenRA.Widgets public string Width = "0"; public string Height = "0"; public string Delegate = null; + public string EventHandler = null; public bool ClickThrough = true; public bool Visible = true; public readonly List Children = new List(); @@ -35,7 +36,7 @@ namespace OpenRA.Widgets public Widget Parent = null; static List Delegates = new List(); - public static Stack WindowList = new Stack(); + public static Stack WindowList = new Stack(); // Common Funcs that most widgets will want public Action SpecialOneArg = (arg) => {}; @@ -47,24 +48,13 @@ namespace OpenRA.Widgets public Func IsVisible; public Widget() { IsVisible = () => Visible; } - - public static Widget RootWidget { - get - { - if (rootWidget == null) - { - rootWidget = new ContainerWidget(); - foreach( var file in Game.modData.Manifest.ChromeLayout.Select( a => MiniYaml.FromFile( a ) ) ) - foreach( var w in file ) - rootWidget.AddChild( WidgetLoader.LoadWidget( w ) ); - - rootWidget.Initialize(); - rootWidget.InitDelegates(); - } - return rootWidget; - } + + public static Widget RootWidget + { + get { return rootWidget; } + set { rootWidget = value; } } - private static Widget rootWidget = null; + private static Widget rootWidget = new ContainerWidget(); public Widget(Widget widget) { @@ -132,14 +122,15 @@ namespace OpenRA.Widgets Evaluator.Evaluate(Y, substitutions), width, height); + } - // Non-static func definitions - - if (Delegate != null && !Delegates.Contains(Delegate)) - Delegates.Add(Delegate); - - foreach (var child in Children) - child.Initialize(); + public void PostInit() + { + if( Delegate != null ) + { + var createDict = new Dictionary { { "widget", this } }; + Game.modData.ObjectCreator.CreateObject( Delegate, createDict ); + } } public void InitDelegates() @@ -324,18 +315,17 @@ namespace OpenRA.Widgets public static void CloseWindow() { - RootWidget.GetWidget(WindowList.Pop()).Visible = false; - if (WindowList.Count > 0) - RootWidget.GetWidget(WindowList.Peek()).Visible = true; + RootWidget.Children.Remove( WindowList.Pop() ); + if( WindowList.Count > 0 ) + rootWidget.Children.Add( WindowList.Peek() ); } public static Widget OpenWindow(string id) { - if (WindowList.Count > 0) - RootWidget.GetWidget(WindowList.Peek()).Visible = false; - WindowList.Push(id); - var window = RootWidget.GetWidget(id); - window.Visible = true; + var window = Game.modData.WidgetLoader.LoadWidget( rootWidget, id ); + if( WindowList.Count > 0 ) + rootWidget.Children.Remove( WindowList.Peek() ); + WindowList.Push( window ); return window; } diff --git a/OpenRA.Game/Widgets/WidgetLoader.cs b/OpenRA.Game/Widgets/WidgetLoader.cs index b102106a61..82a85d18dd 100644 --- a/OpenRA.Game/Widgets/WidgetLoader.cs +++ b/OpenRA.Game/Widgets/WidgetLoader.cs @@ -8,29 +8,57 @@ */ #endregion +using System.Linq; using System.Collections.Generic; using OpenRA.FileFormats; using OpenRA.Widgets; namespace OpenRA { - class WidgetLoader + public class WidgetLoader { - public static Widget LoadWidget(MiniYamlNode node) + // foreach( var file in Game.modData.Manifest.ChromeLayout.Select( a => MiniYaml.FromFile( a ) ) ) + // foreach( var w in file ) + // rootWidget.AddChild( WidgetLoader.LoadWidget( w ) ); + + // rootWidget.Initialize(); + // rootWidget.InitDelegates(); + + Dictionary widgets = new Dictionary(); + + public WidgetLoader( ModData modData ) + { + foreach( var file in modData.Manifest.ChromeLayout.Select( a => MiniYaml.FromFile( a ) ) ) + foreach( var w in file ) + widgets.Add( w.Key.Substring( w.Key.IndexOf( '@' ) + 1 ), w ); + } + + public Widget LoadWidget( Widget parent, string w ) + { + return LoadWidget( parent, widgets[ w ] ); + } + + public Widget LoadWidget( Widget parent, MiniYamlNode node) { var widget = NewWidget(node.Key); + parent.AddChild( widget ); + + foreach (var child in node.Value.Nodes) + if (child.Key != "Children") + FieldLoader.LoadField(widget, child.Key, child.Value.Value); + + widget.Initialize(); + foreach (var child in node.Value.Nodes) - { if (child.Key == "Children") foreach (var c in child.Value.Nodes) - widget.AddChild(LoadWidget(c)); - else - FieldLoader.LoadField(widget, child.Key, child.Value.Value); - } + LoadWidget( widget, c); + + widget.PostInit(); return widget; } - static Widget NewWidget(string widgetType) + Widget NewWidget(string widgetType) { widgetType = widgetType.Split('@')[0]; return Game.CreateObject(widgetType + "Widget"); diff --git a/OpenRA.Mods.RA/Widgets/Delegates/IngameChromeDelegate.cs b/OpenRA.Mods.RA/Widgets/Delegates/IngameChromeDelegate.cs index 137cfcc02b..fbc4913705 100755 --- a/OpenRA.Mods.RA/Widgets/Delegates/IngameChromeDelegate.cs +++ b/OpenRA.Mods.RA/Widgets/Delegates/IngameChromeDelegate.cs @@ -21,9 +21,6 @@ namespace OpenRA.Mods.RA.Widgets.Delegates var gameRoot = r.GetWidget("INGAME_ROOT"); var optionsBG = gameRoot.GetWidget("INGAME_OPTIONS_BG"); - Game.BeforeGameStart += () => Widget.OpenWindow("INGAME_ROOT"); - Game.AfterGameStart += () => gameRoot.GetWidget("INGAME_RADAR_BIN").SetWorld(Game.world); - r.GetWidget("INGAME_OPTIONS_BUTTON").OnMouseUp = mi => { optionsBG.Visible = !optionsBG.Visible; return true; diff --git a/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs b/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs index dc7ded73c9..09a46e99bc 100755 --- a/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs +++ b/OpenRA.Mods.RA/Widgets/RadarBinWidget.cs @@ -163,6 +163,9 @@ namespace OpenRA.Mods.RA.Widgets int updateTicks = 0; public override void Tick(World w) { + if( world != w ) + SetWorld( w ); + var hasRadarNew = world.Queries.OwnedBy[world.LocalPlayer] .WithTrait() .Any(a => a.Trait.IsActive); diff --git a/mods/ra/chrome/gamelobby.yaml b/mods/ra/chrome/gamelobby.yaml index 891032e995..bd29783ed8 100644 --- a/mods/ra/chrome/gamelobby.yaml +++ b/mods/ra/chrome/gamelobby.yaml @@ -1,516 +1,516 @@ -Background@SERVER_LOBBY: - Id:SERVER_LOBBY - Delegate:LobbyDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:800 - Height:600 - Visible:false - Children: - Label@LOBBY_TITLE: - X:0 - Y:20 - Align:Center - Width:800 - Height:20 - Bold:True - Text:OpenRA Multiplayer Lobby - Background@LOBBY_MAP_BG: - X:PARENT_RIGHT-268 - Y:39 - Width:252 - Height:252 - Background:dialog3 - Children: - MapPreview@LOBBY_MAP_PREVIEW: - Id:LOBBY_MAP_PREVIEW - X:4 - Y:4 - Width:244 - Height:244 - Container@PLAYERS: - Id:PLAYERS - X:20 - Y:75 - Width:500 - Height:200 - Children: - Container@TEMPLATE_LOCAL: - Id:TEMPLATE_LOCAL - X:0 - Y:0 - Width:500 - Height:30 - Visible:false - Children: - TextField@NAME: - Id:NAME - Text:Name - Width:139 - Height:25 - X:0 - Y:0 - MaxLength:16 - Button@COLOR: - Id:COLOR - Width:65 - Height:25 - X:159 - Y:0 - Children: - ColorBlock@COLORBLOCK: - Id:COLORBLOCK - X:5 - Y:7 - Width:PARENT_RIGHT-10 - Height:PARENT_BOTTOM-12 - Button@FACTION: - Id:FACTION - Width:110 - Height:25 - X:244 - Y:0 - Children: - Image@FACTIONFLAG: - Id:FACTIONFLAG - Width:30 - Height:15 - X:5 - Y:5 - Label@FACTIONNAME: - Id:FACTIONNAME - Text:Faction - Width:60 - Height:25 - X:40 - Y:0 - Button@TEAM: - Id:TEAM - Text:Team - Width:25 - Height:25 - X:374 - Y:0 - Checkbox@STATUS: - Id:STATUS - X:455 - Y:2 - Width:20 - Height:20 - Container@TEMPLATE_REMOTE: - Id:TEMPLATE_REMOTE - X:0 - Y:0 - Width:500 - Height:30 - Visible:false - Children: - Label@NAME: - Id:NAME - Text:Name - Width:139 - Height:25 - X:0 - Y:0 - ColorBlock@COLOR: - Id:COLOR - X:164 - Y:7 - Width:55 - Height:13 - Label@FACTION: - Id:FACTION - Width:110 - Height:25 - X:244 - Y:0 - Children: - Image@FACTIONFLAG: - Id:FACTIONFLAG - Width:30 - Height:15 - X:5 - Y:5 - Label@FACTIONNAME: - Id:FACTIONNAME - Text:Faction - Width:60 - Height:25 - X:40 - Y:0 - Label@TEAM: - Id:TEAM - Text:Team - Width:70 - Height:25 - X:351 - Y:0 - Align:Center - Bold: false - Checkbox@STATUS: - Id:STATUS - X:455 - Y:2 - Width:20 - Height:20 - Container@TEMPLATE_EMPTY: - Id:TEMPLATE_EMPTY - X:0 - Y:0 - Width:500 - Height:30 - Visible:false - Children: - Label@NAME: - Id:NAME - Text:Name - Width:139 - Height:25 - X:0 - Y:0 - Button@JOIN: - Id:JOIN - Text:Play in this slot - Width:PARENT_RIGHT - 160 - Height:25 - X:160 - Y:0 - Container@TEMPLATE_EMPTY_HOST: - Id:TEMPLATE_EMPTY_HOST - X:0 - Y:0 - Width:500 - Height:30 - Visible:false - Children: - Button@NAME: -- TODO: replace with dropdown - Id:NAME - Text:Name - Width:155 - Height:25 - X:0 - Y:0 - Button@JOIN: - Id:JOIN - Text:Play in this slot - Width:PARENT_RIGHT - 160 - Height:25 - X:160 - Y:0 - Container@LABEL_CONTAINER: - X:30 - Y:45 - Children: - Label@LABEL_LOBBY_NAME: - Id:LABEL_LOBBY_NAME - Width:139 - Height:25 - X:0 - Y:0 - Text:Name - Align:Center - Bold:True - Label@LABEL_LOBBY_COLOR: - Id:LABEL_LOBBY_COLOR - Width:65 - Height:25 - X:159 - Y:0 - Text:Color - Align:Center - Bold:True - Label@LABEL_LOBBY_FACTION: - Id:LABEL_LOBBY_FACTION - Width:110 - Height:25 - X:244 - Y:0 - Text:Faction - Align:Center - Bold:True - Label@LABEL_LOBBY_TEAM: - Id:LABEL_LOBBY_TEAM - Width:70 - Height:25 - X:351 - Y:0 - Text:Team - Align:Center - Bold:True - Label@LABEL_LOBBY_STATUS: - Id:LABEL_LOBBY_STATUS - X:432 - Y:0 - Width:70 - Height:25 - Text:Ready - Align:Center - Bold:True - Button@CHANGEMAP_BUTTON: - Id:CHANGEMAP_BUTTON - Visible:true - X:PARENT_RIGHT-160 - Y:PARENT_BOTTOM-269 - Width:120 - Height:25 - Text:Change Map - Bold:True - ChatDisplay@CHAT_DISPLAY: - Id:CHAT_DISPLAY - Visible:true - X:20 - Notification: rabeep1.aud - Height:230 - Y:PARENT_BOTTOM - 289 - Width:PARENT_RIGHT - 200 - Label@LABEL_CHATTYPE: - Id:LABEL_CHATTYPE - Width:65 - Height:25 - X:0 - Y:PARENT_BOTTOM - 50 - Text:Chat: - Align:Right - TextField@CHAT_TEXTFIELD: - Id:CHAT_TEXTFIELD - Visible:true - X:70 - Y:PARENT_BOTTOM - 49 - Width:550 - Height:25 - Button@START_GAME_BUTTON: - Id:START_GAME_BUTTON - Visible:true - X:PARENT_RIGHT-160 - Y:PARENT_BOTTOM-49 - Width:120 - Height:25 - Text:Start Game - Bold:True - Button@DISCONNECT_BUTTON: - Id:DISCONNECT_BUTTON - Visible:true - X:PARENT_RIGHT-160 - Y:PARENT_BOTTOM-189 - Width:120 - Height:25 - Text:Disconnect - Bold:True - Checkbox@LOCKTEAMS_CHECKBOX: - Id:LOCKTEAMS_CHECKBOX - Visible: true - X: PARENT_RIGHT-160 - Y: PARENT_BOTTOM-229 - Width: 80 - Height: 20 - Text: Lock Teams - Background@COLOR_CHOOSER: - Id:COLOR_CHOOSER - Width:500 - Height:195 - X:(WINDOW_RIGHT - WIDTH)/2 - PARENT_LEFT - Y:100 - Visible:false - Children: - Button@BUTTON_OK: - Id:BUTTON_OK - X:PARENT_RIGHT - 180 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Ok - Bold:True - ShpImage@MCV: - Id:MCV - X:PARENT_RIGHT - 90 - Y:20 - Image:mcv - Frame:8 - Palette:colorpicker - ShpImage@FACT: - Id:FACT - X:PARENT_RIGHT - 100 - Y:70 - Image:fact - Palette:colorpicker - Label@HUE_LABEL: - X:0 - Y:30 - Width:110 - Height:20 - Align: Right - Text: Hue: - Slider@HUE: - Id:HUE_SLIDER - X:120 - Y:30 - Width:260 - Height:20 - Ticks:5 - Label@SAT_LABEL: - X:0 - Y:60 - Width:110 - Height:20 - Align: Right - Text: Saturation: - Slider@SAT: - Id:SAT_SLIDER - X:120 - Y:60 - Width:260 - Height:20 - Ticks:5 - Label@LUM_LABEL: - X:0 - Y:90 - Width:110 - Height:20 - Align: Right - Text: Brightness: - Slider@LUM: - Id:LUM_SLIDER - X:120 - Y:90 - Width:260 - Height:20 - Ticks:5 - Label@RANGE_LABEL: - X:0 - Y:120 - Width:110 - Height:20 - Align: Right - Text: Range: - Slider@RANGE: - Id:RANGE_SLIDER - X:120 - Y:120 - Width:260 - Height:20 - Ticks:5 -Background@MAP_CHOOSER: - Id:MAP_CHOOSER - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Delegate:MapChooserDelegate - Width:800 - Height:600 - Visible:false - Children: - Label@MAPCHOOSER_TITLE: - X:0 - Y:20 - Align:Center - Width:800 - Height:20 - Text:Choose Map - Bold:True - ListBox@MAP_LIST: - Id:MAP_LIST - X:20 - Y:50 - Width:500 - Height:480 - Children: - Label@MAP_TEMPLATE: - Id:MAP_TEMPLATE - Width:PARENT_RIGHT-28 - Height:25 - ClickThrough:false - X:2 - Y:0 - Visible:false - Background@MAPCHOOSER_MAP_BG: - X:PARENT_RIGHT-268 - Y:50 - Width:252 - Height:252 - Background:dialog3 - Children: - MapPreview@MAPCHOOSER_MAP_PREVIEW: - Id:MAPCHOOSER_MAP_PREVIEW - X:4 - Y:4 - Width:244 - Height:244 - Label@CURMAP_TITLE_LABEL: - Id:CURMAP_TITLE_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:311 - Align:Right - Width:70 - Height:20 - Text:Title: - Bold:True - Label@CURMAP_TITLE: - Id:CURMAP_TITLE - X:PARENT_RIGHT - 195 - Y:311 - Align:Left - Width:70 - Height:20 - Label@CURMAP_SIZE_LABEL: - Id:CURMAP_SIZE_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:331 - Align:Right - Width:70 - Height:20 - Text:Size: - Bold:True - Label@CURMAP_SIZE: - Id:CURMAP_SIZE - X:PARENT_RIGHT - 195 - Y:331 - Align:Left - Width:70 - Height:20 - Label@CURMAP_THEATER_LABEL: - Id:CURMAP_THEATER_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:351 - Align:Right - Width:70 - Height:20 - Text:Theater: - Bold:True - Label@CURMAP_THEATER: - Id:CURMAP_THEATER - X:PARENT_RIGHT - 195 - Y:351 - Align:Left - Width:70 - Height:20 - Label@CURMAP_PLAYERS_LABEL: - Id:CURMAP_PLAYERS_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:371 - Align:Right - Width:70 - Height:20 - Text:Players: - Bold:True - Label@CURMAP_PLAYERS: - Id:CURMAP_PLAYERS - X:PARENT_RIGHT - 195 - Y:371 - Align:Left - Width:70 - Height:20 - Button@BUTTON_OK: - Id:BUTTON_OK - X:PARENT_RIGHT - 360 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Ok - Bold:True - Button@BUTTON_CANCEL: - Id:BUTTON_CANCEL - X:PARENT_RIGHT - 180 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Cancel - Bold:True \ No newline at end of file +Background@SERVER_LOBBY: + Id:SERVER_LOBBY + Delegate:LobbyDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:800 + Height:600 + Visible:true + Children: + Label@LOBBY_TITLE: + X:0 + Y:20 + Align:Center + Width:800 + Height:20 + Bold:True + Text:OpenRA Multiplayer Lobby + Background@LOBBY_MAP_BG: + X:PARENT_RIGHT-268 + Y:39 + Width:252 + Height:252 + Background:dialog3 + Children: + MapPreview@LOBBY_MAP_PREVIEW: + Id:LOBBY_MAP_PREVIEW + X:4 + Y:4 + Width:244 + Height:244 + Container@PLAYERS: + Id:PLAYERS + X:20 + Y:75 + Width:500 + Height:200 + Children: + Container@TEMPLATE_LOCAL: + Id:TEMPLATE_LOCAL + X:0 + Y:0 + Width:500 + Height:30 + Visible:false + Children: + TextField@NAME: + Id:NAME + Text:Name + Width:139 + Height:25 + X:0 + Y:0 + MaxLength:16 + Button@COLOR: + Id:COLOR + Width:65 + Height:25 + X:159 + Y:0 + Children: + ColorBlock@COLORBLOCK: + Id:COLORBLOCK + X:5 + Y:7 + Width:PARENT_RIGHT-10 + Height:PARENT_BOTTOM-12 + Button@FACTION: + Id:FACTION + Width:110 + Height:25 + X:244 + Y:0 + Children: + Image@FACTIONFLAG: + Id:FACTIONFLAG + Width:30 + Height:15 + X:5 + Y:5 + Label@FACTIONNAME: + Id:FACTIONNAME + Text:Faction + Width:60 + Height:25 + X:40 + Y:0 + Button@TEAM: + Id:TEAM + Text:Team + Width:25 + Height:25 + X:374 + Y:0 + Checkbox@STATUS: + Id:STATUS + X:455 + Y:2 + Width:20 + Height:20 + Container@TEMPLATE_REMOTE: + Id:TEMPLATE_REMOTE + X:0 + Y:0 + Width:500 + Height:30 + Visible:false + Children: + Label@NAME: + Id:NAME + Text:Name + Width:139 + Height:25 + X:0 + Y:0 + ColorBlock@COLOR: + Id:COLOR + X:164 + Y:7 + Width:55 + Height:13 + Label@FACTION: + Id:FACTION + Width:110 + Height:25 + X:244 + Y:0 + Children: + Image@FACTIONFLAG: + Id:FACTIONFLAG + Width:30 + Height:15 + X:5 + Y:5 + Label@FACTIONNAME: + Id:FACTIONNAME + Text:Faction + Width:60 + Height:25 + X:40 + Y:0 + Label@TEAM: + Id:TEAM + Text:Team + Width:70 + Height:25 + X:351 + Y:0 + Align:Center + Bold: false + Checkbox@STATUS: + Id:STATUS + X:455 + Y:2 + Width:20 + Height:20 + Container@TEMPLATE_EMPTY: + Id:TEMPLATE_EMPTY + X:0 + Y:0 + Width:500 + Height:30 + Visible:false + Children: + Label@NAME: + Id:NAME + Text:Name + Width:139 + Height:25 + X:0 + Y:0 + Button@JOIN: + Id:JOIN + Text:Play in this slot + Width:PARENT_RIGHT - 160 + Height:25 + X:160 + Y:0 + Container@TEMPLATE_EMPTY_HOST: + Id:TEMPLATE_EMPTY_HOST + X:0 + Y:0 + Width:500 + Height:30 + Visible:false + Children: + Button@NAME: -- TODO: replace with dropdown + Id:NAME + Text:Name + Width:155 + Height:25 + X:0 + Y:0 + Button@JOIN: + Id:JOIN + Text:Play in this slot + Width:PARENT_RIGHT - 160 + Height:25 + X:160 + Y:0 + Container@LABEL_CONTAINER: + X:30 + Y:45 + Children: + Label@LABEL_LOBBY_NAME: + Id:LABEL_LOBBY_NAME + Width:139 + Height:25 + X:0 + Y:0 + Text:Name + Align:Center + Bold:True + Label@LABEL_LOBBY_COLOR: + Id:LABEL_LOBBY_COLOR + Width:65 + Height:25 + X:159 + Y:0 + Text:Color + Align:Center + Bold:True + Label@LABEL_LOBBY_FACTION: + Id:LABEL_LOBBY_FACTION + Width:110 + Height:25 + X:244 + Y:0 + Text:Faction + Align:Center + Bold:True + Label@LABEL_LOBBY_TEAM: + Id:LABEL_LOBBY_TEAM + Width:70 + Height:25 + X:351 + Y:0 + Text:Team + Align:Center + Bold:True + Label@LABEL_LOBBY_STATUS: + Id:LABEL_LOBBY_STATUS + X:432 + Y:0 + Width:70 + Height:25 + Text:Ready + Align:Center + Bold:True + Button@CHANGEMAP_BUTTON: + Id:CHANGEMAP_BUTTON + Visible:true + X:PARENT_RIGHT-160 + Y:PARENT_BOTTOM-269 + Width:120 + Height:25 + Text:Change Map + Bold:True + ChatDisplay@CHAT_DISPLAY: + Id:CHAT_DISPLAY + Visible:true + X:20 + Notification: rabeep1.aud + Height:230 + Y:PARENT_BOTTOM - 289 + Width:PARENT_RIGHT - 200 + Label@LABEL_CHATTYPE: + Id:LABEL_CHATTYPE + Width:65 + Height:25 + X:0 + Y:PARENT_BOTTOM - 50 + Text:Chat: + Align:Right + TextField@CHAT_TEXTFIELD: + Id:CHAT_TEXTFIELD + Visible:true + X:70 + Y:PARENT_BOTTOM - 49 + Width:550 + Height:25 + Button@START_GAME_BUTTON: + Id:START_GAME_BUTTON + Visible:true + X:PARENT_RIGHT-160 + Y:PARENT_BOTTOM-49 + Width:120 + Height:25 + Text:Start Game + Bold:True + Button@DISCONNECT_BUTTON: + Id:DISCONNECT_BUTTON + Visible:true + X:PARENT_RIGHT-160 + Y:PARENT_BOTTOM-189 + Width:120 + Height:25 + Text:Disconnect + Bold:True + Checkbox@LOCKTEAMS_CHECKBOX: + Id:LOCKTEAMS_CHECKBOX + Visible: true + X: PARENT_RIGHT-160 + Y: PARENT_BOTTOM-229 + Width: 80 + Height: 20 + Text: Lock Teams + Background@COLOR_CHOOSER: + Id:COLOR_CHOOSER + Width:500 + Height:195 + X:(WINDOW_RIGHT - WIDTH)/2 - PARENT_LEFT + Y:100 + Visible:false + Children: + Button@BUTTON_OK: + Id:BUTTON_OK + X:PARENT_RIGHT - 180 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Ok + Bold:True + ShpImage@MCV: + Id:MCV + X:PARENT_RIGHT - 90 + Y:20 + Image:mcv + Frame:8 + Palette:colorpicker + ShpImage@FACT: + Id:FACT + X:PARENT_RIGHT - 100 + Y:70 + Image:fact + Palette:colorpicker + Label@HUE_LABEL: + X:0 + Y:30 + Width:110 + Height:20 + Align: Right + Text: Hue: + Slider@HUE: + Id:HUE_SLIDER + X:120 + Y:30 + Width:260 + Height:20 + Ticks:5 + Label@SAT_LABEL: + X:0 + Y:60 + Width:110 + Height:20 + Align: Right + Text: Saturation: + Slider@SAT: + Id:SAT_SLIDER + X:120 + Y:60 + Width:260 + Height:20 + Ticks:5 + Label@LUM_LABEL: + X:0 + Y:90 + Width:110 + Height:20 + Align: Right + Text: Brightness: + Slider@LUM: + Id:LUM_SLIDER + X:120 + Y:90 + Width:260 + Height:20 + Ticks:5 + Label@RANGE_LABEL: + X:0 + Y:120 + Width:110 + Height:20 + Align: Right + Text: Range: + Slider@RANGE: + Id:RANGE_SLIDER + X:120 + Y:120 + Width:260 + Height:20 + Ticks:5 +Background@MAP_CHOOSER: + Id:MAP_CHOOSER + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Delegate:MapChooserDelegate + Width:800 + Height:600 + Visible:true + Children: + Label@MAPCHOOSER_TITLE: + X:0 + Y:20 + Align:Center + Width:800 + Height:20 + Text:Choose Map + Bold:True + ListBox@MAP_LIST: + Id:MAP_LIST + X:20 + Y:50 + Width:500 + Height:480 + Children: + Label@MAP_TEMPLATE: + Id:MAP_TEMPLATE + Width:PARENT_RIGHT-28 + Height:25 + ClickThrough:false + X:2 + Y:0 + Visible:false + Background@MAPCHOOSER_MAP_BG: + X:PARENT_RIGHT-268 + Y:50 + Width:252 + Height:252 + Background:dialog3 + Children: + MapPreview@MAPCHOOSER_MAP_PREVIEW: + Id:MAPCHOOSER_MAP_PREVIEW + X:4 + Y:4 + Width:244 + Height:244 + Label@CURMAP_TITLE_LABEL: + Id:CURMAP_TITLE_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:311 + Align:Right + Width:70 + Height:20 + Text:Title: + Bold:True + Label@CURMAP_TITLE: + Id:CURMAP_TITLE + X:PARENT_RIGHT - 195 + Y:311 + Align:Left + Width:70 + Height:20 + Label@CURMAP_SIZE_LABEL: + Id:CURMAP_SIZE_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:331 + Align:Right + Width:70 + Height:20 + Text:Size: + Bold:True + Label@CURMAP_SIZE: + Id:CURMAP_SIZE + X:PARENT_RIGHT - 195 + Y:331 + Align:Left + Width:70 + Height:20 + Label@CURMAP_THEATER_LABEL: + Id:CURMAP_THEATER_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:351 + Align:Right + Width:70 + Height:20 + Text:Theater: + Bold:True + Label@CURMAP_THEATER: + Id:CURMAP_THEATER + X:PARENT_RIGHT - 195 + Y:351 + Align:Left + Width:70 + Height:20 + Label@CURMAP_PLAYERS_LABEL: + Id:CURMAP_PLAYERS_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:371 + Align:Right + Width:70 + Height:20 + Text:Players: + Bold:True + Label@CURMAP_PLAYERS: + Id:CURMAP_PLAYERS + X:PARENT_RIGHT - 195 + Y:371 + Align:Left + Width:70 + Height:20 + Button@BUTTON_OK: + Id:BUTTON_OK + X:PARENT_RIGHT - 360 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Ok + Bold:True + Button@BUTTON_CANCEL: + Id:BUTTON_CANCEL + X:PARENT_RIGHT - 180 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Cancel + Bold:True diff --git a/mods/ra/chrome/ingame.yaml b/mods/ra/chrome/ingame.yaml index 705d65543f..fb18978a07 100644 --- a/mods/ra/chrome/ingame.yaml +++ b/mods/ra/chrome/ingame.yaml @@ -1,286 +1,286 @@ -Container@INGAME_ROOT: - Id:INGAME_ROOT - Delegate:IngameChromeDelegate - Visible:false - Children: - WorldInteractionController: - X:0 - Y:0 - Width:WINDOW_RIGHT - Height:WINDOW_BOTTOM - ViewportScrollController: - X:0 - Y:0 - Width:WINDOW_RIGHT - Height:WINDOW_BOTTOM - Timer@GAME_TIMER: - Id:GAME_TIMER - X: WINDOW_RIGHT/2 - Y: 10 - Background@POSTGAME_BG: - Id:POSTGAME_BG - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:400 - Height:100 - Background:dialog4 - Visible:false - Children: - Label@TEXT: - Id:TEXT - X:(PARENT_RIGHT - WIDTH)/2 - Y:(PARENT_BOTTOM - HEIGHT)/2 - Width:200 - Height:40 - Align:Center - Bold:True - SpecialPowerBin@INGAME_POWERS_BIN: - Id:INGAME_POWERS_BIN - X:0 - Y:25 - BuildPalette@INGAME_BUILD_PALETTE: - Id:INGAME_BUILD_PALETTE - X:WINDOW_RIGHT - 250 - Y:280 - Width:250 - Height:500 - Button@INGAME_OPTIONS_BUTTON: - Id:INGAME_OPTIONS_BUTTON - X:0 - Y:0 - Width:160 - Height:25 - Text:Options - Bold:True - Button@INGAME_DIPLOMACY_BUTTON: - Id:INGAME_DIPLOMACY_BUTTON - X:162 - Y:0 - Width:160 - Height:25 - Text:Diplomacy - Bold:True - Button@INGAME_DEVELOPERMODE_BUTTON: - Id:INGAME_DEVELOPERMODE_BUTTON - X:324 - Y:0 - Width:160 - Height:25 - Text:Developer Mode - Visible:false - Bold:True - RadarBin@INGAME_RADAR_BIN: - Id:INGAME_RADAR_BIN - PowerBin@INGAME_POWER_BIN: - Id:INGAME_POWER_BIN - MoneyBin@INGAME_MONEY_BIN: - Id:INGAME_MONEY_BIN - X:WINDOW_RIGHT - WIDTH - Y:0 - Width:320 - Height: 32 - SplitOreAndCash:No - Children: - OrderButton@SELL: - Id:SELL - Delegate:OrderButtonsChromeDelegate - X:3 - Y:0 - Width:30 - Height:30 - Image:sell - Description:Sell - LongDesc:Sell buildings, reclaiming a \nproportion of their build cost - OrderButton@POWER_DOWN: - Id:POWER_DOWN - Delegate:OrderButtonsChromeDelegate - X:39 - Y:0 - Width:30 - Height:30 - Image:power - Description:Powerdown - LongDesc:Disable unneeded structures so their \npower can be used elsewhere - OrderButton@REPAIR: - Id:REPAIR - Delegate:OrderButtonsChromeDelegate - X:75 - Y:0 - Width:30 - Height:30 - Image:repair - Description:Repair - LongDesc:Repair damaged buildings - WorldTooltip: - Background@INGAME_OPTIONS_BG: - Id:INGAME_OPTIONS_BG - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:300 - Height:320 - Visible:false - Children: - Label@LABEL_TITLE: - Id:LABEL_TITLE - X:(PARENT_RIGHT - WIDTH)/2 - Y:20 - Width:250 - Height:25 - Text:Options - Align:Center - Bold:True - Button@RESUME: - Id:RESUME - X:(PARENT_RIGHT - WIDTH)/2 - Y:60 - Width:160 - Height:25 - Text:Resume - Bold:True - Button@SETTINGS: - Id:SETTINGS - X:(PARENT_RIGHT - WIDTH)/2 - Y:100 - Width:160 - Height:25 - Text:Settings - Bold:True - Button@MUSIC: - Id:MUSIC - X:(PARENT_RIGHT - WIDTH)/2 - Y:140 - Width:160 - Height:25 - Text:Music - Bold:True - Button@SURRENDER: - Id:SURRENDER - X:(PARENT_RIGHT - WIDTH)/2 - Y:180 - Width:160 - Height:25 - Text:Surrender - Bold:True - Button@DISCONNECT: - Id:DISCONNECT - X:(PARENT_RIGHT - WIDTH)/2 - Y:220 - Width:160 - Height:25 - Text:Disconnect - Bold:True - Button@QUIT: - Id:QUIT - X:(PARENT_RIGHT - WIDTH)/2 - Y:260 - Width:160 - Height:25 - Text:Quit - Bold:True - Background@DIPLOMACY_BG: - Id:DIPLOMACY_BG - Delegate:DiplomacyDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:450 - Height:400 - Visible:false - Children: - Label@LABEL_TITLE: - Id:LABEL_TITLE - X:(PARENT_RIGHT - WIDTH)/2 - Y:20 - Width:250 - Height:25 - Text:Diplomacy - Align:Center - Bold:True - ChatDisplay@CHAT_DISPLAY: - Id:CHAT_DISPLAY - X:250 - Y:WINDOW_BOTTOM - HEIGHT - 30 - Width: 760 - Height: 200 - ClickThrough: True - DrawBackground: False - RemoveTime:250 - ChatEntry@CHAT_ENTRY: - Id:CHAT_ENTRY - X:250 - Y:WINDOW_BOTTOM - HEIGHT - Width: 760 - Height: 30 - ClickThrough: True - Background@DEVELOPERMODE_BG: - Id:DEVELOPERMODE_BG - Delegate:DeveloperModeDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:350 - Height:330 - Visible:false - Children: - Label@LABEL_TITLE: - Id:LABEL_TITLE - X:(PARENT_RIGHT - WIDTH)/2 - Y:20 - Width:250 - Height:25 - Text:Developer Mode - Align:Center - Checkbox@CHECKBOX_SHROUD - Id:CHECKBOX_SHROUD - X:30 - Y:50 - Height:20 - Width:PARENT_RIGHT - 30 - Text:Disable Shroud - Checkbox@CHECKBOX_UNITDEBUG: - Id:CHECKBOX_UNITDEBUG - X:30 - Y:80 - Width:PARENT_RIGHT - 30 - Height:20 - Text:Show Occupied Cells - Checkbox@CHECKBOX_PATHDEBUG: - Id:CHECKBOX_PATHDEBUG - X:30 - Y:110 - Width:PARENT_RIGHT - 30 - Height:20 - Text:Show Unit Paths - Button@GIVE_CASH - Id:GIVE_CASH - X:30 - Y:140 - Width:200 - Height:20 - Text: Give Cash - Checkbox@INSTANT_BUILD - Id:INSTANT_BUILD - X:30 - Y:170 - Width:PARENT_RIGHT - 30 - Height:20 - Text:Instant Build Speed - Checkbox@INSTANT_CHARGE - Id:INSTANT_CHARGE - X:30 - Y:200 - Width:PARENT_RIGHT - 30 - Height:20 - Text:Instant Charge Time (Special Powers) - Checkbox@ENABLE_TECH - Id:ENABLE_TECH - X:30 - Y:230 - Width:PARENT_RIGHT - 30 - Height:20 - Text:Build Everything - Button@GIVE_EXPLORATION - Id:GIVE_EXPLORATION - X:30 - Y:260 - Width:200 - Height:20 - Text: Give Exploration \ No newline at end of file +Container@INGAME_ROOT: + Id:INGAME_ROOT + Delegate:IngameChromeDelegate + Visible:true + Children: + WorldInteractionController: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + ViewportScrollController: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + Timer@GAME_TIMER: + Id:GAME_TIMER + X: WINDOW_RIGHT/2 + Y: 10 + Background@POSTGAME_BG: + Id:POSTGAME_BG + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:400 + Height:100 + Background:dialog4 + Visible:false + Children: + Label@TEXT: + Id:TEXT + X:(PARENT_RIGHT - WIDTH)/2 + Y:(PARENT_BOTTOM - HEIGHT)/2 + Width:200 + Height:40 + Align:Center + Bold:True + SpecialPowerBin@INGAME_POWERS_BIN: + Id:INGAME_POWERS_BIN + X:0 + Y:25 + BuildPalette@INGAME_BUILD_PALETTE: + Id:INGAME_BUILD_PALETTE + X:WINDOW_RIGHT - 250 + Y:280 + Width:250 + Height:500 + Button@INGAME_OPTIONS_BUTTON: + Id:INGAME_OPTIONS_BUTTON + X:0 + Y:0 + Width:160 + Height:25 + Text:Options + Bold:True + Button@INGAME_DIPLOMACY_BUTTON: + Id:INGAME_DIPLOMACY_BUTTON + X:162 + Y:0 + Width:160 + Height:25 + Text:Diplomacy + Bold:True + Button@INGAME_DEVELOPERMODE_BUTTON: + Id:INGAME_DEVELOPERMODE_BUTTON + X:324 + Y:0 + Width:160 + Height:25 + Text:Developer Mode + Visible:false + Bold:True + RadarBin@INGAME_RADAR_BIN: + Id:INGAME_RADAR_BIN + PowerBin@INGAME_POWER_BIN: + Id:INGAME_POWER_BIN + MoneyBin@INGAME_MONEY_BIN: + Id:INGAME_MONEY_BIN + X:WINDOW_RIGHT - WIDTH + Y:0 + Width:320 + Height: 32 + SplitOreAndCash:No + Children: + OrderButton@SELL: + Id:SELL + Delegate:OrderButtonsChromeDelegate + X:3 + Y:0 + Width:30 + Height:30 + Image:sell + Description:Sell + LongDesc:Sell buildings, reclaiming a \nproportion of their build cost + OrderButton@POWER_DOWN: + Id:POWER_DOWN + Delegate:OrderButtonsChromeDelegate + X:39 + Y:0 + Width:30 + Height:30 + Image:power + Description:Powerdown + LongDesc:Disable unneeded structures so their \npower can be used elsewhere + OrderButton@REPAIR: + Id:REPAIR + Delegate:OrderButtonsChromeDelegate + X:75 + Y:0 + Width:30 + Height:30 + Image:repair + Description:Repair + LongDesc:Repair damaged buildings + WorldTooltip: + Background@INGAME_OPTIONS_BG: + Id:INGAME_OPTIONS_BG + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:300 + Height:320 + Visible:false + Children: + Label@LABEL_TITLE: + Id:LABEL_TITLE + X:(PARENT_RIGHT - WIDTH)/2 + Y:20 + Width:250 + Height:25 + Text:Options + Align:Center + Bold:True + Button@RESUME: + Id:RESUME + X:(PARENT_RIGHT - WIDTH)/2 + Y:60 + Width:160 + Height:25 + Text:Resume + Bold:True + Button@SETTINGS: + Id:SETTINGS + X:(PARENT_RIGHT - WIDTH)/2 + Y:100 + Width:160 + Height:25 + Text:Settings + Bold:True + Button@MUSIC: + Id:MUSIC + X:(PARENT_RIGHT - WIDTH)/2 + Y:140 + Width:160 + Height:25 + Text:Music + Bold:True + Button@SURRENDER: + Id:SURRENDER + X:(PARENT_RIGHT - WIDTH)/2 + Y:180 + Width:160 + Height:25 + Text:Surrender + Bold:True + Button@DISCONNECT: + Id:DISCONNECT + X:(PARENT_RIGHT - WIDTH)/2 + Y:220 + Width:160 + Height:25 + Text:Disconnect + Bold:True + Button@QUIT: + Id:QUIT + X:(PARENT_RIGHT - WIDTH)/2 + Y:260 + Width:160 + Height:25 + Text:Quit + Bold:True + Background@DIPLOMACY_BG: + Id:DIPLOMACY_BG + Delegate:DiplomacyDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:450 + Height:400 + Visible:false + Children: + Label@LABEL_TITLE: + Id:LABEL_TITLE + X:(PARENT_RIGHT - WIDTH)/2 + Y:20 + Width:250 + Height:25 + Text:Diplomacy + Align:Center + Bold:True + ChatDisplay@CHAT_DISPLAY: + Id:CHAT_DISPLAY + X:250 + Y:WINDOW_BOTTOM - HEIGHT - 30 + Width: 760 + Height: 200 + ClickThrough: True + DrawBackground: False + RemoveTime:250 + ChatEntry@CHAT_ENTRY: + Id:CHAT_ENTRY + X:250 + Y:WINDOW_BOTTOM - HEIGHT + Width: 760 + Height: 30 + ClickThrough: True + Background@DEVELOPERMODE_BG: + Id:DEVELOPERMODE_BG + Delegate:DeveloperModeDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:350 + Height:330 + Visible:false + Children: + Label@LABEL_TITLE: + Id:LABEL_TITLE + X:(PARENT_RIGHT - WIDTH)/2 + Y:20 + Width:250 + Height:25 + Text:Developer Mode + Align:Center + Checkbox@CHECKBOX_SHROUD + Id:CHECKBOX_SHROUD + X:30 + Y:50 + Height:20 + Width:PARENT_RIGHT - 30 + Text:Disable Shroud + Checkbox@CHECKBOX_UNITDEBUG: + Id:CHECKBOX_UNITDEBUG + X:30 + Y:80 + Width:PARENT_RIGHT - 30 + Height:20 + Text:Show Occupied Cells + Checkbox@CHECKBOX_PATHDEBUG: + Id:CHECKBOX_PATHDEBUG + X:30 + Y:110 + Width:PARENT_RIGHT - 30 + Height:20 + Text:Show Unit Paths + Button@GIVE_CASH + Id:GIVE_CASH + X:30 + Y:140 + Width:200 + Height:20 + Text: Give Cash + Checkbox@INSTANT_BUILD + Id:INSTANT_BUILD + X:30 + Y:170 + Width:PARENT_RIGHT - 30 + Height:20 + Text:Instant Build Speed + Checkbox@INSTANT_CHARGE + Id:INSTANT_CHARGE + X:30 + Y:200 + Width:PARENT_RIGHT - 30 + Height:20 + Text:Instant Charge Time (Special Powers) + Checkbox@ENABLE_TECH + Id:ENABLE_TECH + X:30 + Y:230 + Width:PARENT_RIGHT - 30 + Height:20 + Text:Build Everything + Button@GIVE_EXPLORATION + Id:GIVE_EXPLORATION + X:30 + Y:260 + Width:200 + Height:20 + Text: Give Exploration diff --git a/mods/ra/chrome/mainmenu.yaml b/mods/ra/chrome/mainmenu.yaml index e696ed4e2a..d8ce617191 100644 --- a/mods/ra/chrome/mainmenu.yaml +++ b/mods/ra/chrome/mainmenu.yaml @@ -1,253 +1,253 @@ -Background@MAINMENU_BG: - Id:MAINMENU_BG - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:250 - Height:290 - Delegate:MainMenuButtonsDelegate - Children: - Label@MAINMENU_LABEL_TITLE: - Id:MAINMENU_LABEL_TITLE - X:0 - Y:20 - Width:250 - Height:25 - Text:OpenRA Main Menu - Align:Center - Bold:True - Button@MAINMENU_BUTTON_JOIN: - Id:MAINMENU_BUTTON_JOIN - X:45 - Y:70 - Width:160 - Height:25 - Text:Join Game - Bold:True - Button@MAINMENU_BUTTON_CREATE: - Id:MAINMENU_BUTTON_CREATE - X:45 - Y:110 - Width:160 - Height:25 - Text:Create Game - Bold:True - Button@MAINMENU_BUTTON_SETTINGS: - Id:MAINMENU_BUTTON_SETTINGS - X:45 - Y:150 - Width:160 - Height:25 - Text:Settings - Bold:True - Button@MAINMENU_BUTTON_MUSIC: - Id:MAINMENU_BUTTON_MUSIC - X:45 - Y:190 - Width:160 - Height:25 - Text:Music - Bold:True - Button@MAINMENU_BUTTON_QUIT: - Id:MAINMENU_BUTTON_QUIT - X:45 - Y:230 - Width:160 - Height:25 - Text:Quit - Bold:True - Button@MAINMENU_BUTTON_VIDEOPLAYER: - Id:MAINMENU_BUTTON_VIDEOPLAYER - Visible:false - X:45 - Y:260 - Width:160 - Height:25 - Text:Video Player - Bold:True - Label@VERSION_STRING: - Id:VERSION_STRING - X:WINDOW_RIGHT - PARENT_LEFT - WIDTH - 15 - Y:WINDOW_BOTTOM - PARENT_TOP - 25 - Width:400 - Height:35 - Text: - Align:Right - Bold:True -Background@PERF_BG: - ClickThrough:true - Id:PERF_BG - Background:dialog4 - Delegate:PerfDebugDelegate - X:10 - Y:WINDOW_BOTTOM - 250 - Width: 210 - Height: 250 - Children: - PerfGraph@GRAPH: - Id:GRAPH - X:5 - Y:5 - Width:200 - Height:200 - Label@TEXT: - Id:TEXT - Bold: false - X:20 - Y:205 - Width:170 - Height:40 -Background@MUSIC_MENU: - Id:MUSIC_MENU - Delegate:MusicPlayerDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width: 450 - Height: 250 - Visible: false - Children: - Label@SETTINGS_LABEL_TITLE: - Id:SETTINGS_LABEL_TITLE - X:0 - Y:20 - Width:450 - Height:25 - Text:Music - Align:Center - Bold:True - Button@BUTTON_CLOSE: - Id:BUTTON_CLOSE - X:PARENT_RIGHT - 180 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Close - Bold:True - Container@BUTTONS: - X:PARENT_RIGHT - 150 - Y:50 - Children: - Button@BUTTON_PLAY: - Id:BUTTON_PLAY - X:35 - Y:0 - Width:25 - Height:25 - Children: - Image@IMAGE_PLAY: - Id:IMAGE_PLAY - X:0 - Y:0 - Width:25 - Height:25 - ImageCollection:music - ImageName:play - Button@BUTTON_PAUSE: - Id:BUTTON_PAUSE - Visible:false - X:35 - Y:0 - Width:25 - Height:25 - Children: - Image@IMAGE_PAUSE: - Id:IMAGE_PAUSE - X:0 - Y:0 - Width:25 - Height:25 - ImageCollection:music - ImageName:pause - Button@BUTTON_STOP: - Id:BUTTON_STOP - X:70 - Y:0 - Width:25 - Height:25 - Children: - Image@IMAGE_STOP: - Id:IMAGE_STOP - X:0 - Y:0 - Width:25 - Height:25 - ImageCollection:music - ImageName:stop - Button@BUTTON_NEXT: - Id:BUTTON_NEXT - X:105 - Y:0 - Width:25 - Height:25 - Children: - Image@IMAGE_NEXT: - Id:IMAGE_NEXT - X:0 - Y:0 - Width:25 - Height:25 - ImageCollection:music - ImageName:next - Button@BUTTON_PREV: - Id:BUTTON_PREV - X:0 - Y:0 - Width:25 - Height:25 - Children: - Image@IMAGE_PREV: - Id:IMAGE_PREV - X:0 - Y:0 - Width:25 - Height:25 - ImageCollection:music - ImageName:prev - Label@TIME: - Id:TIME - X:PARENT_RIGHT - 150 - Y:75 - Width:140 - Height:25 - Align: Center - ListBox@MUSIC_LIST: - Id:MUSIC_LIST - X:10 - Y:50 - Width:280 - Height:140 - Children: - Label@MUSIC_TEMPLATE: - Id:MUSIC_TEMPLATE - Width:PARENT_RIGHT-28 - Height:25 - ClickThrough:false - X:2 - Y:0 - Visible:false - Children: - Label@TITLE: - Id:TITLE - X:5 - Width:PARENT_RIGHT - 10 - Height:PARENT_BOTTOM - Align: Left - Label@LENGTH: - Id:LENGTH - X:5 - Width:PARENT_RIGHT - 10 - Height:PARENT_BOTTOM - Align: Right - Checkbox@SHUFFLE: - Id:SHUFFLE - X:PARENT_RIGHT - 150 - Y:110 - Width:100 - Height:20 - Text:Shuffle - Checkbox@REPEAT: - Id:REPEAT - X:PARENT_RIGHT - 150 - Y:140 - Width:100 - Height:20 - Text:Loop \ No newline at end of file +Background@MAINMENU_BG: + Id:MAINMENU_BG + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:250 + Height:290 + Delegate:MainMenuButtonsDelegate + Children: + Label@MAINMENU_LABEL_TITLE: + Id:MAINMENU_LABEL_TITLE + X:0 + Y:20 + Width:250 + Height:25 + Text:OpenRA Main Menu + Align:Center + Bold:True + Button@MAINMENU_BUTTON_JOIN: + Id:MAINMENU_BUTTON_JOIN + X:45 + Y:70 + Width:160 + Height:25 + Text:Join Game + Bold:True + Button@MAINMENU_BUTTON_CREATE: + Id:MAINMENU_BUTTON_CREATE + X:45 + Y:110 + Width:160 + Height:25 + Text:Create Game + Bold:True + Button@MAINMENU_BUTTON_SETTINGS: + Id:MAINMENU_BUTTON_SETTINGS + X:45 + Y:150 + Width:160 + Height:25 + Text:Settings + Bold:True + Button@MAINMENU_BUTTON_MUSIC: + Id:MAINMENU_BUTTON_MUSIC + X:45 + Y:190 + Width:160 + Height:25 + Text:Music + Bold:True + Button@MAINMENU_BUTTON_QUIT: + Id:MAINMENU_BUTTON_QUIT + X:45 + Y:230 + Width:160 + Height:25 + Text:Quit + Bold:True + Button@MAINMENU_BUTTON_VIDEOPLAYER: + Id:MAINMENU_BUTTON_VIDEOPLAYER + Visible:false + X:45 + Y:260 + Width:160 + Height:25 + Text:Video Player + Bold:True + Label@VERSION_STRING: + Id:VERSION_STRING + X:WINDOW_RIGHT - PARENT_LEFT - WIDTH - 15 + Y:WINDOW_BOTTOM - PARENT_TOP - 25 + Width:400 + Height:35 + Text: + Align:Right + Bold:True +Background@PERF_BG: + ClickThrough:true + Id:PERF_BG + Background:dialog4 + Delegate:PerfDebugDelegate + X:10 + Y:WINDOW_BOTTOM - 250 + Width: 210 + Height: 250 + Children: + PerfGraph@GRAPH: + Id:GRAPH + X:5 + Y:5 + Width:200 + Height:200 + Label@TEXT: + Id:TEXT + Bold: false + X:20 + Y:205 + Width:170 + Height:40 +Background@MUSIC_MENU: + Id:MUSIC_MENU + Delegate:MusicPlayerDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width: 450 + Height: 250 + Visible: true + Children: + Label@SETTINGS_LABEL_TITLE: + Id:SETTINGS_LABEL_TITLE + X:0 + Y:20 + Width:450 + Height:25 + Text:Music + Align:Center + Bold:True + Button@BUTTON_CLOSE: + Id:BUTTON_CLOSE + X:PARENT_RIGHT - 180 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Close + Bold:True + Container@BUTTONS: + X:PARENT_RIGHT - 150 + Y:50 + Children: + Button@BUTTON_PLAY: + Id:BUTTON_PLAY + X:35 + Y:0 + Width:25 + Height:25 + Children: + Image@IMAGE_PLAY: + Id:IMAGE_PLAY + X:0 + Y:0 + Width:25 + Height:25 + ImageCollection:music + ImageName:play + Button@BUTTON_PAUSE: + Id:BUTTON_PAUSE + Visible:false + X:35 + Y:0 + Width:25 + Height:25 + Children: + Image@IMAGE_PAUSE: + Id:IMAGE_PAUSE + X:0 + Y:0 + Width:25 + Height:25 + ImageCollection:music + ImageName:pause + Button@BUTTON_STOP: + Id:BUTTON_STOP + X:70 + Y:0 + Width:25 + Height:25 + Children: + Image@IMAGE_STOP: + Id:IMAGE_STOP + X:0 + Y:0 + Width:25 + Height:25 + ImageCollection:music + ImageName:stop + Button@BUTTON_NEXT: + Id:BUTTON_NEXT + X:105 + Y:0 + Width:25 + Height:25 + Children: + Image@IMAGE_NEXT: + Id:IMAGE_NEXT + X:0 + Y:0 + Width:25 + Height:25 + ImageCollection:music + ImageName:next + Button@BUTTON_PREV: + Id:BUTTON_PREV + X:0 + Y:0 + Width:25 + Height:25 + Children: + Image@IMAGE_PREV: + Id:IMAGE_PREV + X:0 + Y:0 + Width:25 + Height:25 + ImageCollection:music + ImageName:prev + Label@TIME: + Id:TIME + X:PARENT_RIGHT - 150 + Y:75 + Width:140 + Height:25 + Align: Center + ListBox@MUSIC_LIST: + Id:MUSIC_LIST + X:10 + Y:50 + Width:280 + Height:140 + Children: + Label@MUSIC_TEMPLATE: + Id:MUSIC_TEMPLATE + Width:PARENT_RIGHT-28 + Height:25 + ClickThrough:false + X:2 + Y:0 + Visible:false + Children: + Label@TITLE: + Id:TITLE + X:5 + Width:PARENT_RIGHT - 10 + Height:PARENT_BOTTOM + Align: Left + Label@LENGTH: + Id:LENGTH + X:5 + Width:PARENT_RIGHT - 10 + Height:PARENT_BOTTOM + Align: Right + Checkbox@SHUFFLE: + Id:SHUFFLE + X:PARENT_RIGHT - 150 + Y:110 + Width:100 + Height:20 + Text:Shuffle + Checkbox@REPEAT: + Id:REPEAT + X:PARENT_RIGHT - 150 + Y:140 + Width:100 + Height:20 + Text:Loop diff --git a/mods/ra/chrome/serverbrowser.yaml b/mods/ra/chrome/serverbrowser.yaml index f64f797a2d..c4898f0278 100644 --- a/mods/ra/chrome/serverbrowser.yaml +++ b/mods/ra/chrome/serverbrowser.yaml @@ -1,372 +1,372 @@ -Background@CREATESERVER_BG: - Id:CREATESERVER_BG - Delegate:CreateServerMenuDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:400 - Height:240 - Visible:false - Children: - Label@LABEL_TITLE: - Id:LABEL_TITLE - X:0 - Y:20 - Width:400 - Height:25 - Text:Create Server - Align:Center - Bold:True - Label@GAME_TITLE_LABEL: - Id:GAME_TITLE_LABEL - X:50 - Y:59 - Width:95 - Height:25 - Align: Right - Text:Game Title: - TextField@GAME_TITLE: - Id:GAME_TITLE - X:150 - Y:60 - Width:210 - MaxLength:50 - Height:25 - Text:OpenRA Game - Label@EXTERNAL_PORT_LABEL: - Id:EXTERNAL_PORT_LABEL - X:50 - Y:94 - Width:95 - Height:25 - Align: Right - Text:External Port: - TextField@EXTERNAL_PORT: - Id:EXTERNAL_PORT - X:150 - Y:95 - Width:50 - MaxLength:5 - Height:25 - Text:OpenRA Game - Label@LISTEN_PORT_LABEL: - Id:LISTEN_PORT_LABEL - X:210 - Y:94 - Width:95 - Height:25 - Align: Right - Text:Listen Port: - TextField@LISTEN_PORT: - Id:LISTEN_PORT - X:310 - Y:95 - Width:50 - MaxLength:5 - Height:25 - Checkbox@CHECKBOX_ONLINE: - Id:CHECKBOX_ONLINE - X:165 - Y:130 - Width:300 - Height:20 - Text:Advertise game Online - Checkbox@CHECKBOX_CHEATS: - Id:CHECKBOX_CHEATS - X:165 - Y:160 - Width:300 - Height:20 - Text:Allow Cheats - Button@BUTTON_START: - Id:BUTTON_START - X:130 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Create - Bold:True - Button@BUTTON_CANCEL: - Id:BUTTON_CANCEL - X:260 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Cancel - Bold:True -Background@JOINSERVER_BG: - Id:JOINSERVER_BG - Delegate:ServerBrowserDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:700 - Height:410 - Visible:false - Children: - Label@JOINSERVER_LABEL_TITLE: - Id:JOINSERVER_LABEL_TITLE - X:0 - Y:20 - Width:PARENT_RIGHT - Height:25 - Text:Join Server - Align:Center - Bold:True - ListBox@SERVER_LIST: - Id:SERVER_LIST - X:20 - Y:50 - Width:390 - Height:300 - Children: - Label@SERVER_TEMPLATE: - Id:SERVER_TEMPLATE - Width:PARENT_RIGHT-28 - Height:25 - ClickThrough:false - X:2 - Y:0 - Visible:false - Label@JOINSERVER_PROGRESS_TITLE: - Id:JOINSERVER_PROGRESS_TITLE - X:150 - Y:PARENT_BOTTOM / 2 - HEIGHT - Width:150 - Height:30 - Background:dialog4 - Text:Fetching games... - Align:Center - Container@SERVER_INFO: - Id:SERVER_INFO - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Visible:false - Children: - Label@SERVER_IP_LABEL: - Id:SERVER_IP_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:50 - Align:Right - Width:70 - Height:20 - Text:Server: - Bold:True - Label@SERVER_IP: - Id:SERVER_IP - X:PARENT_RIGHT - 195 - Y:50 - Align:Left - Width:70 - Height:20 - Label@SERVER_MODS_LABEL: - Id:SERVER_MODS_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:70 - Align:Right - Width:70 - Height:20 - Text:Mods: - Bold:True - Label@SERVER_MODS: - Id:SERVER_MODS - X:PARENT_RIGHT - 195 - Y:70 - Align:Left - Width:70 - Height:20 - Label@MAP_TITLE_LABEL: - Id:MAP_TITLE_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:90 - Align:Right - Width:70 - Height:20 - Text:Map: - Bold:True - Label@MAP_TITLE: - Id:MAP_TITLE - X:PARENT_RIGHT - 195 - Y:90 - Align:Left - Width:70 - Height:20 - Label@MAP_PLAYERS_LABEL: - Id:MAP_PLAYERS_LABEL - X:PARENT_RIGHT - 200 - WIDTH - Y:110 - Align:Right - Width:70 - Height:20 - Text:Players: - Bold:True - Label@MAP_PLAYERS: - Id:MAP_PLAYERS - X:PARENT_RIGHT - 195 - Y:110 - Align:Left - Width:70 - Height:20 - MapPreview@MAP_PREVIEW: - Id:MAP_PREVIEW - X:PARENT_RIGHT-241 - Y:140 - Width:192 - Height:192 - Button@DIRECTCONNECT_BUTTON: - Id:DIRECTCONNECT_BUTTON - X:20 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Direct Connect - Bold:True - Button@REFRESH_BUTTON: - Id:REFRESH_BUTTON - X:160 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Refresh - Bold:True - Button@JOIN_BUTTON: - Id:JOIN_BUTTON - X:PARENT_RIGHT - 140 - 130 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Join - Bold:True - Button@CANCEL_BUTTON: - Id:CANCEL_BUTTON - X:PARENT_RIGHT - 140 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Cancel - Bold:True -Background@DIRECTCONNECT_BG: - Id:DIRECTCONNECT_BG - Delegate:ServerBrowserDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:400 - Height:155 - Visible:false - Children: - Label@DIRECTCONNECT_LABEL_TITLE: - Id:DIRECTCONNECT_LABEL_TITLE - X:0 - Y:20 - Width:400 - Height:25 - Text:Direct Connect - Align:Center - Bold:True - Label@ADDRESS_LABEL: - Id:ADDRESS_LABEL - X:50 - Y:59 - Width:95 - Height:25 - Align:Right - Text:Server Address: - TextField@SERVER_ADDRESS: - Id:SERVER_ADDRESS - X:150 - Y:60 - Width:200 - MaxLength:50 - Height:25 - Button@JOIN_BUTTON: - Id:JOIN_BUTTON - X:130 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Join - Bold:True - Button@CANCEL_BUTTON: - Id:CANCEL_BUTTON - X:260 - Y:PARENT_BOTTOM - 45 - Width:120 - Height:25 - Text:Cancel - Bold:True -Background@CONNECTION_FAILED_BG: - Id:CONNECTION_FAILED_BG - Delegate:ConnectionDialogsDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:450 - Height:150 - Visible:false - Children: - Label@CONNECTION_FAILED_TITLE: - Id:CONNECTION_FAILED_TITLE - X:0 - Y:20 - Width:450 - Height:25 - Text:Connection Failed - Align:Center - Bold:True - Label@CONNECTION_FAILED_DESC: - Id:CONNECTION_FAILED_DESC - X:0 - Y:60 - Width:PARENT_RIGHT - Height:25 - Text:Could not connect to AAA.BBB.CCC.DDD:EEEE - Align:Center - Button@CONNECTION_BUTTON_RETRY: - Id:CONNECTION_BUTTON_RETRY - X:PARENT_RIGHT - 360 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Retry - Bold:True - Button@CONNECTION_BUTTON_CANCEL: - Id:CONNECTION_BUTTON_CANCEL - X:PARENT_RIGHT - 180 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Cancel - Bold:True -Background@CONNECTING_BG: - Id:CONNECTING_BG - Delegate:ConnectionDialogsDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:450 - Height:150 - Visible:false - Children: - Label@CONNECTING_TITLE: - Id:CONNECTING_TITLE - X:0 - Y:20 - Width:450 - Height:25 - Text:Connecting - Align:Center - Bold:True - Label@CONNECTING_DESC: - Id:CONNECTING_DESC - X:0 - Y:60 - Width:PARENT_RIGHT - Height:25 - Text:Connecting to AAA.BBB.CCC.DDD:EEEE... - Align:Center - Button@CONNECTION_BUTTON_ABORT: - Id:CONNECTION_BUTTON_ABORT - X:PARENT_RIGHT - 180 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Abort - Bold:True \ No newline at end of file +Background@CREATESERVER_BG: + Id:CREATESERVER_BG + Delegate:CreateServerMenuDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:400 + Height:240 + Visible:true + Children: + Label@LABEL_TITLE: + Id:LABEL_TITLE + X:0 + Y:20 + Width:400 + Height:25 + Text:Create Server + Align:Center + Bold:True + Label@GAME_TITLE_LABEL: + Id:GAME_TITLE_LABEL + X:50 + Y:59 + Width:95 + Height:25 + Align: Right + Text:Game Title: + TextField@GAME_TITLE: + Id:GAME_TITLE + X:150 + Y:60 + Width:210 + MaxLength:50 + Height:25 + Text:OpenRA Game + Label@EXTERNAL_PORT_LABEL: + Id:EXTERNAL_PORT_LABEL + X:50 + Y:94 + Width:95 + Height:25 + Align: Right + Text:External Port: + TextField@EXTERNAL_PORT: + Id:EXTERNAL_PORT + X:150 + Y:95 + Width:50 + MaxLength:5 + Height:25 + Text:OpenRA Game + Label@LISTEN_PORT_LABEL: + Id:LISTEN_PORT_LABEL + X:210 + Y:94 + Width:95 + Height:25 + Align: Right + Text:Listen Port: + TextField@LISTEN_PORT: + Id:LISTEN_PORT + X:310 + Y:95 + Width:50 + MaxLength:5 + Height:25 + Checkbox@CHECKBOX_ONLINE: + Id:CHECKBOX_ONLINE + X:165 + Y:130 + Width:300 + Height:20 + Text:Advertise game Online + Checkbox@CHECKBOX_CHEATS: + Id:CHECKBOX_CHEATS + X:165 + Y:160 + Width:300 + Height:20 + Text:Allow Cheats + Button@BUTTON_START: + Id:BUTTON_START + X:130 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Create + Bold:True + Button@BUTTON_CANCEL: + Id:BUTTON_CANCEL + X:260 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Cancel + Bold:True +Background@JOINSERVER_BG: + Id:JOINSERVER_BG + Delegate:ServerBrowserDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:700 + Height:410 + Visible:true + Children: + Label@JOINSERVER_LABEL_TITLE: + Id:JOINSERVER_LABEL_TITLE + X:0 + Y:20 + Width:PARENT_RIGHT + Height:25 + Text:Join Server + Align:Center + Bold:True + ListBox@SERVER_LIST: + Id:SERVER_LIST + X:20 + Y:50 + Width:390 + Height:300 + Children: + Label@SERVER_TEMPLATE: + Id:SERVER_TEMPLATE + Width:PARENT_RIGHT-28 + Height:25 + ClickThrough:false + X:2 + Y:0 + Visible:false + Label@JOINSERVER_PROGRESS_TITLE: + Id:JOINSERVER_PROGRESS_TITLE + X:150 + Y:PARENT_BOTTOM / 2 - HEIGHT + Width:150 + Height:30 + Background:dialog4 + Text:Fetching games... + Align:Center + Container@SERVER_INFO: + Id:SERVER_INFO + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Visible:false + Children: + Label@SERVER_IP_LABEL: + Id:SERVER_IP_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:50 + Align:Right + Width:70 + Height:20 + Text:Server: + Bold:True + Label@SERVER_IP: + Id:SERVER_IP + X:PARENT_RIGHT - 195 + Y:50 + Align:Left + Width:70 + Height:20 + Label@SERVER_MODS_LABEL: + Id:SERVER_MODS_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:70 + Align:Right + Width:70 + Height:20 + Text:Mods: + Bold:True + Label@SERVER_MODS: + Id:SERVER_MODS + X:PARENT_RIGHT - 195 + Y:70 + Align:Left + Width:70 + Height:20 + Label@MAP_TITLE_LABEL: + Id:MAP_TITLE_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:90 + Align:Right + Width:70 + Height:20 + Text:Map: + Bold:True + Label@MAP_TITLE: + Id:MAP_TITLE + X:PARENT_RIGHT - 195 + Y:90 + Align:Left + Width:70 + Height:20 + Label@MAP_PLAYERS_LABEL: + Id:MAP_PLAYERS_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:110 + Align:Right + Width:70 + Height:20 + Text:Players: + Bold:True + Label@MAP_PLAYERS: + Id:MAP_PLAYERS + X:PARENT_RIGHT - 195 + Y:110 + Align:Left + Width:70 + Height:20 + MapPreview@MAP_PREVIEW: + Id:MAP_PREVIEW + X:PARENT_RIGHT-241 + Y:140 + Width:192 + Height:192 + Button@DIRECTCONNECT_BUTTON: + Id:DIRECTCONNECT_BUTTON + X:20 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Direct Connect + Bold:True + Button@REFRESH_BUTTON: + Id:REFRESH_BUTTON + X:160 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Refresh + Bold:True + Button@JOIN_BUTTON: + Id:JOIN_BUTTON + X:PARENT_RIGHT - 140 - 130 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Join + Bold:True + Button@CANCEL_BUTTON: + Id:CANCEL_BUTTON + X:PARENT_RIGHT - 140 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Cancel + Bold:True +Background@DIRECTCONNECT_BG: + Id:DIRECTCONNECT_BG + Delegate:ServerBrowserDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:400 + Height:155 + Visible:true + Children: + Label@DIRECTCONNECT_LABEL_TITLE: + Id:DIRECTCONNECT_LABEL_TITLE + X:0 + Y:20 + Width:400 + Height:25 + Text:Direct Connect + Align:Center + Bold:True + Label@ADDRESS_LABEL: + Id:ADDRESS_LABEL + X:50 + Y:59 + Width:95 + Height:25 + Align:Right + Text:Server Address: + TextField@SERVER_ADDRESS: + Id:SERVER_ADDRESS + X:150 + Y:60 + Width:200 + MaxLength:50 + Height:25 + Button@JOIN_BUTTON: + Id:JOIN_BUTTON + X:130 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Join + Bold:True + Button@CANCEL_BUTTON: + Id:CANCEL_BUTTON + X:260 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Cancel + Bold:True +Background@CONNECTION_FAILED_BG: + Id:CONNECTION_FAILED_BG + Delegate:ConnectionFailedDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:450 + Height:150 + Visible:true + Children: + Label@CONNECTION_FAILED_TITLE: + Id:CONNECTION_FAILED_TITLE + X:0 + Y:20 + Width:450 + Height:25 + Text:Connection Failed + Align:Center + Bold:True + Label@CONNECTION_FAILED_DESC: + Id:CONNECTION_FAILED_DESC + X:0 + Y:60 + Width:PARENT_RIGHT + Height:25 + Text:Could not connect to AAA.BBB.CCC.DDD:EEEE + Align:Center + Button@CONNECTION_BUTTON_RETRY: + Id:CONNECTION_BUTTON_RETRY + X:PARENT_RIGHT - 360 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Retry + Bold:True + Button@CONNECTION_BUTTON_CANCEL: + Id:CONNECTION_BUTTON_CANCEL + X:PARENT_RIGHT - 180 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Cancel + Bold:True +Background@CONNECTING_BG: + Id:CONNECTING_BG + Delegate:ConnectionDialogsDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:450 + Height:150 + Visible:true + Children: + Label@CONNECTING_TITLE: + Id:CONNECTING_TITLE + X:0 + Y:20 + Width:450 + Height:25 + Text:Connecting + Align:Center + Bold:True + Label@CONNECTING_DESC: + Id:CONNECTING_DESC + X:0 + Y:60 + Width:PARENT_RIGHT + Height:25 + Text:Connecting to AAA.BBB.CCC.DDD:EEEE... + Align:Center + Button@CONNECTION_BUTTON_ABORT: + Id:CONNECTION_BUTTON_ABORT + X:PARENT_RIGHT - 180 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Abort + Bold:True diff --git a/mods/ra/chrome/settings.yaml b/mods/ra/chrome/settings.yaml index eedbfcc35d..cd9c3555f8 100644 --- a/mods/ra/chrome/settings.yaml +++ b/mods/ra/chrome/settings.yaml @@ -1,207 +1,207 @@ -Background@SETTINGS_MENU: - Id:SETTINGS_MENU - Delegate:SettingsMenuDelegate - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM- HEIGHT)/2 - Width: 450 - Height: 350 - Visible: false - Children: - Label@SETTINGS_LABEL_TITLE: - Id:SETTINGS_LABEL_TITLE - X:0 - Y:20 - Width:450 - Height:25 - Text:Settings - Align:Center - Bold:True - Button@BUTTON_CLOSE: - Id:BUTTON_CLOSE - X:PARENT_RIGHT - 180 - Y:PARENT_BOTTOM - 45 - Width:160 - Height:25 - Text:Close - Bold:True - Container@TAB_CONTAINER: - Id:TAB_CONTAINER - X:0 - Y:50 - Width:PARENT_RIGHT - Height:25 - Children: - Button@GENERAL: - Id:GENERAL - X:45 - Y:0 - Width:90 - Height:25 - Text:General - Bold:True - Button@AUDIO: - Id:AUDIO - X:135 - Y:0 - Width:90 - Height:25 - Text:Audio - Bold:True - Button@DISPLAY: - Id:DISPLAY - X:225 - Y:0 - Width:90 - Height:25 - Text:Display - Bold:True - Button@DEBUG: - Id:DEBUG - X:315 - Y:0 - Width:90 - Height:25 - Text:Debug - Bold:True - Container@GENERAL_PANE: - Id:GENERAL_PANE - X:37 - Y:100 - Width:PARENT_RIGHT - 37 - Height:PARENT_BOTTOM - 100 - Visible: true - Children: - Label@SETTINGS_PLAYER_NAME: - Id:SETTINGS_PLAYER_NAME - X:0 - Y:10 - Text: Player Name: - TextField@NAME: - Id:NAME - Text:Name - Width:139 - Height:25 - X:90 - Y:0 - MaxLength:16 - Checkbox@EDGE_SCROLL: - Id:EDGE_SCROLL - X:0 - Y:30 - Width:200 - Height:20 - Text: Enable Edge Scrolling - Checkbox@INVERSE_SCROLL: - Id:INVERSE_SCROLL - X:0 - Y:60 - Width:200 - Height:20 - Text: Invert Mouse Drag Scrolling - Container@AUDIO_PANE: - Id:AUDIO_PANE - X:37 - Y:100 - Width:PARENT_RIGHT - 37 - Height:PARENT_BOTTOM - 100 - Visible: false - Children: - Label@SOUND_VOLUME_LABEL: - Id:SOUND_VOLUME_LABEL - X:0 - Y:10 - Text: Sound Volume - Slider@SOUND_VOLUME: - Id:SOUND_VOLUME - X:100 - Y:0 - Width:250 - Height:20 - Ticks:5 - Label@MUSIC_VOLUME_LABEL: - Id:MUSIC_VOLUME_LABEL - X:0 - Y:40 - Text: Music Volume - Slider@MUSIC_VOLUME: - Id:MUSIC_VOLUME - X:100 - Y:30 - Width:250 - Height:20 - Ticks:5 - Container@DISPLAY_PANE: - Id:DISPLAY_PANE - X:37 - Y:100 - Width:PARENT_RIGHT - 37 - Height:PARENT_BOTTOM - 100 - Visible: false - Children: - Checkbox@FULLSCREEN_CHECKBOX: - Id:FULLSCREEN_CHECKBOX - X:0 - Y:0 - Width:300 - Height:20 - Text:Fullscreen - Label@RESOLUTION_LABEL: - Id:RESOLUTION_LABEL - X:0 - Y:50 - Text: Window Resolution: - TextField@SCREEN_WIDTH: - Id:SCREEN_WIDTH - Text:Width - Width:50 - Height:25 - X:130 - Y:40 - MaxLength:5 - Label@X: - Id:X - Text:x - X:185 - Y:50 - TextField@SCREEN_HEIGHT: - Id:SCREEN_HEIGHT - Text:Height - Width:50 - Height:25 - X:195 - Y:40 - MaxLength:5 - Label@RESTART: - Id:RESTART - Text: Restart Game To Apply Changes - X:0 - Y:PARENT_BOTTOM - 30 - Container@DEBUG_PANE: - Id:DEBUG_PANE - X:37 - Y:100 - Width:PARENT_RIGHT - 37 - Height:PARENT_BOTTOM - 100 - Visible: false - Children: - Checkbox@PERFDEBUG_CHECKBOX: - Id:PERFDEBUG_CHECKBOX - X:0 - Y:0 - Width:300 - Height:20 - Text:Show Performance Information - Checkbox@SYNCREPORTS_CHECKBOX: - Id:SYNCREPORTS_CHECKBOX - X:0 - Y:30 - Width:300 - Height:20 - Text:Collect Sync Reports - Checkbox@GAMETIME_CHECKBOX: - Id:GAMETIME_CHECKBOX - X:0 - Y:60 - Width:300 - Height:20 - Text:Show Game Time Counter +Background@SETTINGS_MENU: + Id:SETTINGS_MENU + Delegate:SettingsMenuDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM- HEIGHT)/2 + Width: 450 + Height: 350 + Visible: true + Children: + Label@SETTINGS_LABEL_TITLE: + Id:SETTINGS_LABEL_TITLE + X:0 + Y:20 + Width:450 + Height:25 + Text:Settings + Align:Center + Bold:True + Button@BUTTON_CLOSE: + Id:BUTTON_CLOSE + X:PARENT_RIGHT - 180 + Y:PARENT_BOTTOM - 45 + Width:160 + Height:25 + Text:Close + Bold:True + Container@TAB_CONTAINER: + Id:TAB_CONTAINER + X:0 + Y:50 + Width:PARENT_RIGHT + Height:25 + Children: + Button@GENERAL: + Id:GENERAL + X:45 + Y:0 + Width:90 + Height:25 + Text:General + Bold:True + Button@AUDIO: + Id:AUDIO + X:135 + Y:0 + Width:90 + Height:25 + Text:Audio + Bold:True + Button@DISPLAY: + Id:DISPLAY + X:225 + Y:0 + Width:90 + Height:25 + Text:Display + Bold:True + Button@DEBUG: + Id:DEBUG + X:315 + Y:0 + Width:90 + Height:25 + Text:Debug + Bold:True + Container@GENERAL_PANE: + Id:GENERAL_PANE + X:37 + Y:100 + Width:PARENT_RIGHT - 37 + Height:PARENT_BOTTOM - 100 + Visible: true + Children: + Label@SETTINGS_PLAYER_NAME: + Id:SETTINGS_PLAYER_NAME + X:0 + Y:10 + Text: Player Name: + TextField@NAME: + Id:NAME + Text:Name + Width:139 + Height:25 + X:90 + Y:0 + MaxLength:16 + Checkbox@EDGE_SCROLL: + Id:EDGE_SCROLL + X:0 + Y:30 + Width:200 + Height:20 + Text: Enable Edge Scrolling + Checkbox@INVERSE_SCROLL: + Id:INVERSE_SCROLL + X:0 + Y:60 + Width:200 + Height:20 + Text: Invert Mouse Drag Scrolling + Container@AUDIO_PANE: + Id:AUDIO_PANE + X:37 + Y:100 + Width:PARENT_RIGHT - 37 + Height:PARENT_BOTTOM - 100 + Visible: false + Children: + Label@SOUND_VOLUME_LABEL: + Id:SOUND_VOLUME_LABEL + X:0 + Y:10 + Text: Sound Volume + Slider@SOUND_VOLUME: + Id:SOUND_VOLUME + X:100 + Y:0 + Width:250 + Height:20 + Ticks:5 + Label@MUSIC_VOLUME_LABEL: + Id:MUSIC_VOLUME_LABEL + X:0 + Y:40 + Text: Music Volume + Slider@MUSIC_VOLUME: + Id:MUSIC_VOLUME + X:100 + Y:30 + Width:250 + Height:20 + Ticks:5 + Container@DISPLAY_PANE: + Id:DISPLAY_PANE + X:37 + Y:100 + Width:PARENT_RIGHT - 37 + Height:PARENT_BOTTOM - 100 + Visible: false + Children: + Checkbox@FULLSCREEN_CHECKBOX: + Id:FULLSCREEN_CHECKBOX + X:0 + Y:0 + Width:300 + Height:20 + Text:Fullscreen + Label@RESOLUTION_LABEL: + Id:RESOLUTION_LABEL + X:0 + Y:50 + Text: Window Resolution: + TextField@SCREEN_WIDTH: + Id:SCREEN_WIDTH + Text:Width + Width:50 + Height:25 + X:130 + Y:40 + MaxLength:5 + Label@X: + Id:X + Text:x + X:185 + Y:50 + TextField@SCREEN_HEIGHT: + Id:SCREEN_HEIGHT + Text:Height + Width:50 + Height:25 + X:195 + Y:40 + MaxLength:5 + Label@RESTART: + Id:RESTART + Text: Restart Game To Apply Changes + X:0 + Y:PARENT_BOTTOM - 30 + Container@DEBUG_PANE: + Id:DEBUG_PANE + X:37 + Y:100 + Width:PARENT_RIGHT - 37 + Height:PARENT_BOTTOM - 100 + Visible: false + Children: + Checkbox@PERFDEBUG_CHECKBOX: + Id:PERFDEBUG_CHECKBOX + X:0 + Y:0 + Width:300 + Height:20 + Text:Show Performance Information + Checkbox@SYNCREPORTS_CHECKBOX: + Id:SYNCREPORTS_CHECKBOX + X:0 + Y:30 + Width:300 + Height:20 + Text:Collect Sync Reports + Checkbox@GAMETIME_CHECKBOX: + Id:GAMETIME_CHECKBOX + X:0 + Y:60 + Width:300 + Height:20 + Text:Show Game Time Counter