using System; using System.Collections.Generic; using System.Linq; using Features.Demos; using MonoGame.Extended; using MonoGame.Extended.Gui; using MonoGame.Extended.Gui.Controls; namespace Features.Screens { public class SelectDemoScreen : Screen { private readonly IDictionary _demos; private readonly Action _loadDemo; public SelectDemoScreen(IDictionary demos, Action loadDemo, Action exitGameAction) { _demos = demos; _loadDemo = loadDemo; var grid = new UniformGrid(); foreach (var demo in _demos.Values.OrderBy(i => i.Name)) { var button = new Button() { Content = demo.Name, Margin = new Thickness(4), }; button.Clicked += (sender, args) => LoadDemo(demo); grid.Items.Add(button); } var closeButton = new Button() { Margin = 4, Content = "Close", }; closeButton.Clicked += (sender, args) => exitGameAction(); grid.Items.Add(closeButton); this.Content = grid; } public override void Dispose() { foreach (var demo in _demos.Values) demo.Dispose(); base.Dispose(); } private void LoadDemo(DemoBase demo) { _loadDemo(demo.Name); Hide(); } private void DialogDemo() { //var dialog = Skin.Create("dialog"); //var stackPanel = new GuiStackPanel //{ // Controls = // { // Skin.Create("label", c => // { // c.Text = "Are you sure you want to do that?"; // c.Margin = new Thickness(0, 20, 0, 0); // }), // Skin.Create("label", c => { c.Text = "If you do you'll be in some serious trouble."; }), // new GuiStackPanel // { // Orientation = GuiOrientation.Horizontal, // VerticalAlignment = VerticalAlignment.Bottom, // HorizontalAlignment = HorizontalAlignment.Centre, // Controls = // { // Skin.Create("white-button", c => // { // c.Text = "Yes"; // c.Width = 100; // c.Margin = new Thickness(2); // c.Offset = new Vector2(0, 20); // }), // Skin.Create("white-button", c => // { // c.Text = "No"; // c.Width = 100; // c.Margin = new Thickness(2); // c.Offset = new Vector2(0, 20); // }) // } // } // } //}; //dialog.Controls.Add(stackPanel); //dialog.Controls.Add(Skin.Create