module Graphics.Hoodle.Render.Type.Background where
import Data.ByteString
import Graphics.Rendering.Cairo
#ifdef POPPLER
import qualified Graphics.UI.Gtk.Poppler.Document as Poppler
#endif
import Data.Hoodle.BBox
import Data.Hoodle.Simple
import Prelude hiding (mapM_)
data Context = Context { ctxt_domain :: ByteString
, ctxt_filename :: ByteString
#ifdef POPPLER
, ctxt_doc :: Maybe Poppler.Document
#else
, ctxt_doc :: Maybe ()
#endif
}
data RBackground = RBkgSmpl
{ rbkg_color :: ByteString
, rbkg_style :: ByteString
, rbkg_cairosurface :: Maybe Surface }
| RBkgPDF
{ rbkg_domain :: Maybe ByteString
, rbkg_filename :: Maybe ByteString
, rbkg_pageno :: Int
#ifdef POPPLER
, rbkg_popplerpage :: Maybe Poppler.Page
#else
, rbkg_popplerpage :: Maybe ()
#endif
, rbkg_cairosurface :: Maybe Surface }
data RBkgOpt = RBkgDrawPDF
| RBkgDrawWhite
| RBkgDrawBuffer
| RBkgDrawPDFInBBox (Maybe BBox)
rbkg2Bkg :: RBackground -> Background
rbkg2Bkg (RBkgSmpl c s _) = Background "solid" c s
rbkg2Bkg (RBkgPDF d f n _ _ ) = BackgroundPdf "pdf" d f n
bkg2RBkg :: Background -> RBackground
bkg2RBkg (Background _t c s) = RBkgSmpl c s Nothing
bkg2RBkg (BackgroundPdf _t md mf pn) = RBkgPDF md mf pn Nothing Nothing