packages feed

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 ()