hxournal-0.5: 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 Graphics.Xournal.Type.Map
import Graphics.Xournal.Type.Select
import Control.Monad.Trans
import Control.Applicative
import Control.Category
import Data.Label
import Prelude hiding ((.),id)
modeChange :: MyEvent -> 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"
putSt
. set xournalstate (ViewAppendState (XournalBBoxMap <$> tx_pages $ txoj))
$ 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 (tempXournalSelectFromXournalBBoxMap xoj))
$ xstate
SelectState _ -> return ()
modeChange _ = return ()