# 2.12 `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?]

`GetArgv`([optionlist[ commandlist[, addoldfile[, addnewfile[, addfolder[, id]]]]]])
  Displays a dialog which aids the user in constructing a command-line argument list. Returns the list in `sys.argv` format, suitable for passing as an argument to `getopt.getopt()`. addoldfile, addnewfile, and addfolder are boolean arguments. When nonzero, they enable the user to insert into the command line paths to an existing file, a (possibly) not-yet-existent file, and a folder, respectively. (Note: Option arguments must appear in the command line before file and folder arguments in order to be recognized by `getopt.getopt()`.) Arguments containing spaces can be specified by enclosing them within single or double quotes. A `SystemExit` exception is raised if the user presses the ``Cancel'' button.

  optionlist is a list that determines a popup menu from which the allowed options are selected. Its items can take one of two forms: optstr or `(optstr, descr)`. When present, descr is a short descriptive string that is displayed in the dialog while this option is selected in the popup menu. The correspondence between optstrs and command-line arguments is:

  optstr format | Command-line format
  --- | ---
  `x` | -x (short option)
  `x:` or `x=` | -x (short option with value)
  `xyz` | --xyz (long option)
  `xyz:` or `xyz=` | --xyz (long option with value)

  commandlist is a list of items of the form cmdstr or `(cmdstr, descr)`, where descr is as above. The cmdstrs will appear in a popup menu. When chosen, the text of cmdstr will be appended to the command line as is, except that a trailing "`:`" or "`=`" (if present) will be trimmed off.

  New in version 2.0.