module System.Console.Terminfo.Effects(
bell,visualBell,
withStandout,withUnderline,
enterStandoutMode,
exitStandoutMode,
enterUnderlineMode,
exitUnderlineMode
) where
import System.Console.Terminfo.Base
wrapWith :: Capability TermOutput -> Capability TermOutput
-> Capability (TermOutput -> TermOutput)
wrapWith start end = do
s <- start
e <- end
return (\t -> s <#> t <#> e)
withStandout :: Capability (TermOutput -> TermOutput)
withStandout = wrapWith enterStandoutMode exitStandoutMode
withUnderline :: Capability (TermOutput -> TermOutput)
withUnderline = wrapWith enterUnderlineMode exitUnderlineMode
enterStandoutMode :: Capability TermOutput
enterStandoutMode = tiGetOutput1 "smso"
exitStandoutMode :: Capability TermOutput
exitStandoutMode = tiGetOutput1 "rmso"
enterUnderlineMode :: Capability TermOutput
enterUnderlineMode = tiGetOutput1 "smul"
exitUnderlineMode :: Capability TermOutput
exitUnderlineMode = tiGetOutput1 "rmul"
bell :: Capability TermOutput
bell = tiGetOutput1 "bel"
visualBell :: Capability TermOutput
visualBell = tiGetOutput1 "flash"