wmShellF :: String -> F a b -> F (Either (Either String Bool) a) (Either () b) wmShellF' :: (ShellF -> ShellF) -> String -> F a b -> F (Either (Either String Bool) a) (Either () b)
wmShellF title fud
wmShellF is a version of shellF with an added interface to some simple
dynamic window management functions.
By default, wmShellF outputs a message instead of terminating the program when
the user tries to close the window. The customiser setDeleteWindowAction
can be used to change this as for shellF'.
Right x is input, x is passed to fud.
When Left (Left title) is input, the window title (displayed in
the title bar by the window manager) is change to title.
When Left (Right False) is input, the window is made invisible
(unmapped).
When Left (Right True) is input, the window is made invisible
(mapped).
fud outputs y, the composition outputs
Right y.
When WM_DELETE_WINDOW message is received from the window
manager (e.g., because the user pressed the close window button on the
title bar), the composition outputs Left ().
title :: Stringfud :: F a b
Some self explanatory datatypes should be provided for the window management messages.