{-# LANGUAGE TemplateHaskell #-} 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:)