manatee-pdfviewer 0.0.5 → 0.0.6
raw patch · 2 files changed
+43/−38 lines, 2 filesdep ~manatee-core
Dependency ranges changed: manatee-core
Files
Manatee/Extension/PdfViewer/PdfView.hs view
@@ -177,6 +177,7 @@ ,("p", pdfViewPrevPage) ,("N", pdfViewLastPage) ,("P", pdfViewFirstPage)+ ,("g", pdfViewGotoPage) ] -- | Get index range to render visible are.@@ -202,53 +203,55 @@ currIndex = truncate $ (vAdjTop + vAdjSize / 2) / height return ([startIndex..endIndex], currIndex) --- | View next page.-pdfViewNextPage :: PdfView -> IO ()-pdfViewNextPage PdfView {pdfViewBuffer = buffer- ,pdfViewPageIndex = pageIndex- ,pdfViewScale = viewScale- ,pdfViewScrolledWindow = scrolledWindow} = do- currentIndex <- readTVarIO pageIndex +-- | Set page.+pdfViewSetPage :: PdfView -> Int -> IO ()+pdfViewSetPage view@(PdfView {pdfViewBuffer = buffer+ ,pdfViewScale = viewScale+ ,pdfViewScrolledWindow = scrolledWindow}) page = do scaleValue <- readTVarIO viewScale let (_, height) = pdfBufferPageSize buffer- maxIndex = pdfBufferNPages buffer - 1- nextIndex - | currentIndex >= maxIndex - = maxIndex- | otherwise - = currentIndex + 1+ minIndex = 0+ maxIndex = pdfBufferNPages buffer - 1+ destIndex <-+ if page < minIndex+ then do+ pageViewUpdateOutputStatus view "Out of bound, goto first page." Nothing + return minIndex+ else if page > maxIndex+ then do+ pageViewUpdateOutputStatus view "Out of bound, goto last page." Nothing+ return maxIndex+ else return page vAdj <- scrolledWindowGetVAdjustment scrolledWindow- adjustmentSetValue vAdj (i2d nextIndex * height * scaleValue)+ adjustmentSetValue vAdj (i2d destIndex * height * scaleValue) +-- | View next page.+pdfViewNextPage :: PdfView -> IO ()+pdfViewNextPage view@(PdfView {pdfViewPageIndex = pageIndex}) = do+ currentIndex <- readTVarIO pageIndex + pdfViewSetPage view (currentIndex + 1)+ -- | View prev page. pdfViewPrevPage :: PdfView -> IO ()-pdfViewPrevPage PdfView {pdfViewBuffer = buffer- ,pdfViewPageIndex = pageIndex- ,pdfViewScale = viewScale- ,pdfViewScrolledWindow = scrolledWindow} = do+pdfViewPrevPage view@(PdfView {pdfViewPageIndex = pageIndex}) = do currentIndex <- readTVarIO pageIndex - scaleValue <- readTVarIO viewScale- let (_, height) = pdfBufferPageSize buffer- prevIndex - | currentIndex <= 0- = 0- | otherwise - = currentIndex - 1- vAdj <- scrolledWindowGetVAdjustment scrolledWindow- adjustmentSetValue vAdj (i2d prevIndex * height * scaleValue)+ pdfViewSetPage view (currentIndex - 1) -- | First page. pdfViewFirstPage :: PdfView -> IO ()-pdfViewFirstPage = pageViewScrollToTop+pdfViewFirstPage view = + pdfViewSetPage view 0 -- | Last page. pdfViewLastPage :: PdfView -> IO ()-pdfViewLastPage PdfView {pdfViewBuffer = buffer- ,pdfViewScale = viewScale- ,pdfViewScrolledWindow = scrolledWindow} = do- let (_, height) = pdfBufferPageSize buffer- maxIndex = pdfBufferNPages buffer - 1- scaleValue <- readTVarIO viewScale- vAdj <- scrolledWindowGetVAdjustment scrolledWindow- adjustmentSetValue vAdj (i2d maxIndex * height * scaleValue)+pdfViewLastPage view@(PdfView {pdfViewBuffer = buffer}) = do+ let maxIndex = pdfBufferNPages buffer - 1+ pdfViewSetPage view maxIndex +-- | Goto page.+pdfViewGotoPage :: PdfView -> IO ()+pdfViewGotoPage view@(PdfView {pdfViewBuffer = buffer}) = do+ let maxPage = pdfBufferNPages buffer+ localInteractive view ("nGoto page (1 - " ++ show maxPage ++ ") : ") $ \ [page] -> do+ let pageNumber = read page :: Int+ pdfViewSetPage view (pageNumber - 1)
manatee-pdfviewer.cabal view
@@ -1,5 +1,5 @@ name: manatee-pdfviewer-version: 0.0.5+version: 0.0.6 Cabal-Version: >= 1.6 license: GPL-3 license-file: LICENSE@@ -15,6 +15,8 @@ . And replace Chinese font string in file `/etc/fonts/conf.d/49-sansserif.conf' .+ Video at (Select 720p HD) at : <http://www.youtube.com/watch?v=weS6zys3U8k> <http://v.youku.com/v_show/id_XMjI2MDMzODI4.html>+ . Screenshots at : <http://goo.gl/MkVw> . Manual at : <http://haskell.org/haskellwiki/Manatee>@@ -36,7 +38,7 @@ location: http://patch-tag.com/r/AndyStewart/manatee-pdfviewer Library- build-depends: base >= 4 && < 5, manatee-core >= 0.0.5, dbus-client >= 0.3 && < 0.4, stm >= 2.1.2.0,+ build-depends: base >= 4 && < 5, manatee-core >= 0.0.6, dbus-client >= 0.3 && < 0.4, stm >= 2.1.2.0, containers >= 0.3.0.0, gtk-serialized-event >= 0.12.0, poppler >= 0.12.1, gtk >= 0.12.0, cairo >= 0.12.0, text >= 0.7.1.0, mtl >= 1.1.0.2, utf8-string exposed-modules: