{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Title where
import Data.Char
titleWidth :: Int
titleWidth = 80
titleWidthHalf1, titleWidthHalf2 :: Int
titleWidthHalf1 = titleWidth `div` 2
titleWidthHalf2 = titleWidth - titleWidthHalf1
mkTitle :: String -> String
mkTitle ttl =
replicate titleWidth '*' ++ "\n" ++
"*" ++ replicate (titleWidthHalf1 - 1 - s2) ' ' ++
ttl' ++ replicate (titleWidthHalf2 - 1 - s1) ' ' ++ "*\n" ++
replicate titleWidth '*' ++ "\n"
where
ttl' = toUpper <$> ttl
s = length ttl; s1 = s `div` 2; s2 = s - s1