wmShellF :: String -> F c d -> F ((String ⊕ Bool) ⊕ c) (() ⊕ d) wmShellF' :: (ShellF -> ShellF) -> String -> F c d -> F ((String ⊕ Bool) ⊕ c) (() ⊕ d)
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 visible
(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 :: String
fud :: F c d
Some self explanatory datatypes should be provided for the window management messages.