packages feed

gtkimageview-0.11.1: demo/ImageViewer.hs

-- | WebKit browser demo.
--  Author      :  Andy Stewart
--  Copyright   :  (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>

-- | This simple image viewer base on GtkImageView
--
-- Usage:
--      imageviewer filepath
--
module Main where

import Graphics.UI.Gtk
import Graphics.UI.Gtk.ImageView
import System.Environment 

main = do
  -- Get program arguments.
  args <- getArgs
  case args of
    -- Display help
    ["--help"] -> 
       putStrLn $ "Welcome to Gtk2hs Image Viewer demo. :)\n\n" ++ 
                  "Usage: imageviewer filepath\n\n" ++
                  "  -- Gtk2hs Team"
    -- Start program.
    [path] -> viewer path
    _      -> putStrLn "Usage: imageviewer filepath"

viewer path = do
  initGUI
  win <- windowNew
  win `onDestroy` mainQuit
  windowSetDefaultSize win 600 400
  windowSetPosition win WinPosCenter

  view <- imageViewNew
  scrollWin1 <- imageScrollWinNew view -- use ImageView.ScrollWin instead ScrolledWindow in GTK
  pixbuf <- pixbufNewFromFile path
  imageViewSetPixbuf view (Just pixbuf) True
  win `containerAdd` scrollWin1

  -- Zoom out image.
  imageViewZoomOut view

  -- Show navigator window.
  nav <- imageNavNew view
  imageNavShowAndGrab nav 1000 800

  widgetShowAll win
  mainGUI