using System; using System.Collections.Generic; using System.Text; using tAC_Engine.GUI; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework; namespace tAC_Engine.GUI { /// /// A GUIPanel that displays a message dialog. /// public class GUIMessageDialog : GUIPanel { protected GUIButton mOkayButton; protected GUIButton mCancelButton; protected SpriteFont font; protected GUILabel mMessageLabel; protected string mMessage; public GUIMessageDialog(string message) { mMessage = message; } /// /// Initializes text input and buttons. /// public override void Initialize() { mMessageLabel = new GUILabel(); mMessageLabel.Text = mMessage; Add(mMessageLabel); mOkayButton = new GUIButton(); mOkayButton.Text = "Okay"; mOkayButton.ButtonReleased += delegate { this.Remove(PanelResult.OKAY); }; Add(mOkayButton); mCancelButton = new GUIButton(); mCancelButton.Text = "Cancel"; mCancelButton.ButtonReleased += delegate { this.Remove(PanelResult.CANCEL); }; Add(mCancelButton); base.Initialize(); } public override void LoadContent() { font = mParentScreen.Content.Load(@"Fonts\Courier New"); mOkayButton.Font = font; mCancelButton.Font = font; Vector2 titleSize = font.MeasureString(mMessage); Size = new Vector2(Math.Max(titleSize.X, 200), Math.Max(titleSize.Y, 48)); Vector2 screenSize = new Vector2(mParentScreen.GraphicsDevice.PresentationParameters.BackBufferWidth, mParentScreen.GraphicsDevice.PresentationParameters.BackBufferHeight); Position = (screenSize - Size) / 2; mMessageLabel.Size = new Vector2(200, 24); mMessageLabel.Position = Position; mOkayButton.Size = new Vector2(100, 24); mOkayButton.Position = Position + new Vector2((Size.X / 2) - mOkayButton.Size.X, mMessageLabel.Size.Y); mCancelButton.Size = new Vector2(100, 24); mCancelButton.Position = Position + new Vector2(Size.X / 2, mMessageLabel.Size.Y); base.LoadContent(); } } }