public MainMenu (Application application, Action onPlayGame, CompositorColorCorrectionNode colorCorrectionNode) { this.application = application; this.onPlayGame = onPlayGame; ValidMessages = new[] { (int) MessageId.WindowResize, (int) MessageId.UpdateLocale }; application.MessageManager += this; canvas = application.RendererContext.Canvas; var input = new FreezingArcherInput(application, application.MessageManager); input.Initialize (canvas); canvas.SetSize(application.Window.Size.X, application.Window.Size.Y); canvas.ShouldDrawBackground = false; settings = new SettingsMenu (application, canvas, colorCorrectionNode); tutorial = new TutorialMenu (application, canvas); background = new ImagePanel (canvas); background.ImageName = "Content/MainMenu.jpg"; updateBackground(); exitButton = new Button (canvas); exitButton.Text = Localizer.Instance.GetValueForName("quit_game"); exitButton.Width = BUTTON_WIDTH; exitButton.X = 40; exitButton.Y = canvas.Height - exitButton.Height - 60; exitButton.Clicked += (sender, arguments) => application.Window.Close (); settingsButton = new Button (canvas); settingsButton.Text = Localizer.Instance.GetValueForName("settings"); settingsButton.Width = BUTTON_WIDTH; settingsButton.X = 40; settingsButton.Y = exitButton.Y - settingsButton.Height - 40; settingsButton.Clicked += (sender, arguments) => settings.Show(); tutorialButton = new Button (canvas); tutorialButton.Text = Localizer.Instance.GetValueForName("tutorial"); tutorialButton.Width = BUTTON_WIDTH; tutorialButton.X = 40; tutorialButton.Y = settingsButton.Y - tutorialButton.Height - 40; tutorialButton.Clicked += (sender, arguments) => tutorial.Show(); startButton = new Button (canvas); startButton.Text = Localizer.Instance.GetValueForName("start_game"); startButton.Width = BUTTON_WIDTH; startButton.X = 40; startButton.Y = tutorialButton.Y - startButton.Height - 40; startButton.Clicked += (sender, arguments) => { application.MessageManager.UnregisterMessageConsumer(this); application.MessageManager.UnregisterMessageConsumer(settings); settings.Destroy(); canvas.Dispose(); onPlayGame(); }; acagamicsFoo = new ImagePanel (canvas); acagamicsFoo.ImageName = "Content/figure_color.png"; acagamicsFoo.Width = 64; acagamicsFoo.Height = 106; acagamicsFoo.X = canvas.Width - acagamicsFoo.Width - 10; acagamicsFoo.Y = canvas.Height - acagamicsFoo.Height - 10; }