diff --git a/Manatee/Extension/PdfViewer/PdfView.hs b/Manatee/Extension/PdfViewer/PdfView.hs
--- a/Manatee/Extension/PdfViewer/PdfView.hs
+++ b/Manatee/Extension/PdfViewer/PdfView.hs
@@ -32,6 +32,7 @@
 import Graphics.UI.Gtk.Gdk.SerializedEvent
 import Graphics.UI.Gtk.Poppler.Document
 import Graphics.UI.Gtk.Poppler.Page
+import Manatee.Core.PageFrame
 import Manatee.Core.PageView 
 import Manatee.Core.Types
 import Manatee.Extension.PdfViewer.PdfBuffer
@@ -39,7 +40,6 @@
 import Manatee.Toolkit.General.STM
 import Manatee.Toolkit.Gtk.Event
 import Manatee.Toolkit.Gtk.Gtk
-import Manatee.Toolkit.Gtk.ScrolledWindow
 import Paths_manatee_pdfviewer
 import System.FilePath
 
@@ -47,7 +47,7 @@
 
 data PdfView =
     PdfView {pdfViewPlugId          :: TVar PagePlugId
-            ,pdfViewScrolledWindow  :: ScrolledWindow
+            ,pdfViewFrame           :: PageFrame
             ,pdfViewView            :: DrawingArea
             ,pdfViewBuffer          :: PdfBuffer
             ,pdfViewPageIndex       :: TVar Int
@@ -66,8 +66,9 @@
 instance PageView PdfView where
     pageViewBuffer              = PageBufferWrap . pdfViewBuffer
     pageViewPlugId              = pdfViewPlugId
-    pageViewFocus               = widgetGrabFocus . pdfViewView
+    pageViewBox                 = pageFrameBox . pdfViewFrame
     pageViewScrolledWindow      = pdfViewScrolledWindow
+    pageViewFocus               = widgetGrabFocus . pdfViewView
     pageViewHandleKeyAction     = pdfViewHandleKeyAction
 
 -- | New pdf viewer view.
@@ -77,14 +78,14 @@
   pId <- newTVarIO plugId
 
   -- Create UI frame.
-  scrolledWindow <- scrolledWindowNew_
+  pFrame <- pageFrameNewWithModeName (pageModeName $ pdfBufferMode buffer)
   
   -- Create view.
   view <- drawingAreaNew
-  scrolledWindowAddWithViewport scrolledWindow view
+  scrolledWindowAddWithViewport (pageFrameScrolledWindow pFrame) view
   pageIndex <- newTVarIO 0
   scale <- newTVarIO 0
-  let viewer = PdfView pId scrolledWindow view buffer pageIndex scale
+  let viewer = PdfView pId pFrame view buffer pageIndex scale
 
   -- Redraw signal.
   view `on` exposeEvent $ tryEvent $ pdfViewHandleExpose viewer
@@ -134,8 +135,8 @@
 
   -- Update page information.
   writeTVarIO pageIndex currentIndex
-  pageViewUpdateInfoStatus 
-    view 
+  pageFrameUpdateStatusbar
+    (pdfViewFrame view) 
     "Page" 
     ("Page (" ++ show (currentIndex + 1) ++ "/" ++ show (pdfBufferNPages buffer) ++ ")")
 
@@ -185,10 +186,9 @@
 
 -- | Get index range to render visible are.
 pdfViewGetIndexRange :: PdfView -> IO ([Int], Int)
-pdfViewGetIndexRange PdfView {pdfViewBuffer             = buffer
-                             ,pdfViewScale              = scale
-                             ,pdfViewScrolledWindow     = scrolledWindow} = do
-  vAdj       <- scrolledWindowGetVAdjustment scrolledWindow
+pdfViewGetIndexRange view@(PdfView {pdfViewBuffer             = buffer
+                                   ,pdfViewScale              = scale}) = do
+  vAdj       <- scrolledWindowGetVAdjustment $ pdfViewScrolledWindow view
   vAdjTop    <- adjustmentGetValue vAdj
   vAdjSize   <- adjustmentGetPageSize vAdj
   scaleValue <- readTVarIO scale
@@ -210,7 +210,7 @@
 pdfViewSetPage :: PdfView -> Int -> IO ()
 pdfViewSetPage view@(PdfView {pdfViewBuffer          = buffer
                              ,pdfViewScale           = viewScale
-                             ,pdfViewScrolledWindow  = scrolledWindow}) page = do
+                             }) page = do
   scaleValue   <- readTVarIO viewScale
   let (_, height) = pdfBufferPageSize buffer
       minIndex    = 0
@@ -218,14 +218,14 @@
   destIndex <-
     if page < minIndex
        then do
-         pageViewUpdateOutputStatus view "Out of bound, goto first page." Nothing 
+         pageFrameShowOutputbar (pdfViewFrame 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
+         pageFrameShowOutputbar (pdfViewFrame view) "Out of bound, goto last page." Nothing
          return maxIndex
        else return page
-  vAdj <- scrolledWindowGetVAdjustment scrolledWindow
+  vAdj <- scrolledWindowGetVAdjustment $ pdfViewScrolledWindow view
   adjustmentSetValue vAdj (i2d destIndex * height * scaleValue)
 
 -- | View next page.
@@ -258,3 +258,8 @@
   localInteractive view ("nGoto page (1 - " ++ show maxPage ++ ") : ") $ \ [page] -> do
     let pageNumber = read page :: Int
     pdfViewSetPage view (pageNumber - 1)
+
+-- | Scrolled window.
+pdfViewScrolledWindow :: PdfView -> ScrolledWindow    
+pdfViewScrolledWindow =
+    pageFrameScrolledWindow . pdfViewFrame
diff --git a/manatee-pdfviewer.cabal b/manatee-pdfviewer.cabal
--- a/manatee-pdfviewer.cabal
+++ b/manatee-pdfviewer.cabal
@@ -1,5 +1,5 @@
 name:			manatee-pdfviewer
-version:		0.0.7
+version:		0.0.8
 Cabal-Version:	>= 1.6
 license:		GPL-3
 license-file:	LICENSE
@@ -38,7 +38,7 @@
   location:     http://patch-tag.com/r/AndyStewart/manatee-pdfviewer
   
 Library
-     build-depends: base >= 4 && < 5, manatee-core >= 0.0.7, dbus-client >= 0.3 && < 0.4, stm >= 2.1.2.0,
+     build-depends: base >= 4 && < 5, manatee-core >= 0.0.8, 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, filepath
      exposed-modules:
