Developing a Web Browser with Haskell

April 5, 2010

Using wxHtmlWindow with wxHaskell

Filed under: hsbrowser — Tags: , — gcarlos @ 5:59 pm

Hello, today I will show you how to use the wxHtmlWindow of wxWidgets. You would notice that it’s easy to do!!!

WxWidgets has the option to use a render engine for html in his applications, it has a lot of functions to use, like any other html browser, not so rich, but it’s ok. See this documentation.

wxHtmlWindow is not available on Graphics.UI.WX of wxHaskell, it is available  on WXCore, and we can use them only importing Graphics.UI.WXCore. We can use it directly but it depent of you. I will use a function that create the object:

htmlWindow parent props = do
phtml <- htmlWindowCreate parent idAny rectNull 0 “”
set phtml props
return phtml
Until now, we can use all the functions that provides WXCore for this object, we will use an special function htmlWindowLoadPage phtmlwin url, this function permit us to load a web page as his name indicate.
So that’s all, now we will make an graphic interface to use this panel htmlWindows, something easy to demostrate his utility.
Basically we need an entry text and a button to load the web page that is written in the text entry.
inp <- entry  f   [text := “”%5D
go   <- button f [text := “Get”, on command := showPage phtml inp]
I put a default page; the showPage function does what we were talking before.
showPage html inp = do
url  <- get inp text
htmlWindowLoadPage html url
return ()
And finally we I make a layout for this browser:
set f [layout := column 5 [ hfill $ row 5 [hfill $ widget inp , widget go ]
, fill  $ margin 5 $ widget phtml
That’s all for the interface, you can compile and use it. You can download the source code from here.

Blog at