{- This file is part of the package byline. It is subject to the license terms in the LICENSE file found in the top-level directory of this distribution and at git://pmade.com/byline/LICENSE. No part of the byline package, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the LICENSE file. -} -------------------------------------------------------------------------------- -- | Modifiers for the @Stylized@ type. module System.Console.Byline.Modifiers ( fg , bg , bold , underline , swapFgBg ) where -------------------------------------------------------------------------------- -- Library imports: import Data.Monoid -------------------------------------------------------------------------------- -- Byline imports: import System.Console.Byline.Internal.Color import System.Console.Byline.Internal.Types import System.Console.Byline.Stylized -------------------------------------------------------------------------------- -- The following is a kludge to avoid the "redundant import" warning -- when using GHC >= 7.10.x. This should be removed after we decide -- to stop supporting GHC < 7.10.x. import Prelude -------------------------------------------------------------------------------- -- | Set the foreground color. For example: -- -- @ -- "Hello World!" <> fg magenta -- @ fg :: Color -> Stylized fg c = modStylized (mempty {modColorFG = OnlyOne (Just c)}) -------------------------------------------------------------------------------- -- | Set the background color. bg :: Color -> Stylized bg c = modStylized (mempty {modColorBG = OnlyOne (Just c)}) -------------------------------------------------------------------------------- -- | Produce bold text. bold :: Stylized bold = modStylized (mempty {modBold = On}) -------------------------------------------------------------------------------- -- | Produce underlined text. underline :: Stylized underline = modStylized (mempty {modUnderline = On}) -------------------------------------------------------------------------------- -- | Produce swapped foreground/background text. swapFgBg :: Stylized swapFgBg = modStylized (mempty {modSwapFgBg = On})