implementation module menuwindowmenu



//	The definition and implementation of the WindowMenu. 

//	PA: implementation not required on Windows platform.



from	iostate import :: IOSt, :: PSt

import	windowhandle





/*	openWindowMenu creates the WindowMenu. This menu contains atleast the following elements:

	-	MenuItem "&Cascade":

			Reorder the current list of windows from left-top to right-bottom.

	-	MenuItem "Tile &Horizontally":

			Reorder the current list of windows from top to bottom.

	-	MenuItem "&Tile Vertically":

			Reorder the current list of windows from left to right.

	-	MenuSeparator

	-	RadioMenu:

			Display all current open windows (hidden and shown). Selection activates and

			shows the indicated window.

*/

openWindowMenu :: !(PSt .l) -> PSt .l

openWindowMenu pState = pState

	

/*	addWindowToWindowMenu adds a new item to the RadioMenu of the WindowMenu if present. 

	The Id argument is the id of the window that should be added, and the Title argument its title. 

*/

addWindowToWindowMenu :: !Id !Title !(PSt .l) -> PSt .l

addWindowToWindowMenu windowId windowTitle pState = pState



/*	removeWindowFromWindowMenu removes the window entry from the WindowMenu if present.

*/

removeWindowFromWindowMenu :: !Id !(IOSt .l) -> IOSt .l

removeWindowFromWindowMenu wId ioState = ioState



changeWindowInWindowMenu :: !Id !String !(IOSt .l) -> IOSt .l

changeWindowInWindowMenu wId title ioState = ioState



/*	validateWindowActivateForWindowMenu takes care that if this interactive process is an MDI process,

	and the WindowLSHandle represents a Windows instance that the WindowActivate function of the

	WindowLSHandle will select the proper RadioMenuItem of the WindowMenu if present before any other 

	actions are taken.

*/

validateWindowActivateForWindowMenu` :: !Id !Bool ![WindowAttribute *(.ls,PSt .p)] -> [WindowAttribute *(.ls,PSt .p)]

validateWindowActivateForWindowMenu` wId isMDI atts = atts



/*	PA: apparantly this function is not required.

validateWindowActivateForWindowMenu :: !Id !(WindowLSHandle .ls (PSt .l)) !(IOSt .l)

										-> (!WindowLSHandle .ls (PSt .l),  !IOSt .l)

validateWindowActivateForWindowMenu wId dlsH=:{wlsHandle=dH=:{whAtts,whKind}} ioState = (dlsH,ioState)

*/

