\section{Standard Module \sectcode{EasyDialogs}} \label{module-EasyDialogs} \stmodindex{EasyDialogs} The \code{EasyDialogs} module contains some simple dialogs for the Macintosh, modelled after the \code{stdwin} dialogs with similar names. All routines have an optional parameter \var{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 \code{EasyDialogs} module defines the following functions: \setindexsubitem{(in module EasyDialogs)} \begin{funcdesc}{Message}{str} A modal dialog with the message text \var{str}, which should be at most 255 characters long, is displayed. Control is returned when the user clicks ``OK''. \end{funcdesc} \begin{funcdesc}{AskString}{prompt\optional{\, default}} Ask the user to input a string value, in a modal dialog. \var{Prompt} is the promt message, the optional \var{default} arg is the initial value for the string. All strings can be at most 255 bytes long. \var{AskString} returns the string entered or \code{None} in case the user cancelled. \end{funcdesc} \begin{funcdesc}{AskYesNoCancel}{question\optional{\, default}} Present a dialog with text \var{question} and three buttons labelled ``yes'', ``no'' and ``cancel''. Return \code{1} for yes, \code{0} for no and \code{-1} for cancel. The default return value chosen by hitting return is \code{0}. This can be changed with the optional \var{default} argument. \end{funcdesc} \begin{funcdesc}{ProgressBar}{\optional{label\, maxval}} Display a modeless progress dialog with a thermometer bar. \var{Label} is the textstring displayed (default ``Working...''), \var{maxval} is the value at which progress is complete (default 100). The returned object has one method, \code{set(value)}, which sets the value of the progress bar. The bar remains visible until the object returned is discarded. The progress bar has a ``cancel'' button, but it is currently non-functional. \end{funcdesc} Note that \code{EasyDialogs} does not currently use the notification manager. This means that displaying dialogs while the program is in the background will lead to unexpected results and possibly crashes. Also, all dialogs are modeless and hence expect to be at the top of the stacking order. This is true when the dialogs are created, but windows that pop-up later (like a console window) may also result in crashes.