# 2.10 `EasyDialogs` -- Basic Macintosh dialogs

Availability: Macintosh.

The `EasyDialogs` module contains some simple dialogs for the Macintosh. All routines have an optional parameter id with which you can override the DLOG resource used for the dialog, as long as the item numbers correspond. See the source for details.

The `EasyDialogs` module defines the following functions:

`Message`(str)
  A modal dialog with the message text str, which should be at most 255 characters long, is displayed. Control is returned when the user clicks ``OK''.

`AskString`(prompt[, default])
  Ask the user to input a string value, in a modal dialog. prompt is the prompt message, the optional default arg is the initial value for the string. All strings can be at most 255 bytes long. `AskString()` returns the string entered or `None` in case the user cancelled.

`AskPassword`(prompt[, default])
  Ask the user to input a string value, in a modal dialog. Like `AskString`, but with the text shown as bullets. prompt is the prompt message, the optional default arg is the initial value for the string. All strings can be at most 255 bytes long. `AskString()` returns the string entered or `None` in case the user cancelled.

`AskYesNoCancel`(question[, default])
  Present a dialog with text question and three buttons labelled ``yes'', ``no'' and ``cancel''. Return `1` for yes, `0` for no and `-1` for cancel. The default return value chosen by hitting return is `0`. This can be changed with the optional default argument.

`ProgressBar`([title [, maxval[,label]]])
  Display a modeless progress dialog with a thermometer bar. title is the text string displayed (default ``Working...''), maxval is the value at which progress is complete (default `100`). label is the text that is displayed over the progress bar itself. The returned object has two methods, `set(value)`, which sets the value of the progress bar, and `label(text)`, which sets the text of the label. The bar remains visible until the object returned is discarded.

  The progress bar has a ``cancel'' button. [NOTE: how does the cancel button behave?]