packages feed

xournal-render 0.6 → 0.6.0

raw patch · 5 files changed

+106/−45 lines, 5 files

Files

CHANGES view
@@ -6,3 +6,5 @@    * Double buffer support 0.5: 15 Jan 2012    * ZipperSelect support+0.6: 12 Feb 2012+   * Variable width support
src/Graphics/Xournal/Render/BBoxMapPDF.hs view
@@ -16,6 +16,7 @@  module Graphics.Xournal.Render.BBoxMapPDF where +import Control.Applicative import Graphics.Xournal.Render.Type  import Graphics.Xournal.Render.Generic import Graphics.Xournal.Render.Simple@@ -41,48 +42,74 @@  import Prelude hiding ((.),id,mapM, mapM_, sequence ) +-- |   type TPageBBoxMapPDF = TPageBBoxMapBkg BackgroundPDFDrawable  +-- | + type TXournalBBoxMapPDF = TXournalBBoxMapBkg BackgroundPDFDrawable  -- type TTempPageSelectPDF = GPage BackgroundPDFDrawable (TLayerSelectInPage []) TLayerBBox +-- | + type TTempPageSelectPDF = GPage BackgroundPDFDrawable (TLayerSelectInPage []) TLayerBBox +-- | + type TTempXournalSelectPDF = GSelect (IntMap TPageBBoxMapPDF) (Maybe (Int, TTempPageSelectPDF)) +-- | + newtype LyBuf = LyBuf { mbuffer :: Maybe Surface }  +-- | + type instance StrokeTypeFromLayer (TLayerBBoxBuf b) = StrokeBBox  +-- | + type TPageBBoxMapPDFBuf =    TPageBBoxMapBkgBuf BackgroundPDFDrawable LyBuf   +-- |   + type TXournalBBoxMapPDFBuf =    TXournalBBoxMapBkgBuf BackgroundPDFDrawable LyBuf   +-- |+ type TTempPageSelectPDFBuf =    GPage BackgroundPDFDrawable (TLayerSelectInPageBuf ZipperSelect) (TLayerBBoxBuf LyBuf) +-- | + type TTempXournalSelectPDFBuf =    GSelect (IntMap TPageBBoxMapPDFBuf) (Maybe (Int, TTempPageSelectPDFBuf)) +-- |   instance GCast (TLayerBBox)  (TLayerBBoxBuf LyBuf) where   gcast lyr = GLayerBuf (LyBuf Nothing) (get g_strokes lyr)  +-- | +   instance GCast Layer (TLayerBBoxBuf LyBuf) where   gcast lyr = gcast (fromLayer lyr :: TLayerBBox) +-- | +   emptyTLayerBBoxBufLyBuf :: IO (TLayerBBoxBuf LyBuf) emptyTLayerBBoxBufLyBuf = updateLayerBuf Nothing $ gcast emptyLayer  +-- | + instance GBackgroundable BackgroundPDFDrawable where    gFromBackground = bkgPDFFromBkg    gToBackground = bkgFromBkgPDF -+-- |   tlayerBBoxFromTLayerSelect :: TLayerSelect TLayerBBox -> TLayerBBox  tlayerBBoxFromTLayerSelect l = @@ -90,6 +117,8 @@     Left strs -> GLayer strs      Right alist -> GLayer . Prelude.concat $ interleave id unHitted alist +-- | + tlayerbufFromTLayerSelectBuf :: TLayerSelectBuf (TLayerBBoxBuf b)                                  -> (TLayerBBoxBuf b)  tlayerbufFromTLayerSelectBuf l = @@ -98,23 +127,18 @@     Right alist -> GLayerBuf (get g_buffer l) . Prelude.concat                     $ interleave id unHitted alist   +-- | +     instance GCast TTempPageSelectPDF TPageBBoxMapPDF where         gcast = tpageBBoxMapPDFFromTTempPageSelectPDF ---- | deprecated --tpageBBoxMapPDFFromTTempPageSelectPDF :: TTempPageSelectPDF -> TPageBBoxMapPDF-tpageBBoxMapPDFFromTTempPageSelectPDF p = -  let TLayerSelectInPage s others = get g_layers p -      s' = tlayerBBoxFromTLayerSelect s-  in GPage (get g_dimension p) (get g_background p) (gFromList (s':others))-   -     -      +-- |   +   instance GCast TTempPageSelectPDFBuf TPageBBoxMapPDFBuf where         gcast = tpageBBoxMapPDFBufFromTTempPageSelectPDFBuf       +-- | + tpageBBoxMapPDFBufFromTTempPageSelectPDFBuf :: TTempPageSelectPDFBuf                                                 -> TPageBBoxMapPDFBuf tpageBBoxMapPDFBufFromTTempPageSelectPDFBuf p = @@ -128,10 +152,13 @@       Select (O (Just sz)) = normalizedothers    in GPage (get g_dimension p) (get g_background p) (Select . O . Just $ replace s' sz)        +-- |   instance GCast TPageBBoxMapPDFBuf TTempPageSelectPDFBuf where   gcast = ttempPageSelectPDFBufFromTPageBBoxMapPDFBuf +-- | + ttempPageSelectPDFBufFromTPageBBoxMapPDFBuf :: TPageBBoxMapPDFBuf                                                -> TTempPageSelectPDFBuf ttempPageSelectPDFBufFromTPageBBoxMapPDFBuf p = @@ -145,13 +172,49 @@       currtemp = GLayerBuf (get g_buffer curr) (TEitherAlterHitted . Left . gToList . get g_bstrokes $ curr)   in  GPage (get g_dimension p) (get g_background p)              (TLayerSelectInPageBuf currtemp normalizedothers)-        -      ++-- | ++instance GCast TXournalBBoxMapPDFBuf Xournal where+  gcast = Xournal <$> get g_title +                  <*> gToList . fmap (toPageFromBuf gToBackground) . get g_pages +++-- | ++instance GCast TTempXournalSelectPDFBuf Xournal where +  gcast = Xournal <$> gselectTitle +                  <*> gToList . fmap (toPageFromBuf gToBackground) . gselectAll  + ----------------------      +----- Rendering    +-- |  +newtype InBBox a = InBBox a +-- |  +data InBBoxOption = InBBoxOption (Maybe BBox) ++-- | ++instance RenderOptionable (InBBox TLayerBBox) where+  type RenderOption (InBBox TLayerBBox) = InBBoxOption +  cairoRenderOption (InBBoxOption mbbox) (InBBox layer) +    = cairoDrawLayerBBox mbbox layer ++-- | +                             +instance RenderOptionable (InBBox TPageBBoxMapPDF) where+  type RenderOption (InBBox TPageBBoxMapPDF) = InBBoxOption +  cairoRenderOption (InBBoxOption mbbox) (InBBox page) = do +    cairoRenderOption (DrawPDFInBBox mbbox) (gbackground page, gdimension page) +    mapM_ (cairoDrawLayerBBox mbbox) . glayers $ page +++-- |+ mkTXournalBBoxMapPDF :: Xournal -> IO TXournalBBoxMapPDF mkTXournalBBoxMapPDF xoj = do    let pgs = xoj_pages xoj @@ -208,8 +271,7 @@           return bkgpdf #endif   --+-- |   mkTLayerBBoxBufFromNoBuf :: Dimension -> TLayerBBox -> IO (TLayerBBoxBuf LyBuf) mkTLayerBBoxBufFromNoBuf (Dim w h) lyr = do @@ -219,6 +281,8 @@   return $ GLayerBuf { gbuffer = LyBuf (Just sfc),                         gbstrokes = strs }  -- temporary +-- | + updateLayerBuf :: Maybe BBox -> TLayerBBoxBuf LyBuf -> IO (TLayerBBoxBuf LyBuf) updateLayerBuf mbbox lyr = do    case get g_buffer lyr of @@ -229,6 +293,7 @@       return lyr     _ -> return lyr     +-- |   mkTPageBBoxMapPDFBufFromNoBuf :: TPageBBoxMapPDF -> IO TPageBBoxMapPDFBuf mkTPageBBoxMapPDFBufFromNoBuf page = do @@ -238,6 +303,7 @@   ls' <- mapM (mkTLayerBBoxBufFromNoBuf dim) ls   return . GPage dim bkg . gFromList . gToList $ ls'       +-- |   mkTXournalBBoxMapPDFBufFromNoBuf :: TXournalBBoxMapPDF                                      -> IO TXournalBBoxMapPDFBuf@@ -277,32 +343,14 @@   GPage dim bkg . gFromList . gToList . fmap tlayerBBoxFromTLayerBBoxBuf $ ls     ------ Rendering    -newtype InBBox a = InBBox a--data InBBoxOption = InBBoxOption (Maybe BBox) --instance RenderOptionable (InBBox TLayerBBox) where-  type RenderOption (InBBox TLayerBBox) = InBBoxOption -  cairoRenderOption (InBBoxOption mbbox) (InBBox layer) -    = cairoDrawLayerBBox mbbox layer --                             -instance RenderOptionable (InBBox TPageBBoxMapPDF) where-  type RenderOption (InBBox TPageBBoxMapPDF) = InBBoxOption -  cairoRenderOption (InBBoxOption mbbox) (InBBox page) = do -    cairoRenderOption (DrawPDFInBBox mbbox) (gbackground page, gdimension page) -    mapM_ (cairoDrawLayerBBox mbbox) . glayers $ page -      -- | page within a bbox. not implemented bbox part.  cairoDrawPageBBoxPDF :: Maybe BBox -> TPageBBoxMapPDF -> Render () cairoDrawPageBBoxPDF _mbbox page = cairoRender page  -- This is temporary --+-- |   cairoDrawLayerBBoxBuf :: Maybe BBox -> TLayerBBoxBuf LyBuf -> Render () cairoDrawLayerBBoxBuf mbbox layer = do@@ -327,3 +375,13 @@   cairoRenderOption opt@(InBBoxOption mbbox) (InBBox page) = do      cairoRenderOption (DrawPDFInBBox mbbox) (get g_background page, get g_dimension page)     mapM_ (cairoRenderOption opt . InBBox) .  get g_layers $ page++++-- | deprecated ++tpageBBoxMapPDFFromTTempPageSelectPDF :: TTempPageSelectPDF -> TPageBBoxMapPDF+tpageBBoxMapPDFFromTTempPageSelectPDF p = +  let TLayerSelectInPage s others = get g_layers p +      s' = tlayerBBoxFromTLayerSelect s+  in GPage (get g_dimension p) (get g_background p) (gFromList (s':others))
src/Graphics/Xournal/Render/PDFBackground.hs view
@@ -12,31 +12,29 @@ -- Stability   : experimental -- Portability : GHC --+-----------------------------------------------------------------------------  module Graphics.Xournal.Render.PDFBackground where - import Control.Monad.State hiding (mapM_)-import Prelude hiding (mapM_)-- import Data.Monoid  import Data.ByteString hiding (putStrLn) import qualified Data.ByteString.Char8 as C- import Data.Xournal.Simple import Data.Xournal.BBox import Graphics.Xournal.Render.BBox  import Graphics.Xournal.Render.Generic-+-- #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-+import Prelude hiding (mapM_)   +-- | + data Context = Context { ctxt_domain :: ByteString                        , ctxt_filename :: ByteString  #ifdef POPPLER@@ -45,6 +43,8 @@                        , ctxt_doc :: Maybe () #endif                         }++-- |  data BackgroundPDFDrawable =    BkgPDFSolid { bkgpdf_color :: ByteString
src/Graphics/Xournal/Render/Type/Select.hs view
@@ -10,6 +10,7 @@ -- Stability   : experimental -- Portability : GHC --+-----------------------------------------------------------------------------  module Graphics.Xournal.Render.Type.Select where 
xournal-render.cabal view
@@ -1,5 +1,5 @@ Name:		xournal-render-Version:	0.6+Version:	0.6.0 Synopsis:       Xournal file renderer Description: 	Rendering library using cairo for xournal file format License: 	BSD3@@ -20,7 +20,7 @@  Library   hs-source-dirs: src-  ghc-options: 	-Wall -funbox-strict-fields -fno-warn-unused-do-bind+  ghc-options: 	-Wall -fno-warn-orphans -funbox-strict-fields -fno-warn-unused-do-bind   ghc-prof-options: -caf-all -auto-all    if flag(poppler)