fudgets-0.18.3: hsrc/layout/UserLayoutF.hs
module UserLayoutF where
import Fudget
import FRequest
--import Command
--import Event
import Geometry(Rect)
--import CompOps
import Spops(concatMapSP)
import CompSP(preMapSP,serCompSP)
import LayoutRequest
--import Message(Message(..))
userLayoutF :: F a b -> F (Either (Path,Rect) a) (Either (Path,LayoutMessage) b)
userLayoutF (F fud) = F{-ff-} (concatMapSP post `serCompSP` fud `preMapSP` pre)
where
pre msg =
case msg of
High (Right x) -> High x
High (Left (p,place)) -> Low (p,LEvt (LayoutPlace place))
Low pev -> Low pev
post msg =
case msg of
High x -> [High (Right x)]
Low (p,LCmd req) -> [High (Left (p,req))]
--Low d@(p,XCmd DestroyWindow) -> [Low d] --,High (Left (p,LayoutDestroy))]
Low pcmd -> [Low pcmd]