diff --git a/OpenRA.Mods.RA/Widgets/Delegates/MapChooserDelegate.cs b/OpenRA.Mods.RA/Widgets/Delegates/MapChooserDelegate.cs index 709aab2a12..200a1babb6 100644 --- a/OpenRA.Mods.RA/Widgets/Delegates/MapChooserDelegate.cs +++ b/OpenRA.Mods.RA/Widgets/Delegates/MapChooserDelegate.cs @@ -21,7 +21,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates { Map Map = null; Widget scrollpanel; - Widget itemTemplate; + ScrollItemWidget itemTemplate; [ObjectCreator.UseCtor] internal MapChooserDelegate( @@ -59,7 +59,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates bg.GetWidget("BUTTON_INSTALL").IsVisible = () => false; //bg.GetWidget("BUTTON_INSTALL").OnMouseUp = mi => InstallMap(); scrollpanel = bg.GetWidget("MAP_LIST"); - itemTemplate = scrollpanel.GetWidget("MAP_TEMPLATE"); + itemTemplate = scrollpanel.GetWidget("MAP_TEMPLATE"); EnumerateMaps(); } @@ -71,16 +71,12 @@ namespace OpenRA.Mods.RA.Widgets.Delegates var map = kv.Value; if (!map.Selectable) continue; - - var template = itemTemplate.Clone() as ContainerWidget; - template.Id = "MAP_{0}".F(map.Uid); - template.GetBackground = () => ((Map == map) ? "dialog2" : null); - template.OnMouseDown = mi => { if (mi.Button != MouseButton.Left) return false; Map = map; return true; }; - template.IsVisible = () => true; - template.GetWidget("TITLE").GetText = () => map.Title; - template.GetWidget("PLAYERS").GetText = () => "{0}".F(map.PlayerCount); - template.GetWidget("TYPE").GetText = () => map.Type; - scrollpanel.AddChild(template); + + var item = ScrollItemWidget.Setup(itemTemplate, () => Map == map, () => Map = map); + item.GetWidget("TITLE").GetText = () => map.Title; + item.GetWidget("PLAYERS").GetText = () => "{0}".F(map.PlayerCount); + item.GetWidget("TYPE").GetText = () => map.Type; + scrollpanel.AddChild(item); } } diff --git a/mods/ra/chrome/gamelobby.yaml b/mods/ra/chrome/gamelobby.yaml index 24dab1e5db..531e5d116e 100644 --- a/mods/ra/chrome/gamelobby.yaml +++ b/mods/ra/chrome/gamelobby.yaml @@ -450,9 +450,9 @@ Background@MAP_CHOOSER: Width:504 Height:474 Children: - Container@MAP_TEMPLATE: + ScrollItem@MAP_TEMPLATE: Id:MAP_TEMPLATE - Width:PARENT_RIGHT-28 + Width:PARENT_RIGHT-27 Height:25 X:2 Y:0