hledger-iadd-1.3.2: src/Brick/Widgets/Border/Utils.hs
-- | Extensions to "Brick.Widgets.Border"
module Brick.Widgets.Border.Utils (borderLeft) where
import Brick
import Brick.Widgets.Border
import Graphics.Vty
import Lens.Micro
-- | Draw a vertical border on the left side of a widget.
borderLeft :: Widget n -> Widget n
borderLeft wrapped = Widget (hSize wrapped) (vSize wrapped) $ do
c <- getContext
wrappedRes <- render $ hLimit (c^.availWidthL - 1)
$ wrapped
let withBorder = vBorder <+> (Widget Fixed Fixed $ return wrappedRes)
width = wrappedRes^.imageL.to imageWidth + 1
height = wrappedRes^.imageL.to imageHeight
render $ hLimit width $ vLimit height $ withBorder