public override void Initialize(Game game) { Root.ReturnedMessageBoxResult = MessageBoxResult.Awaiting; // Total width and height and X and Y Rectangle bounds = Primitives.GetMultiLineTextBounds(Text, new Rectangle(0, 0, 700, 400), Skin.Font); Height = bounds.Height + 106; Width = bounds.Width + 65; TopLeftX = Root.ScreenWidth / 2 - Width / 2; TopLeftY = Root.ScreenHeight / 2 - Height / 2; // Arranging buttons int numbuttons = 0; bool doOKButton = false; bool doYesButton = false; bool doNoButton = false; bool doCancelButton = false; if (ButtonsType == MessageBoxButtons.OK) { numbuttons = 1; doOKButton = true; } if (ButtonsType == MessageBoxButtons.OKCancel) { numbuttons = 2; doOKButton = true; doCancelButton = true; } if (ButtonsType == MessageBoxButtons.YesNo) { numbuttons = 2; doYesButton = true; doNoButton = true; } if (ButtonsType == MessageBoxButtons.YesNoCancel) { numbuttons = 3; doYesButton = true; doNoButton = true; doCancelButton = true; } int buttonwidth = 140; int buttonspace = 20; if (Width < numbuttons * (buttonwidth + buttonspace) + 100) { Width = numbuttons * (buttonwidth + buttonspace) + 100; } int buttonheight = 40; int buttony = TopLeftY + Height - 10 - buttonheight; int x = TopLeftX + Width / 2 - (int)(((buttonwidth + buttonspace) * (numbuttons)) - buttonspace) / 2; if (doOKButton) { Button b = new Button("OK", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += new Action <Button>(button_Click); Buttons.Add(b); x += buttonwidth + buttonspace; } if (doYesButton) { Button b = new Button("Yes", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += new Action <Button>(button_Click); Buttons.Add(b); x += buttonwidth + buttonspace; } if (doNoButton) { Button b = new Button("No", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += new Action <Button>(button_Click); Buttons.Add(b); x += buttonwidth + buttonspace; } if (doCancelButton) { Button b = new Button("Cancel", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += new Action <Button>(button_Click); Buttons.Add(b); x += buttonwidth + buttonspace; } base.Initialize(game); }
/// <summary> /// Initializes the MessageBoxPhase. Sets its bounds and creates its buttons. /// </summary> protected internal override void Initialize(Game game) { Root.ReturnedMessageBoxResult = MessageBoxResult.Awaiting; // Total width and height and X and Y Rectangle bounds = Primitives.GetMultiLineTextBounds(Text, new Rectangle(0, 0, 700, 400), FontFamily.Normal); Height = 500; Width = 1000; TopLeftX = Root.ScreenWidth / 2 - Width / 2; TopLeftY = Root.ScreenHeight / 2 - Height / 2; // Arranging buttons int numbuttons = 0; bool doOKButton = false; bool doYesButton = false; bool doNoButton = false; bool doCancelButton = false; const int buttonheight = 40; int buttony = TopLeftY + Height - 10 - buttonheight; if (ButtonsType == MessageBoxButtons.OK) { numbuttons = 1; doOKButton = true; } if (ButtonsType == MessageBoxButtons.OKCancel) { numbuttons = 2; doOKButton = true; doCancelButton = true; } if (ButtonsType == MessageBoxButtons.InputOKCancel) { numbuttons = 2; doOKButton = true; doCancelButton = true; textbox = new Textbox("", new Rectangle(TopLeftX + 10, buttony - 50, Width - 20, 40)); } if (ButtonsType == MessageBoxButtons.YesNo) { numbuttons = 2; doYesButton = true; doNoButton = true; } if (ButtonsType == MessageBoxButtons.YesNoCancel) { numbuttons = 3; doYesButton = true; doNoButton = true; doCancelButton = true; } const int buttonwidth = 140; const int buttonspace = 20; if (Width < numbuttons * (buttonwidth + buttonspace) + 100) { Width = numbuttons * (buttonwidth + buttonspace) + 100; } int x = TopLeftX + Width / 2 - (((buttonwidth + buttonspace) * (numbuttons)) - buttonspace) / 2; if (doOKButton) { Button b = new Button("OK", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += button_Click; buttons.Add(b); x += buttonwidth + buttonspace; } if (doYesButton) { Button b = new Button("Yes", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += button_Click; buttons.Add(b); x += buttonwidth + buttonspace; } if (doNoButton) { Button b = new Button("No", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += button_Click; buttons.Add(b); x += buttonwidth + buttonspace; } if (doCancelButton) { Button b = new Button("Cancel", new Rectangle(x, buttony, buttonwidth, buttonheight)); b.Click += button_Click; buttons.Add(b); } base.Initialize(game); }