(******************************************************************************
*                                EVENT1  .DEF                                 *
*                              ABO Software Dep.                              *
*                                                                             *
* Purpose : To provide an event driven interface.                             *
*                                                                             *
*   Notes :                                                                   *
*                                                                             *
*         Version Date : 12/6/91                                              *
******************************************************************************)
DEFINITION MODULE EVENT1;

CONST
	MAXITEM = 12;
	
TYPE
	CLASS Event;
		Occured:BOOLEAN;
		PROCEDURE take():BOOLEAN;
		PROCEDURE test():BOOLEAN;
	END Event;

	CLASS Mouse(Event);
		X,Y:INTEGER;
		B:INTEGER;
		PROCEDURE take(VAR x,y:INTEGER):BOOLEAN;
		PROCEDURE test(VAR x,y:INTEGER):BOOLEAN;
		PROCEDURE make(b:INTEGER);
	END Mouse;

	CLASS Area(Mouse);
		Xmin,Ymin,Xmax,Ymax:INTEGER;
		PROCEDURE test(VAR x,y:INTEGER):BOOLEAN;
		PROCEDURE make(x0,y0,x1,y1:INTEGER);
	END Area;

	CLASS Item;
		Trigger:Area;
		Name:ARRAY[0..MAXITEM]OF CHAR;
		Task:PROC;
		PROCEDURE make(s:ARRAY OF CHAR;t:PROC);
		PROCEDURE try;
		PROCEDURE show(x,y:INTEGER);
	END Item;

	CLASS Menue;
		X,Y:INTEGER;
		N:INTEGER;
		E:ARRAY[0..8]OF Item;
		PROCEDURE try;
		PROCEDURE show;
		PROCEDURE add(s:ARRAY OF CHAR;t:PROC);
		PROCEDURE make(x,y:INTEGER);
	END Menue;
		
END EVENT1.
