module Main where import Control.Applicative import Control.Concurrent import Control.Concurrent.MVar import Control.GFunctor import Data.ReactiveValue import Graphics.UI.WX as WX import Graphics.UI.WXCore as WXCore import Graphics.UI.WX.Reactive main :: IO () main = start $ do -- View f <- frame [text := "Hello!"] btn <- button f [text := "Quit"] txt1 <- entry f [text := ""] txt2 <- entry f [text := ""] txt1T <- entryText txt1 txt2T <- entryText txt2 btnC <- buttonClick btn set f [layout := margin 20 $ floatCentre $ column 3 [widget txt1, widget txt2, widget btn]] -- Controller (involution reverse <$$> txt1T) =:= txt2T btnC =:> modRW (\s _ -> s ++ "a") txt2T