diff --git a/Manatee/Extension/ImageViewer/ImageView.hs b/Manatee/Extension/ImageViewer/ImageView.hs
--- a/Manatee/Extension/ImageViewer/ImageView.hs
+++ b/Manatee/Extension/ImageViewer/ImageView.hs
@@ -30,6 +30,7 @@
 import Data.Typeable
 import Graphics.UI.Gtk hiding (Statusbar, statusbarNew, get)
 import Graphics.UI.Gtk.Gdk.SerializedEvent
+import Manatee.Core.PageFrame
 import Manatee.Core.PageView
 import Manatee.Core.Types
 import Manatee.Extension.ImageViewer.ImageBuffer
@@ -41,7 +42,6 @@
 import Manatee.Toolkit.Gtk.Concurrent
 import Manatee.Toolkit.Gtk.Gtk
 import Manatee.Toolkit.Gio.Gio
-import Manatee.Toolkit.Gtk.ScrolledWindow
 import Paths_manatee_imageviewer
 import System.FilePath
 
@@ -50,7 +50,7 @@
 
 data ImageView =
     ImageView {imageViewPlugId          :: TVar PagePlugId
-              ,imageViewScrolledWindow  :: ScrolledWindow
+              ,imageViewFrame           :: PageFrame
               ,imageViewView            :: I.ImageView
               ,imageViewBuffer          :: ImageBuffer
               ,imageViewBroadcastChannel:: ViewChannel String}
@@ -67,8 +67,9 @@
 instance PageView ImageView where
     pageViewBuffer              = PageBufferWrap . imageViewBuffer
     pageViewPlugId              = imageViewPlugId
-    pageViewFocus               = widgetGrabFocus . imageViewView
+    pageViewBox                 = pageFrameBox . imageViewFrame
     pageViewScrolledWindow      = imageViewScrolledWindow
+    pageViewFocus               = widgetGrabFocus . imageViewView
     pageViewHandleKeyAction     = imageViewHandleKeyAction
 
 -- | The intervals of slide show (ms).
@@ -82,17 +83,17 @@
   pId <- newTVarIO plugId
 
   -- Create scrolled window.
-  scrolledWindow <- scrolledWindowNew_
+  pFrame <- pageFrameNewWithModeName (pageModeName $ imageBufferMode buffer)
   
   -- Load image.
   view <- I.imageViewNew
-  scrolledWindow `containerAdd` view
+  pageFrameAddChild pFrame view
 
   -- Duplicate broadcast channel.
   channel <- createViewChannel (imageBufferBroadcastChannel buffer) view
 
   -- Build image view.
-  let imageView = ImageView pId scrolledWindow view buffer channel
+  let imageView = ImageView pId pFrame view buffer channel
 
   -- Listen broadcast channel.
   imageViewListenChannel imageView
@@ -203,7 +204,7 @@
 imageViewUpdateZoomStatus :: ImageView -> IO ()
 imageViewUpdateZoomStatus view = do
   zoom <- liftM (\x -> floor $ formatFloatN x 2 * 100) $ I.imageViewGetZoom $ imageViewView view
-  pageViewUpdateInfoStatus view "Zoom" (" Zoom (" ++ show zoom ++ "%)")
+  pageFrameUpdateStatusbar (imageViewFrame view) "Zoom" (" Zoom (" ++ show zoom ++ "%)")
 
 -- | Find next image file under current directory.
 imageViewGetNextFile :: FilePath -> [FilePath] -> Maybe FilePath
@@ -241,12 +242,12 @@
   case sId of
     -- Stop slide show.
     Just id -> do
-      pageViewUpdateInfoStatus view "SlideShow" " SlideShow (off)"
+      pageFrameUpdateStatusbar (imageViewFrame view) "SlideShow" " SlideShow (off)"
       timeoutRemove id
       writeTVarIO slideShowId Nothing
     -- Start slide show.
     Nothing -> do
-      pageViewUpdateInfoStatus view "SlideShow" " SlideShow (on)"
+      pageFrameUpdateStatusbar (imageViewFrame view) "SlideShow" " SlideShow (on)"
       handlerId <- timeoutAdd (imageViewBrowseNext view >> return True) imageViewSlideShowInterval
       writeTVarIO slideShowId (Just handlerId)
 
@@ -257,6 +258,11 @@
   -- Get image path.
   path <- readTVarIO bufferPath
   setDesktopBackground path 100 Zoom
+
+-- | Scrolled window.
+imageViewScrolledWindow :: ImageView -> ScrolledWindow  
+imageViewScrolledWindow =
+  pageFrameScrolledWindow . imageViewFrame
 
 -- | Keymap.
 imageViewKeymap :: Map Text (ImageView -> IO ())
diff --git a/manatee-imageviewer.cabal b/manatee-imageviewer.cabal
--- a/manatee-imageviewer.cabal
+++ b/manatee-imageviewer.cabal
@@ -1,5 +1,5 @@
 name:			manatee-imageviewer
-version:		0.0.7
+version:		0.0.8
 Cabal-Version:	>= 1.6
 license:		GPL-3
 license-file:	LICENSE
@@ -30,7 +30,7 @@
   location:     http://patch-tag.com/r/AndyStewart/manatee-imageviewer
   
 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, gtk >= 0.12.0, glib >= 0.12.0,
                     gio >= 0.12.0, gtkimageview >= 0.12.0, text >= 0.7.1.0, 
                     regex-tdfa >= 1.1.2, filepath >= 1.1.0.3, utf8-string
