gtk-0.15.10: demo/embedded/Uzbl.hs
-- | This is program use uzbl embedded in window to render webpage.
-- Just simple model demo for view, haven't handle event or else.
--
-- You need install uzbl (git clone git://github.com/Dieterbe/uzbl.git) first.
--
-- How to use:
-- ./Uzbl default open Google page.
-- ./Uzbl url will open url you input
--
module Main where
import Graphics.UI.Gtk
import System.Process
import System.Environment
main :: IO ()
main = do
-- Init.
initGUI
-- Get program arguments.
args <- getArgs
let url = case args of
[arg] -> arg -- get user input url
_ -> "http://www.google.com" -- set default url
-- Create window.
window <- windowNew
windowSetDefaultSize window 900 600
windowSetPosition window WinPosCenter
windowSetOpacity window 0.8 -- this function need window-manager support Alpha channel in X11
-- Create socket.
socket <- socketNew
widgetShow socket -- must show before add to parent
window `containerAdd` socket
-- Get socket id.
socketId <- fmap (show . fromNativeWindowId) $ socketGetId socket
-- Start uzbl-core process.
runCommand $ "uzbl-core -s " ++ socketId ++ " -u " ++ url
-- Show.
window `onDestroy` mainQuit
widgetShowAll window
mainGUI