fudgets-0.18.3: hsrc/combinators/ContDynF.hs
module ContDynF where
import Fudget
--import Xtypes
import Command
import FRequest
--import LayoutRequest(LayoutRequest)
--import Geometry
--import Message
import Spops(getSP,putSP,walkSP,pullSP)
import Path(here)
--import Direction
import Cont
--import Dynforkmerge
--import NullF(getMessageF,putMessageF)
--import LayoutDir
contDynF :: F a b -> Cont (F a d) b
contDynF (F sp) = fContWrap (contDynFSP sp)
contDynFSP :: FSP a b -> Cont (FSP a d) b
contDynFSP f c = cdf (pullSP f)
where cdf (outf,f') = out f' outf
out f' [] = getSP $ \msg -> cdf (walkSP f' msg)
out f' (x:xs) = case x of
High msg -> putSP (Low (here,XCmd DestroyWindow)) $ c msg
Low cmd -> putSP (Low cmd) $ out f' xs