Copyright (C) 1994, Digital Equipment Corp.
by Ken Brooks; Trexle/M3 by Marc H. Brown
MODULE AnyEvent;
IMPORT VBT;
PROCEDURE FromKey (READONLY event: VBT.KeyRec): Key =
BEGIN
RETURN NEW(Key, key := event);
END FromKey;
PROCEDURE FromMouse (READONLY event: VBT.MouseRec): Mouse =
BEGIN
RETURN NEW(Mouse, mouse := event);
END FromMouse;
PROCEDURE FromPosition (READONLY event: VBT.PositionRec):
Position =
BEGIN
RETURN NEW(Position, position := event);
END FromPosition;
PROCEDURE FromMisc (READONLY event: VBT.MiscRec): Misc =
BEGIN
RETURN NEW(Misc, misc := event);
END FromMisc;
PROCEDURE TimeStamp (anyevent: T): VBT.TimeStamp =
BEGIN
TYPECASE anyevent OF
| Key (key) => RETURN key.key.time;
| Mouse (mouse) => RETURN mouse.mouse.time;
| Position (position) => RETURN position.position.time;
| Misc (misc) => RETURN misc.misc.time;
ELSE <* ASSERT(FALSE) *>
END;
END TimeStamp;
BEGIN
END AnyEvent.