{-
	Copyright (C) 2018 Dr. Alistair Ward

	This file is part of BishBosh.

	BishBosh is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	BishBosh is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with BishBosh.  If not, see <http://www.gnu.org/licenses/>.
-}
{- |
 [@AUTHOR@]	Dr. Alistair Ward

 [@DESCRIPTION@]	Define standard prefixes for log-messages.
-}

module BishBosh.Text.ShowColouredPrefix(
-- * Constants
	showsPrefixInfo,
	showsPrefixWarning,
	showsPrefixError
 ) where

import qualified	BishBosh.Attribute.ANSIColourCode	as Attribute.ANSIColourCode
import qualified	BishBosh.Attribute.PhysicalColour	as Attribute.PhysicalColour
import qualified	BishBosh.Text.ShowPrefix		as Text.ShowPrefix

-- | Show the prefix used to denote an information-message.
showsPrefixInfo :: ShowS
showsPrefixInfo :: ShowS
showsPrefixInfo	= GraphicsRendition -> GraphicsRendition -> ShowS
Attribute.ANSIColourCode.bracket (
	IsBold -> ANSIColourCode -> GraphicsRendition
Attribute.ANSIColourCode.selectGraphicsRendition IsBold
False (ANSIColourCode -> GraphicsRendition)
-> ANSIColourCode -> GraphicsRendition
forall a b. (a -> b) -> a -> b
$ PhysicalColour -> ANSIColourCode
Attribute.ANSIColourCode.mkFgColourCode PhysicalColour
Attribute.PhysicalColour.green
 ) (GraphicsRendition -> ShowS) -> GraphicsRendition -> ShowS
forall a b. (a -> b) -> a -> b
$ ShowS
Text.ShowPrefix.showsPrefixInfo GraphicsRendition
""

-- | Show the prefix used to denote a warning-message.
showsPrefixWarning :: ShowS
showsPrefixWarning :: ShowS
showsPrefixWarning	= GraphicsRendition -> GraphicsRendition -> ShowS
Attribute.ANSIColourCode.bracket (
	IsBold -> ANSIColourCode -> GraphicsRendition
Attribute.ANSIColourCode.selectGraphicsRendition IsBold
True (ANSIColourCode -> GraphicsRendition)
-> ANSIColourCode -> GraphicsRendition
forall a b. (a -> b) -> a -> b
$ PhysicalColour -> ANSIColourCode
Attribute.ANSIColourCode.mkFgColourCode PhysicalColour
Attribute.PhysicalColour.yellow
 ) (GraphicsRendition -> ShowS) -> GraphicsRendition -> ShowS
forall a b. (a -> b) -> a -> b
$ ShowS
Text.ShowPrefix.showsPrefixWarning GraphicsRendition
""

-- | Show the prefix used to denote an error-message.
showsPrefixError :: ShowS
showsPrefixError :: ShowS
showsPrefixError	= GraphicsRendition -> GraphicsRendition -> ShowS
Attribute.ANSIColourCode.bracket (
	IsBold -> ANSIColourCode -> GraphicsRendition
Attribute.ANSIColourCode.selectGraphicsRendition IsBold
True (ANSIColourCode -> GraphicsRendition)
-> ANSIColourCode -> GraphicsRendition
forall a b. (a -> b) -> a -> b
$ PhysicalColour -> ANSIColourCode
Attribute.ANSIColourCode.mkFgColourCode PhysicalColour
Attribute.PhysicalColour.red
 ) (GraphicsRendition -> ShowS) -> GraphicsRendition -> ShowS
forall a b. (a -> b) -> a -> b
$ ShowS
Text.ShowPrefix.showsPrefixError GraphicsRendition
""