using System; namespace Terminal { /// /// Message box displays a modal message to the user, with a title, a message and a series of options that the user can choose from. /// public class MessageBox { /// /// Runs the dialog bo /// /// The index of the selected button, or -1 if the user pressed ESC to close the dialog. /// Width for the window. /// Height for the window. /// Title for the query. /// Message to display, might contain multiple lines.. /// Array of buttons to add. public static int Query (int width, int height, string title, string message, params string [] buttons) { int lines = Label.MeasureLines (message, width); int clicked = -1, count = 0; var d = new Dialog (title, width, height); foreach (var s in buttons) { int n = count++; var b = new Button (s); b.Clicked += delegate { clicked = n; d.Running = false; }; d.AddButton (b); } if (message != null) { var l = new Label ((width - 4 - message.Length) / 2, 0, message); d.Add (l); } Application.Run (d); return clicked; } } }