Reminderdefs.mesa;
Last Edited by: Teitelman, June 21, 1983 11:30 am
See Reminder.Tioga for documentation and examples of how to use the new reminder package.
DIRECTORY
IO USING [STREAM],
Rope USING [ROPE]
;
ReminderDefs: CEDAR DEFINITIONS = BEGIN
ParameterList: TYPE = LIST OF REF Parameter;
Parameter: TYPE = RECORD[class: ParameterClass, value: Rope.ROPE];
ParameterClass: TYPE = {text, repeat, duration, until, startTime, leadTime, message, iconFlavor, iconLabel, iconLabelType};
RegisterEvent: PROC [parameters: ParameterList ← NIL, scanThis: Rope.ROPENIL, out: IO.STREAM];
Registers the indicated event. parameters specify the corresponding options (see Reminder.tioga for details). In the case of more than one value on parameters for a particular parameterclass, the first one is taken. defaults can be used to supply additional, default values (i.e. these parameters are effectively appended to the end of parameters) as follows:
If parameters does not specify a startTime value, then scanThis will be scanned for a date and time.
Each word in scanThis that has been registered as a key word (see RegisterKeyWord below) will specify the corresponding parameters.
Finally, if there is no text parameter specified, then the entire rope scanThis will be used as the text of the reminder.
RegisterKeyWord: PROC [keyWord: Rope.ROPE, parameters: ParameterList];
associates a list of parameters with a key word. Keywords can be specified in the user's profile via the key "Reminder.KeyWords". For example, Reminder.KeyWords: "Forum: Leadtime: 15, IconFlavor: Meeting, IconLabel: Forum" says that the indicated parameters are to be associated with the keyword Forum.
ReadParameters: PROC [stream: IO.STREAM] RETURNS[ParameterList];
Error: ERROR [ec: ErrorCode, msg: Rope.ROPENIL];
ErrorCode: TYPE = {formatError, timeRopeFormatError, noReminderFile, timeNotSpecified};
END.