{-# LANGUAGE Rank2Types #-} module Yi.UI.Common where import Yi.Editor data UI = UI { main :: IO () -- ^ Main loop , end :: Bool -> IO () -- ^ Clean up, and also terminate if given 'true' , suspend :: IO () -- ^ Suspend (or minimize) the program , refresh :: Editor -> IO () -- ^ Refresh the UI with the given state , userForceRefresh :: IO () -- ^ User force-refresh (in case the screen has been messed up from outside) , layout :: Editor -> IO Editor -- ^ Set window width and height , reloadProject :: FilePath -> IO () -- ^ Reload cabal project views } dummyUI :: UI dummyUI = UI { main = return () , end = const (return ()) , suspend = return () , refresh = const (return ()) , userForceRefresh = return () , layout = return , reloadProject = const (return ()) }