module SplitF where import AllFudgets import HandleF(vHandleF,hHandleF) import LinearSplitP(linearSplitP) hSplitF :: F a a -> F b b -> F (Either a b) (Either a b) hSplitF = forall {a} {a} {b} {b}. Alignment -> F a a -> F b b -> F (Either a b) (Either a b) hSplitF' Alignment aCenter vSplitF :: F a a -> F b b -> F (Either a b) (Either a b) vSplitF = forall {a} {a} {b} {b}. Alignment -> F a a -> F b b -> F (Either a b) (Either a b) vSplitF' Alignment aCenter hSplitF' :: Alignment -> F a a -> F b b -> F (Either a b) (Either a b) hSplitF' = forall {a} {a} {b} {b}. LayoutDir -> Alignment -> F a a -> F b b -> F (Either a b) (Either a b) splitF' LayoutDir Horizontal vSplitF' :: Alignment -> F a a -> F b b -> F (Either a b) (Either a b) vSplitF' = forall {a} {a} {b} {b}. LayoutDir -> Alignment -> F a a -> F b b -> F (Either a b) (Either a b) splitF' LayoutDir Vertical splitF' :: LayoutDir -> Alignment -> F a a -> F b b -> F (Either a b) (Either a b) splitF' LayoutDir dir Alignment alignment F a a fud1 F b b fud2 = forall a b c d. F (Either (Either a b) c) (Either (Either c d) a) -> F b d loopCompThroughRightF forall a b. (a -> b) -> a -> b $ forall {a} {b} {c} {d}. [FRequest] -> K a b -> F c d -> F (Either a c) (Either b d) groupF [FRequest] startcmds forall {a} {b} {b} {a} {b}. K (Either (Either (Either a b) b) (Either a b)) (Either (Either (Either a Size) b) (Either a b)) sizeK forall a b. (a -> b) -> a -> b $ forall a b. Placer -> F a b -> F a b placerF (LayoutDir -> Distance -> Placer linearSplitP LayoutDir dir forall a. Num a => a defaultSep) forall a b. (a -> b) -> a -> b $ F a a fud1forall {a} {b} {c} {d}. F a b -> F c d -> F (Either a c) (Either b d) >+<forall {d}. F Size d hFforall {a} {b} {c} {d}. F a b -> F c d -> F (Either a c) (Either b d) >+<F b b fud2 where startcmds :: [FRequest] startcmds = [XCommand -> FRequest XCmd forall a b. (a -> b) -> a -> b $ [WindowAttributes] -> XCommand ChangeWindowAttributes [PixmapId -> WindowAttributes CWBackPixmap PixmapId parentRelative]] hF :: F Size d hF = forall {p}. LayoutDir -> p -> p -> p colinear LayoutDir dir forall {d}. Alignment -> F Size d hHandleF forall {d}. Alignment -> F Size d vHandleF Alignment alignment toLoop :: a -> Maybe (Message a (Either a b)) toLoop = forall a. a -> Maybe a Just forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. b -> Message a b High forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. a -> Either a b Left out :: a -> Maybe (Message a (Either a a)) out = forall a. a -> Maybe a Just forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. b -> Message a b High forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. b -> Either a b Right toHandle :: a -> Maybe (Message a (Either (Either (Either a a) b) b)) toHandle = forall {a} {a} {b}. a -> Maybe (Message a (Either a b)) toLoop forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. a -> Either a b Left forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. b -> Either a b Right toFud1 :: a -> Maybe (Message a (Either (Either (Either a b) b) b)) toFud1 = forall {a} {a} {b}. a -> Maybe (Message a (Either a b)) toLoop forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. a -> Either a b Left forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. a -> Either a b Left toFud2 :: a -> Maybe (Message a (Either (Either a a) b)) toFud2 = forall {a} {a} {b}. a -> Maybe (Message a (Either a b)) toLoop forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. b -> Either a b Right sizeK :: K (Either (Either (Either a b) b) (Either a b)) (Either (Either (Either a Size) b) (Either a b)) sizeK = forall hi ho. KSP hi ho -> K hi ho K (forall {t} {b}. (t -> Maybe b) -> SP t b mapFilterSP forall {a} {b} {b} {a} {b} {a}. Message FResponse (Either (Either (Either a b) b) (Either a b)) -> Maybe (Message a (Either (Either (Either a Size) b) (Either a b))) route) route :: Message FResponse (Either (Either (Either a b) b) (Either a b)) -> Maybe (Message a (Either (Either (Either a Size) b) (Either a b))) route = forall {t1} {t2} {t3}. (t1 -> t2) -> (t3 -> t2) -> Message t1 t3 -> t2 message forall {a} {a} {b} {b}. FResponse -> Maybe (Message a (Either (Either (Either a Size) b) b)) low forall {a} {b} {b} {a} {b} {a} {b}. Either (Either (Either a b) b) (Either a b) -> Maybe (Message a (Either (Either (Either a b) b) (Either a b))) high low :: FResponse -> Maybe (Message a (Either (Either (Either a Size) b) b)) low (LEvt (LayoutSize Size size)) = forall {a} {a} {a} {b} {b}. a -> Maybe (Message a (Either (Either (Either a a) b) b)) toHandle Size size low FResponse event = forall {p} {a}. p -> Maybe a ignore FResponse event high :: Either (Either (Either a b) b) (Either a b) -> Maybe (Message a (Either (Either (Either a b) b) (Either a b))) high = forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either forall {a} {b} {b} {a} {a}. Either (Either a b) b -> Maybe (Message a (Either a (Either a b))) fromLoop (forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either forall {a} {a} {b} {b} {b}. a -> Maybe (Message a (Either (Either (Either a b) b) b)) toFud1 forall {a} {a} {a} {b}. a -> Maybe (Message a (Either (Either a a) b)) toFud2) fromLoop :: Either (Either a b) b -> Maybe (Message a (Either a (Either a b))) fromLoop = forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either (forall a c b. (a -> c) -> (b -> c) -> Either a b -> c either forall {a} {a} {a} {b}. a -> Maybe (Message a (Either a (Either a b))) fromFud1 forall {p} {a}. p -> Maybe a ignore) forall {a} {a} {a} {a}. a -> Maybe (Message a (Either a (Either a a))) fromFud2 fromFud1 :: a -> Maybe (Message a (Either a (Either a b))) fromFud1 = forall {a} {a} {a}. a -> Maybe (Message a (Either a a)) out forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. a -> Either a b Left fromFud2 :: a -> Maybe (Message a (Either a (Either a a))) fromFud2 = forall {a} {a} {a}. a -> Maybe (Message a (Either a a)) out forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a b. b -> Either a b Right ignore :: p -> Maybe a ignore p _ = forall a. Maybe a Nothing