xournal-render 0.3 → 0.3.0.0
raw patch · 3 files changed
+56/−26 lines, 3 files
Files
- src/Graphics/Xournal/Render/BBoxMapPDF.hs +8/−3
- src/Graphics/Xournal/Render/PDFBackground.hs +21/−7
- xournal-render.cabal +27/−16
src/Graphics/Xournal/Render/BBoxMapPDF.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE OverloadedStrings, CPP #-} module Graphics.Xournal.Render.BBoxMapPDF where @@ -11,7 +11,9 @@ import Data.ByteString hiding (putStrLn, empty) import qualified Data.ByteString.Char8 as C hiding (empty)+#ifdef POPPLER import qualified Graphics.UI.Gtk.Poppler.Document as Poppler+#endif import Graphics.Rendering.Cairo @@ -21,8 +23,12 @@ } | BkgPDFPDF { bkgpdf_domain :: Maybe ByteString , bkgpdf_filename :: Maybe ByteString- , bkgpdf_pageno :: Int + , bkgpdf_pageno :: Int+#ifdef POPPLER , bkgpdf_popplerpage :: Maybe Poppler.Page +#else + , bkgpdf_popplerpage :: Maybe ()+#endif , bkgpdf_cairosurface :: Maybe Surface } @@ -48,7 +54,6 @@ bkgPDFFromBkg :: Background -> BackgroundPDFDrawable bkgPDFFromBkg (Background _t c s) = BkgPDFSolid c s bkgPDFFromBkg (BackgroundPdf _t md mf pn) = BkgPDFPDF md mf pn Nothing Nothing- emptyTXournalBBoxMapPDF :: TXournalBBoxMapPDF
src/Graphics/Xournal/Render/PDFBackground.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE ExistentialQuantification, OverloadedStrings, FlexibleInstances, FlexibleContexts, - TypeFamilies #-}+ TypeFamilies, CPP #-} module Graphics.Xournal.Render.PDFBackground where @@ -16,16 +16,21 @@ import Graphics.Xournal.Render.Generic import Graphics.Xournal.Render.Type -+#ifdef POPPLER import qualified Graphics.UI.Gtk.Poppler.Document as Poppler import qualified Graphics.UI.Gtk.Poppler.Page as PopplerPage+#endif import Graphics.Rendering.Cairo data Context = Context { ctxt_domain :: ByteString , ctxt_filename :: ByteString +#ifdef POPPLER , ctxt_doc :: Maybe Poppler.Document+#else + , ctxt_doc :: Maybe ()+#endif } @@ -51,6 +56,7 @@ -> StateT (Maybe Context) IO BackgroundPDFDrawable mkBkgPDF bkg = do let bkgpdf = bkgPDFFromBkg bkg+#ifdef POPPLER case bkgpdf of BkgPDFSolid _ _ -> return bkgpdf BkgPDFPDF md mf pn _ _ -> do @@ -62,6 +68,7 @@ liftIO $ putStrLn "hey" mdoc <- popplerGetDocFromFile f put $ Just (Context d f mdoc)+ case mdoc of Just doc -> do (mpg,msfc) <- popplerGetPageFromDoc doc pn @@ -73,14 +80,20 @@ popplerGetPageFromDoc doc pn Nothing -> return (Nothing,Nothing) return $ BkgPDFPDF md mf pn mpage msfc- +#else + return $ bkgpdf+#endif+++#ifdef POPPLER popplerGetDocFromFile :: (MonadIO m) => ByteString -> m (Maybe Poppler.Document) popplerGetDocFromFile fp = liftIO $ Poppler.documentNewFromFile (C.unpack ("file://localhost" `mappend` fp)) Nothing - - +#endif++#ifdef POPPLER popplerGetPageFromDoc :: (MonadIO m) => Poppler.Document -> Int -> m (Maybe Poppler.Page, Maybe Surface) popplerGetPageFromDoc doc pn = do @@ -96,7 +109,7 @@ fill PopplerPage.pageRender pg return (Just pg, Just sfc)-+#endif cairoRenderBackgroundPDFDrawable :: (BackgroundPDFDrawable,Dimension) -> Render ()@@ -110,8 +123,9 @@ setSourceRGBA 1 1 1 1 rectangle 0 0 w h fill+#ifdef POPPLER PopplerPage.pageRender pg- +#endif
xournal-render.cabal view
@@ -1,5 +1,5 @@ Name: xournal-render-Version: 0.3+Version: 0.3.0.0 Synopsis: Xournal file renderer Description: Rendering library using cairo for xournal file format License: BSD3@@ -14,23 +14,34 @@ type: git location: http://www.github.com/wavewave/xournal-render -+Flag Poppler+ Description: Enable poppler support+ Default: True Library hs-source-dirs: src ghc-options: -Wall -O2 -threaded -funbox-strict-fields -fno-warn-unused-do-bind ghc-prof-options: -caf-all -auto-all- Build-Depends: - base == 4.*, - mtl == 2.*, - containers == 0.4.*, - cairo == 0.12.*, - strict == 0.3.*, - bytestring == 0.9.*,- poppler == 0.12.*, - fclabels == 1.0.*, - xournal-types == 0.1.* - -- xournal-parser >= 0.2.0.999 && < 0.3, + if flag(poppler)+ Build-Depends: base == 4.*, + mtl == 2.*, + containers == 0.4.*, + cairo == 0.12.*, + strict == 0.3.*, + bytestring == 0.9.*,+ poppler == 0.12.*, + fclabels == 1.0.*, + xournal-types == 0.1.* + else+ Build-Depends: base == 4.*, + mtl == 2.*, + containers == 0.4.*, + cairo == 0.12.*, + strict == 0.3.*, + bytestring == 0.9.*,+ fclabels == 1.0.*, + xournal-types == 0.1.* + Exposed-Modules: Graphics.Xournal.Render.Simple Graphics.Xournal.Render.BBox@@ -39,8 +50,8 @@ Graphics.Xournal.Render.BBoxMapPDF Graphics.Xournal.Render.HitTest Graphics.Xournal.Render.Type---- Graphics.Xournal.Type.Map--- Graphics.Xournal.Type.Select--- Graphics.Xournal.Type.Generic++ if flag(poppler) + cpp-options: -DPOPPLER