module Examples.Grapefruit.Simple (
mainCircuit
) where
import Control.Applicative as Applicative
#if __GLASGOW_HASKELL__ >= 610
import Control.Arrow as Arrow
#else
import Control.Arrow as Arrow hiding (pure)
#endif
import FRP.Grapefruit.Signal.Discrete as DSignal
import FRP.Grapefruit.Signal.Segmented as SSignal
import FRP.Grapefruit.Record as Record
import Graphics.UI.Grapefruit.Comp as UIComp
import Graphics.UI.Grapefruit.Item as UIItem
import Graphics.UI.Grapefruit.Circuit as UICircuit
import Graphics.UI.Grapefruit.Backend.Std as StdUIBackend
mainCircuit :: (StdUIBackend uiBackend) => UICircuit Window uiBackend era () (DSignal era ())
mainCircuit = proc () -> do
rec let
title = pure "Simple"
text = SSignal.scan "*" (const . ('*' :)) push
X :& Closure ::= closure `With` X :& Push ::= push
<- window `with` just pushButton
-< X :& Title ::= title `With` X :& Text ::= text
returnA -< closure