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