//-----------------------------------------------------------------------------
// MessageBoxScreen.cs
// Adapted from NetworkStateManagement sample for Blackjack
// Shows a simple message box with OK button
//-----------------------------------------------------------------------------
using System;
using Microsoft.Xna.Framework;
using GameStateManagement;
using Microsoft.Xna.Framework.Graphics;
namespace Blackjack
{
///
/// A popup screen that displays a message and waits for the user to acknowledge.
///
class MessageBoxScreen : GameScreen
{
string message;
MenuEntry okMenuEntry;
public event EventHandler Accepted;
public MessageBoxScreen(string message)
{
this.message = message;
IsPopup = true;
}
public override void LoadContent()
{
okMenuEntry = new MenuEntry(Resources.OK);
okMenuEntry.Selected += OkMenuEntrySelected;
//MenuEntries.Add(okMenuEntry);
base.LoadContent();
}
void OkMenuEntrySelected(object sender, PlayerIndexEventArgs e)
{
Accepted?.Invoke(this, e);
ExitScreen();
}
public override void Draw(GameTime gameTime)
{
ScreenManager.FadeBackBufferToBlack(0.5f);
SpriteBatch spriteBatch = ScreenManager.SpriteBatch;
SpriteFont font = ScreenManager.Font;
Vector2 viewportSize = new Vector2(
ScreenManager.BaseScreenSize.X,
ScreenManager.BaseScreenSize.Y);
Vector2 textSize = font.MeasureString(message);
Vector2 position = (viewportSize - textSize) / 2;
spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, ScreenManager.GlobalTransformation);
spriteBatch.DrawString(font, message, position, Color.White);
spriteBatch.End();
}
}
}