packages feed

lhae-0.0.3: src/Controller/Menu/File/NewClose.hs

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