public static int Query(int width, int height, string title, string message, params string [] buttons)
{
var d = new Dialog (width, height, title);
int clicked = -1, count = 0;
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;
}