hxournal-0.5: lib/Application/HXournal/Type/XournalState.hs
{-# LANGUAGE OverloadedStrings, TemplateHaskell #-}
module Application.HXournal.Type.XournalState where
import Application.HXournal.Device
import Application.HXournal.Type.Event
import Application.HXournal.Type.Enum
import Application.HXournal.Type.Canvas
import Application.HXournal.Type.Clipboard
import Application.HXournal.Type.Window
import Graphics.Xournal.Type.Select
import Graphics.Xournal.Type.Map
import Control.Monad.State
import Text.Xournal.Type
import Text.Xournal.Predefined
import Graphics.UI.Gtk hiding (Clipboard)
import Data.Maybe
import Data.Label
import Prelude hiding ((.), id)
type XournalStateIO = StateT HXournalState IO
data XournalState = ViewAppendState { unView :: XournalBBoxMap }
| SelectState { tempSelect :: TempXournalSelect }
data HXournalState = HXournalState { _xournalstate :: XournalState
, _currFileName :: Maybe FilePath
, _canvasInfoMap :: CanvasInfoMap
, _currentCanvas :: Int
, _frameState :: WindowConfig
, _rootWindow :: Widget
, _rootContainer :: Box
, _rootOfRootWindow :: Window
, _currentPenDraw :: PenDraw
, _clipboard :: Clipboard
, _callBack :: MyEvent -> IO ()
, _deviceList :: DeviceList
, _penInfo :: PenInfo
, _selectInfo :: SelectInfo
, _gtkUIManager :: UIManager
}
$(mkLabels [''HXournalState])
emptyHXournalState :: HXournalState
emptyHXournalState =
HXournalState
{ _xournalstate = ViewAppendState (mkXournalBBoxMapFromXournal emptyXournal)
, _currFileName = Nothing
, _canvasInfoMap = error "emptyHXournalState.canvasInfoMap"
, _currentCanvas = error "emtpyHxournalState.currentCanvas"
, _frameState = error "emptyHXournalState.frameState"
, _rootWindow = error "emtpyHXournalState.rootWindow"
, _rootContainer = error "emptyHXournalState.rootContainer"
, _rootOfRootWindow = error "emptyHXournalState.rootOfRootWindow"
, _currentPenDraw = emptyPenDraw
, _clipboard = emptyClipboard
, _callBack = error "emtpyHxournalState.callBack"
, _deviceList = error "emtpyHxournalState.deviceList"
, _penInfo = PenInfo PenWork predefined_medium ColorBlack
, _selectInfo = SelectInfo SelectRectangleWork
, _gtkUIManager = error "emptyHXournalState.gtkUIManager"
}