termbox-bindings-hs-0.1.1: src/Termbox/Bindings/Hs/Internal/Attr.hs
module Termbox.Bindings.Hs.Internal.Attr
( Tb_attr
( Tb_attr,
TB_BOLD,
TB_REVERSE,
TB_UNDERLINE
),
)
where
import Data.Bits ((.|.))
import Data.Word (Word16)
import qualified Termbox.Bindings.C
-- | An attribute.
newtype Tb_attr
= Tb_attr Word16
deriving stock (Eq, Ord, Show)
instance Monoid Tb_attr where
mempty =
Tb_attr 0
instance Semigroup Tb_attr where
Tb_attr cx <> Tb_attr cy =
Tb_attr (cx .|. cy)
pattern TB_BOLD :: Tb_attr
pattern TB_BOLD <-
((== Tb_attr Termbox.Bindings.C._TB_BOLD) -> True)
where
TB_BOLD = Tb_attr Termbox.Bindings.C._TB_BOLD
pattern TB_REVERSE :: Tb_attr
pattern TB_REVERSE <-
((== Tb_attr Termbox.Bindings.C._TB_REVERSE) -> True)
where
TB_REVERSE = Tb_attr Termbox.Bindings.C._TB_REVERSE
pattern TB_UNDERLINE :: Tb_attr
pattern TB_UNDERLINE <-
((== Tb_attr Termbox.Bindings.C._TB_UNDERLINE) -> True)
where
TB_UNDERLINE = Tb_attr Termbox.Bindings.C._TB_UNDERLINE