content: {-# LANGUAGE OverloadedStrings #-}
  {-# LANGUAGE CPP #-}
  module Main where
  
  #if !(MIN_VERSION_base(4,11,0))
  import Data.Monoid ((<>))
  #endif
  import Brick
  import Brick.Widgets.Table
  import Brick.Widgets.Center (center)
  
  ui :: Widget ()
  ui = center $ renderTable leftTable <+>
                padLeft (Pad 5) (renderTable rightTableA <=>
                                 renderTable rightTableB <=>
                                 renderTable rightTableC)
  
  innerTable :: Table ()
  innerTable =
      surroundingBorder False $
      table [ [txt "inner", txt "table"]
            , [txt "is",    txt "here"]
            ]
  
  leftTable :: Table ()
  leftTable =
      alignCenter 1 $
      alignRight 2 $
      alignMiddle 2 $
      table [ [txt "Left",             txt "Center",      txt "Right"]
            , [txt "X",                txt "Some things", txt "A"]
            , [renderTable innerTable, txt "are",         txt "B"]
            , [txt "Z",                txt "centered",    txt "C"]
            ]
  
  rightTableA :: Table ()
  rightTableA =
      rowBorders False $
      setDefaultColAlignment AlignCenter $
      table [ [txt "A",     txt "without"]
            , [txt "table", txt "row borders"]
            ]
  
  rightTableB :: Table ()
  rightTableB =
      columnBorders False $
      setDefaultColAlignment AlignCenter $
      table [ [txt "A",       txt "table"]
            , [txt "without", txt "column borders"]
            ]
  
  rightTableC :: Table ()
  rightTableC =
      surroundingBorder False $
      rowBorders False $
      columnBorders False $
      setDefaultColAlignment AlignCenter $
      table [ [txt "A",       txt "table"]
            , [txt "without", txt "any borders"]
            ]
  
  main :: IO ()
  main = simpleMain ui
  