on efaaa52 help sign in
reflex-dom/test/HaltSpec.hs
27 lines 728 B history raw
1{-# LANGUAGE FlexibleContexts #-}
3import Control.Monad.IO.Class
4import Data.Foldable
5import GHCJS.DOM
6import qualified Graphics.UI.Gtk as Gtk
7import Reflex.Dom
8import Reflex.Spider.Internal (SpiderHostFrame)
10main :: IO ()
11main = do
12 getFirstEventAndHalt return
13 putStrLn "stopped once"
15 forM_ [1 .. 1000] $ \i -> getFirstEventAndHalt return
16 putStrLn "stopped many times"
18type SpiderM = Widget Spider (Gui Spider (WithWebView SpiderHost) SpiderHostFrame)
20getFirstEventAndHalt :: (Event Spider () -> SpiderM (Event Spider ())) -> IO ()
21getFirstEventAndHalt action = mainWidget $ do
22 tick <- getPostBuild
23 event <- action tick
24 webView <- askWebView
25 quit <- getQuitWidget
26 performEvent_ (quit <$ event)
27 return ()