packages feed

netease-fm-1.2.2: exe/UI/Extra.hs

{-# LANGUAGE OverloadedStrings #-}

module UI.Extra (
  defaultAttributeMap
, mkFocused, mkUnfocused
, mkYellow
, mkCyan
, mkWhite
, mkRed
, mkGreen
, separator
) where

import           Brick.AttrMap
import           Brick.Widgets.Core
import           Brick.Types
import           Data.Default.Class
import qualified Graphics.Vty as V

mkFocused :: String -> String
mkFocused = (++) "~> "

mkUnfocused :: String -> String
mkUnfocused = (++) "   "

mkYellow :: Widget -> Widget
mkYellow = withAttr "yellow"

mkCyan :: Widget -> Widget
mkCyan = withAttr "cyan"

mkWhite :: Widget -> Widget
mkWhite = withAttr "white"

mkRed :: Widget -> Widget
mkRed = withAttr "red"

mkGreen :: Widget -> Widget
mkGreen = withAttr "green"

defaultAttributeMap :: AttrMap
defaultAttributeMap = attrMap def $ map comb [ ("yellow", V.yellow)
                                             , ("cyan", V.cyan)
                                             , ("white", V.white)
                                             , ("red", V.red)
                                             , ("green", V.green)
                                             ]
  where comb (t, c) = (t, V.defAttr `V.withForeColor` c)

separator :: Widget
separator = str " "