hxournal-0.6.2: lib/Application/HXournal/Coroutine/Mode.hs
module Application.HXournal.Coroutine.Mode where
import Application.HXournal.Type.Event
import Application.HXournal.Type.Coroutine
import Application.HXournal.Type.XournalState
import Application.HXournal.Accessor
--import Data.Foldable
import Data.Traversable
import Control.Monad.Trans
import Control.Category
import Data.Label
import Data.Xournal.Generic
import Graphics.Xournal.Render.BBoxMapPDF
import Prelude hiding ((.),id, mapM_, mapM)
modeChange :: MyEvent -> MainCoroutine () -- Iteratee MyEvent XournalStateIO ()
modeChange ToViewAppendMode = do
xstate <- getSt
let xojstate = get xournalstate xstate
case xojstate of
ViewAppendState _ -> return ()
SelectState txoj -> do
liftIO $ putStrLn "to view append mode"
let pages = get g_selectAll txoj
newpages <- liftIO $ mapM resetPageBuffers pages
putSt
. set xournalstate (ViewAppendState (GXournal (get g_selectTitle txoj) newpages ))
$ xstate
modeChange ToSelectMode = do
xstate <- getSt
let xojstate = get xournalstate xstate
case xojstate of
ViewAppendState xoj -> do
liftIO $ putStrLn "to select mode"
putSt
. set xournalstate (SelectState (GSelect (get g_title xoj) (gpages xoj) Nothing))
$ xstate
SelectState _ -> return ()
modeChange _ = return ()