termbox-0.3.0: src/Termbox/Cells.hs
module Termbox.Cells
( Cells (..),
set,
)
where
import Data.Char (ord)
import Data.Semigroup (Semigroup)
import Termbox.Attr (attrToWord)
import Termbox.Cell (Cell (Cell))
import Termbox.Internal (tb_change_cell)
-- | A grid of cells. Create with 'set' and combine with ('<>').
newtype Cells
= Cells (IO ())
deriving {- newtype -} (Monoid, Semigroup)
-- | Set a single cell's value (column, then row).
set :: Int -> Int -> Cell -> Cells
set col row (Cell ch fg bg) =
Cells (tb_change_cell col row (fromIntegral (ord ch)) (attrToWord fg) (attrToWord bg))