-- replaces modules AlignF and SepF
module Spacer(module Spacer,Distance(..)) where
--import LayoutRequest
import Spacers
import Placer(spacer1F)

marginHVAlignF :: Distance -> Alignment -> Alignment -> F a b -> F a b
marginHVAlignF Distance
m Alignment
h Alignment
v = forall {a} {b}. Spacer -> F a b -> F a b
spacer1F forall a b. (a -> b) -> a -> b
$ Distance -> Alignment -> Alignment -> Spacer
marginHVAlignS Distance
m Alignment
h Alignment
v

alignF :: Size -> Size -> Alignment -> Alignment -> F a b -> F a b
alignF Size
uladd Size
bradd Alignment
halign Alignment
valign =
  forall {a} {b}. Spacer -> F a b -> F a b
spacer1F (Size -> Size -> Spacer
hvMarginS Size
uladd Size
bradd Spacer -> Spacer -> Spacer
`compS` Alignment -> Alignment -> Spacer
hvAlignS Alignment
halign Alignment
valign)

layoutModifierF :: (LayoutRequest -> LayoutRequest) -> F a b -> F a b
layoutModifierF = forall {a} {b}. Spacer -> F a b -> F a b
spacer1F forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LayoutRequest -> LayoutRequest) -> Spacer
layoutModifierS

noStretchF :: Bool -> Bool -> F a b -> F a b
noStretchF Bool
fh Bool
fv = forall {a} {b}. Spacer -> F a b -> F a b
spacer1F (Bool -> Bool -> Spacer
noStretchS Bool
fh Bool
fv)

sepF :: Size -> F a b -> F a b
sepF = forall {a} {b}. Spacer -> F a b -> F a b
spacer1F forall b c a. (b -> c) -> (a -> b) -> a -> c
. Size -> Spacer
sepS
marginF :: Distance -> F a b -> F a b
marginF = forall {a} {b}. Spacer -> F a b -> F a b
spacer1F forall b c a. (b -> c) -> (a -> b) -> a -> c
. Distance -> Spacer
marginS