DEFINITION MODULE DMAlerts;
(*******************************************************************
Module DMAlerts ('Dialog Machine' DM_V3.0)
Copyright (c) 1985-2006 by Andreas Fischlin and ETH Zurich.
Purpose Display alert messages.
Remarks Alerts serve the purpose of informing the user
of anomalies, such as exceptional or erroneous
program states or of some other warning messages
the user must recognize. He has to confirm that
he has read the message by clicking a so-called
"OK"-pushbutton before the program will allow
him to continue.
Method: An alert window can be brought up in
front of all other windows (ShowAlert or
ShowPredefinedAlert). It contains textual
messages describing the anomaly or error
condition which led to its dis- play. An alert
window is characterized by a double frame and
the absence of the title bar. The messages are
produced by calling a procedure provided by the
client program, which writes the text into the
alert window by calling procedure WriteMessage
(ShowAlert). In case of ShowPredefinedAlert,
all data displayed have to be provided in
advance in the form of a resource of type "ALRT"
(for details see Macintosh Development System
tools: "Dialog Creator" or "ResEdit"). To get
the user's attention the system sounds initially
a couple of beeps or flashes the menu bar in
case the current sound level has been set to
zero. Subsequently the user is forced into a
modal dialog, which can only be terminated by
clicking on the automatically added "OK"-push-
button or by pressing one of its keyboard
equivalents: the return or enter key.
This module belongs to the 'Dialog Machine'.
Programming
o Design
Andreas Fischlin 24/12/1985
o Implementation
Andreas Fischlin 24/12/1985
ETH Zurich
Systems Ecology
CHN E 35.1
Universitaetstrasse 16
8092 Zurich
SWITZERLAND
URLs:
<mailto:RAMSES@env.ethz.ch>
<http://www.sysecol.ethz.ch>
<http://www.sysecol.ethz.ch/SimSoftware/RAMSES>
Last revision of definition: 29/01/1987 AI
*******************************************************************)
(***************************************************************
Positions within the alert window are defined in coordinates of a
cell grid, which has its origin in the upper left corner (1,1) of
the alert window. Each cell has a fixed size, which fits a
character, and is denoted by its coordinates. Text is displayed
by using the system font Chicago only. Strings may be positioned
by specifying the coordinates of the first character. The
automatically added "OK"-pushbutton is placed in the lower right
corner and occupies 3 by 11 cells. A minimum alert size of 3 by
20 cells will be used always. The maximum dimensions are 19 by
62 cells.
***************************************************************)
PROCEDURE WriteMessage(line,col: CARDINAL; msg: ARRAY OF CHAR);
(*Start writing message text msg at cell (line,col)*)
PROCEDURE ShowAlert(height,width: CARDINAL; WriteMessages: PROC);
(*
Activates alert window with specified dimensions height
and width given in cell units. The message text is
produced by a call to procedure WriteMessages, which
must be provided by the client program. Typically it
contains calls to procedure WriteMessage.
*)
PROCEDURE ShowPredefinedAlert(fileName: ARRAY OF CHAR; alertID: INTEGER;
str1,str2,str3,str4: ARRAY OF CHAR);
(*
Activates a predefined alert window read from a Macintosh
resource of type "ALRT" with ID = alertID contained
in the resource fork of the file fileName. In case that
the fileName passed is empty, the default search strategy
to find the resource is followed. Up to four strings
(str1, str2, str3, str4) may be specified in order to insert
them at the place of the placeholders within the predefined
text. In order to perform correctly, the resource must
contain just one control item: an "OK"-pushbutton.
*)
END DMAlerts.