-- | -- Maintainer : judah.jacobson@gmail.com -- Stability : experimental -- Portability : portable (FFI) module System.Console.Terminfo.Effects( -- * Bell alerts bell,visualBell, -- * text effects 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"