module Rasa.Ext.StatusBar
( leftStatus
, centerStatus
, rightStatus
, statusBar
, left
, center
, right
, StatusBar(..)
) where
import Control.Lens
import Data.Typeable
import Data.Default
import qualified Data.Text as T
import Rasa.Ext
data StatusBar = StatusBar
{ _left :: [T.Text]
, _center :: [T.Text]
, _right :: [T.Text]
} deriving (Typeable, Show, Eq)
makeLenses ''StatusBar
instance Default StatusBar where
def = StatusBar
{ _left=[]
, _center=[]
, _right=[]
}
statusBar :: Scheduler ()
statusBar = beforeEvent $ bufDo clearStatus
clearStatus :: BufAction ()
clearStatus = do
bufExt.left .= []
bufExt.center .= []
bufExt.right .= []
leftStatus :: T.Text -> BufAction ()
leftStatus txt = bufExt.left %= (txt:)
centerStatus :: T.Text -> BufAction ()
centerStatus txt = bufExt.center %= (txt:)
rightStatus :: T.Text -> BufAction ()
rightStatus txt = bufExt.right %= (txt:)