Canvas MessageBox

From FlightGear wiki
Revision as of 15:51, 23 June 2014 by TheTom (talk | contribs) (First proper version. Examples, Severity levels...)
Jump to navigation Jump to search

Message boxes provide a simple way to report information and warnings or ask questions. In FlightGear 3.1+ using canvas.MessageBox with the Nasal scripting language, allows showing standard message boxes to the user.

Predefined Severity Levels/Icons

Icon Icon Name Standard MessageBox Description
Dialog-question.png "dialog-question"
canvas.MessageBox.question(
  <title>,
  <text>,
  cb = nil,
  buttons = canvas.MessageBox.Yes
          | canvas.MessageBox.No
);
Ask the user a (yes/no) question.
Dialog-info.png "dialog-info"
canvas.MessageBox.information(
  <title>,
  <text>,
  cb = nil,
  buttons = canvas.MessageBox.Ok
);
Show the user some information, with only the possiblity to close the dialog.
Dialog-warning.png "dialog-warning"
canvas.MessageBox.warning(
  <title>,
  <text>,
  cb = nil,
  buttons = canvas.MessageBox.Ok
);
Show the user a non critical warning, with only the possiblity to close the dialog.
Dialog-error.png "dialog-error"
canvas.MessageBox.critical(
  <title>,
  <text>,
  cb = nil,
  buttons = canvas.MessageBox.Ok
);
Notify the user of a critical error or failure, with only the possiblity to close the dialog.

Examples

Canvas-MessageBox-demo information.png
canvas.MessageBox.info("Success", "The operation has successfully completed.");
Canvas-MessageBox-demo question.png
canvas.MessageBox.question(
  "Do you want it?",
  "The question is: Do you want to get a real question?.",
  func(sel)
  {
    if( sel == canvas.MessageBox.Yes )
      print("I only know that the answer is 42.");
    else
      print("Ok, I will not give you a real question.");
  }
);
Canvas-MessageBox-demo warning dont-show-again.png
canvas.MessageBox.warning(
  "Warning...",
  "Have you read this warning? If you want it will not be shown again.",
  func(sel)
  {
    if( sel != canvas.MessageBox.Ok )
      return;

    print("You have been warned. Let the games begin...");
  },
    canvas.MessageBox.Ok
  | canvas.MessageBox.Cancel
  | canvas.MessageBox.DontShowAgain
);