module Controller.Menu.File.NewClose (newEventHandler,closeEventHandler,closeAllEventHandler) where import Control.Monad (when) import Controller (Controller,onView,onGridModel) import qualified Controller.Grid as Grid import qualified Controller.Menu.File.Save as Save import Model.Grid (getFilePath,isSaved) import View.Dialog.Simple (confirm) import View (isGridOpen) import I18n (__) newEventHandler,closeEventHandler,closeAllEventHandler :: Controller () newEventHandler = do Grid.new Grid.addNRows 5 Grid.addNColumns 5 closeEventHandler = do saved <- onGridModel isSaved when (not saved) $ do saveFirst <- do filePath <- onGridModel getFilePath case filePath of Nothing -> onView $ confirm (__ "Save?") (__ "Save?") Just f -> onView $ confirm (__ "Save?") $ unwords [__ "Save as",f,"?"] when saveFirst Save.saveEventHandler Grid.deleteCurrent closeAllEventHandler = do closeEventHandler stillOpen <- onView isGridOpen when stillOpen closeAllEventHandler