packages feed

hxournal-0.6.0: 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.Render.Select
import Data.Xournal.Map

import Graphics.Xournal.Render.BBoxMapPDF

import Control.Monad.State
import Data.Xournal.Simple
import Data.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 :: TXournalBBoxMapPDF }
                  | SelectState { tempSelect :: TTempXournalSelectPDF }

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 
                                   , _isSaved :: Bool 
                                   } 


$(mkLabels [''HXournalState]) 

emptyHXournalState :: HXournalState 
emptyHXournalState = 
  HXournalState  
  { _xournalstate = ViewAppendState emptyTXournalBBoxMapPDF
                    -- (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"
  , _isSaved = False 
  }