hoodle-parser-0.2: src/Text/Hoodle/Migrate/FromXournal.hs
{-# LANGUAGE RecordWildCards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Text.Hoodle.Migrate.FromXournal
-- Copyright : (c) 2011-2013 Ian-Woo Kim
--
-- License : BSD3
-- Maintainer : Ian-Woo Kim <ianwookim@gmail.com>
-- Stability : experimental
-- Portability : GHC
--
-----------------------------------------------------------------------------
module Text.Hoodle.Migrate.FromXournal
( mkHoodleFromXournal
) where
import Control.Applicative
import Control.Lens
--
import qualified Data.Xournal.Simple as X
import qualified Data.Hoodle.Simple as H
-- |
mkHoodleFromXournal :: X.Xournal -> IO H.Hoodle
mkHoodleFromXournal X.Xournal {..} =
set H.title xoj_title . set H.pages (map x2h4Page xoj_pages) <$> H.emptyHoodle
-- |
x2h4Page :: X.Page -> H.Page
x2h4Page X.Page {..} = H.Page
(x2h4dim page_dim)
(x2h4bkg page_bkg)
(map x2h4layer page_layers)
-- |
x2h4dim :: X.Dimension -> H.Dimension
x2h4dim X.Dim {..} = H.Dim dim_width dim_height
-- |
x2h4bkg :: X.Background -> H.Background
x2h4bkg X.Background {..} = H.Background bkg_type bkg_color bkg_style
x2h4bkg X.BackgroundPdf {..} =
H.BackgroundPdf bkg_type bkg_domain bkg_filename bkg_pageno
-- |
x2h4layer :: X.Layer -> H.Layer
x2h4layer X.Layer {..} = H.Layer (map x2h4stroke layer_strokes)
-- |
x2h4stroke :: X.Stroke -> H.Item -- H.Stroke
x2h4stroke X.Stroke {..} =
H.ItemStroke (H.Stroke stroke_tool stroke_color stroke_width stroke_data)
x2h4stroke X.VWStroke {..} =
H.ItemStroke (H.VWStroke stroke_tool stroke_color stroke_vwdata)