diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index 58c9a9b3c9..9fd3df9b19 100755 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -201,6 +201,7 @@ + diff --git a/OpenRA.Game/Widgets/Delegates/ReplayBrowserDelegate.cs b/OpenRA.Game/Widgets/Delegates/ReplayBrowserDelegate.cs new file mode 100644 index 0000000000..1481136279 --- /dev/null +++ b/OpenRA.Game/Widgets/Delegates/ReplayBrowserDelegate.cs @@ -0,0 +1,21 @@ +#region Copyright & License Information +/* + * Copyright 2007-2010 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see LICENSE. + */ +#endregion + +namespace OpenRA.Widgets.Delegates +{ + public class ReplayBrowserDelegate : IWidgetDelegate + { + [ObjectCreator.UseCtor] + public ReplayBrowserDelegate( [ObjectCreator.Param] Widget widget ) + { + /* todo */ + } + } +} diff --git a/OpenRA.Mods.RA/Widgets/Delegates/MainMenuButtonsDelegate.cs b/OpenRA.Mods.RA/Widgets/Delegates/MainMenuButtonsDelegate.cs index 2762301e14..353e09fba3 100755 --- a/OpenRA.Mods.RA/Widgets/Delegates/MainMenuButtonsDelegate.cs +++ b/OpenRA.Mods.RA/Widgets/Delegates/MainMenuButtonsDelegate.cs @@ -21,14 +21,15 @@ namespace OpenRA.Mods.RA.Widgets.Delegates static bool FirstInit = true; [ObjectCreator.UseCtor] - public MainMenuButtonsDelegate( [ObjectCreator.Param] Widget widget ) + public MainMenuButtonsDelegate([ObjectCreator.Param] Widget widget) { // Main menu is the default window - 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; }; + 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_REPLAY_VIEWER").OnMouseUp = mi => { Widget.OpenWindow("REPLAYBROWSER_BG"); return true; }; + widget.GetWidget("MAINMENU_BUTTON_QUIT").OnMouseUp = mi => { Game.Exit(); return true; }; var version = widget.GetWidget("VERSION_STRING"); diff --git a/mods/ra/chrome/mainmenu.yaml b/mods/ra/chrome/mainmenu.yaml index 190bb0aee8..60f75c19f8 100644 --- a/mods/ra/chrome/mainmenu.yaml +++ b/mods/ra/chrome/mainmenu.yaml @@ -1,285 +1,294 @@ -Background@MAINMENU_BG: - Id:MAINMENU_BG - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:250 - Height:290 - Delegate:MainMenuButtonsDelegate - Children: - Background@MOTD_BG: - Id:MOTD_BG - X:0 - PARENT_LEFT + WINDOW_RIGHT/3 - Y:0 - PARENT_TOP + 44 - Width:WINDOW_RIGHT/3 - Height:30 - Background:dialog4 - Children: - ScrollingText@MOTD_SCROLLER: - Id:MOTD_SCROLLER - X:15 - Y:2 - Width:PARENT_RIGHT - 30 - Height:25 - ScrollRate:8 - Text:Welcome to OpenRA. Enjoy your stay. - Background@MOTD_LABEL_BG - Id:MOTD_LABEL_BG - X:0 - PARENT_LEFT + (WINDOW_RIGHT/16)*7 - Y:0 - PARENT_TOP + 15 - Width:(WINDOW_RIGHT/16)*2 - Height:30 - Background:dialog4 - Children: - Label@MOTD_LABEL - Id:MOTD_LABEL - X:0 - Y:2 - Width:(WINDOW_RIGHT/16)*2 - Height:25 - Text:Message of the Day - Align:Center - Bold:True - 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 - 65 - Width:400 - Height:70 - 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 - 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 - ScrollPanel@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:330 + Delegate:MainMenuButtonsDelegate + Children: + Background@MOTD_BG: + Id:MOTD_BG + X:0 - PARENT_LEFT + WINDOW_RIGHT/3 + Y:0 - PARENT_TOP + 44 + Width:WINDOW_RIGHT/3 + Height:30 + Background:dialog4 + Children: + ScrollingText@MOTD_SCROLLER: + Id:MOTD_SCROLLER + X:15 + Y:2 + Width:PARENT_RIGHT - 30 + Height:25 + ScrollRate:8 + Text:Welcome to OpenRA. Enjoy your stay. + Background@MOTD_LABEL_BG + Id:MOTD_LABEL_BG + X:0 - PARENT_LEFT + (WINDOW_RIGHT/16)*7 + Y:0 - PARENT_TOP + 15 + Width:(WINDOW_RIGHT/16)*2 + Height:30 + Background:dialog4 + Children: + Label@MOTD_LABEL + Id:MOTD_LABEL + X:0 + Y:2 + Width:(WINDOW_RIGHT/16)*2 + Height:25 + Text:Message of the Day + Align:Center + Bold:True + 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_REPLAY_VIEWER: + Id:MAINMENU_BUTTON_REPLAY_VIEWER + X:45 + Y:230 + Width:160 + Height:25 + Text: Replay Viewer + Bold: True + Button@MAINMENU_BUTTON_QUIT: + Id:MAINMENU_BUTTON_QUIT + X:45 + Y:270 + 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 - 65 + Width:400 + Height:70 + 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/replaybrowser.yaml b/mods/ra/chrome/replaybrowser.yaml new file mode 100644 index 0000000000..66cfb49265 --- /dev/null +++ b/mods/ra/chrome/replaybrowser.yaml @@ -0,0 +1,94 @@ +Background@REPLAYBROWSER_BG: + Id:REPLAYBROWSER_BG + Delegate:ReplayBrowserDelegate + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:700 + Height:410 + Children: + Label@REPLAYBROWSER_LABEL_TITLE: + Id:REPLAYBROWSER_LABEL_TITLE + X:0 + Y:20 + Width:PARENT_RIGHT + Height:25 + Text:Choose Replay + Align:Center + Bold:True + ListBox@REPLAY_LIST: + Id:REPLAY_LIST + X:20 + Y:50 + Width:390 + Height:300 + Children: + Label@REPLAY_TEMPLATE: + Id:REPLAY_TEMPLATE + Width:PARENT_RIGHT-28 + Height:25 + ClickThrough:false + X:2 + Y:0 + Visible:false + Container@REPLAY_INFO: + Id:REPLAY_INFO + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Visible:false + Children: + MapPreview@MAP_PREVIEW: + Id:MAP_PREVIEW + X:PARENT_RIGHT-241 + Y:30 + Width:192 + Height:192 + Label@MAP_TITLE_LABEL: + Id:MAP_TITLE_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:250 + Align:Right + Width:70 + Height:20 + Text:Map: + Bold:True + Label@MAP_TITLE: + Id:MAP_TITLE + X:PARENT_RIGHT - 195 + Y:250 + Align:Left + Width:70 + Height:20 + Label@MAP_PLAYERS_LABEL: + Id:MAP_PLAYERS_LABEL + X:PARENT_RIGHT - 200 - WIDTH + Y:270 + Align:Right + Width:70 + Height:20 + Text:Players: + Bold:True + Label@MAP_PLAYERS: + Id:MAP_PLAYERS + X:PARENT_RIGHT - 195 + Y:270 + Align:Left + Width:70 + Height:20 + Button@WATCH_BUTTON: + Id:WATCH_BUTTON + X:PARENT_RIGHT - 140 - 130 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Watch + Bold:True + Button@CANCEL_BUTTON: + Id:CANCEL_BUTTON + X:PARENT_RIGHT - 140 + Y:PARENT_BOTTOM - 45 + Width:120 + Height:25 + Text:Cancel + Bold:True diff --git a/mods/ra/mod.yaml b/mods/ra/mod.yaml index 6726528409..3b70eb98bc 100644 --- a/mods/ra/mod.yaml +++ b/mods/ra/mod.yaml @@ -57,6 +57,7 @@ ChromeLayout: mods/ra/chrome/settings.yaml mods/ra/chrome/gamelobby.yaml mods/ra/chrome/serverbrowser.yaml + mods/ra/chrome/replaybrowser.yaml Weapons: mods/ra/weapons.yaml