reflex-dom/reflex-dom-core/test/HaltSpec.hs
Hamish Mackenzie 04a33a6720 Split into reflex-dom-core and reflex-dom
reflex-dom-core contains all the code that does not depend on WebKitGTK
2016-12-18 19:45:32 +13:00

28 lines
728 B
Haskell

{-# LANGUAGE FlexibleContexts #-}
import Control.Monad.IO.Class
import Data.Foldable
import GHCJS.DOM
import qualified Graphics.UI.Gtk as Gtk
import Reflex.Dom
import Reflex.Spider.Internal (SpiderHostFrame)
main :: IO ()
main = do
getFirstEventAndHalt return
putStrLn "stopped once"
forM_ [1 .. 1000] $ \i -> getFirstEventAndHalt return
putStrLn "stopped many times"
type SpiderM = Widget Spider (Gui Spider (WithWebView SpiderHost) SpiderHostFrame)
getFirstEventAndHalt :: (Event Spider () -> SpiderM (Event Spider ())) -> IO ()
getFirstEventAndHalt action = mainWidget $ do
tick <- getPostBuild
event <- action tick
webView <- askWebView
quit <- getQuitWidget
performEvent_ (quit <$ event)
return ()