DEFINITION MODULE MaintenancePages;

	(********************************************************)
	(*							*)
	(*	Support for "maintenance page" screen output	*)
	(*							*)
	(*  Programmer:		P. Moylan			*)
	(*  Last edited:	12 March 1993			*)
	(*  Status:		OK				*)
	(*							*)
	(********************************************************)

FROM Windows IMPORT
    (* type *)	Window;

TYPE MaintenancePage;	(* is private *)

PROCEDURE CreateMaintenancePage (VAR (*OUT*) page: MaintenancePage);

    (* Creates a new maintenance page.	*)

PROCEDURE Associate (w: Window;  page: MaintenancePage);

    (* Before calling this procedure, both w and page must have been	*)
    (* created.  This procedure ensures that window w is visible on	*)
    (* the screen only when the given maintenance page is active.	*)
    (* The association lasts until the window is closed or the page	*)
    (* is removed.							*)

PROCEDURE RemoveMaintenancePage (VAR (*INOUT*) page: MaintenancePage);

    (* Destroys all associations between the given page and its screen	*)
    (* windows (but does not close the windows), and permanently	*)
    (* removes this page from the collection of maintenance pages.	*)

END MaintenancePages.
