grapefruit-ui-0.1.0.7: Declarative user interface programming

Safe HaskellNone
LanguageHaskell98

Graphics.UI.Grapefruit.Circuit

Description

This module provides support for user interface circuits.

UI circuits are systems of UI items (for example, widgets). They are similar to ordinary circuits as provided by FRP.Grapefruit.Circuit but have the additional feature of providing parts of user interfaces.

Synopsis

Documentation

data UICircuit item uiBackend era i o Source #

The type of user interface circuits.

The item parameter is a phantom parameter which says which kind of items the circuit contains. It should be an instance of Item.

Instances

UIComp UICircuit Source # 

Methods

(|>>) :: Circuit era i tmp -> UICircuit item uiBackend era tmp o -> UICircuit item uiBackend era i o Source #

(>>|) :: UICircuit item uiBackend era i tmp -> Circuit era tmp o -> UICircuit item uiBackend era i o Source #

loop :: UICircuit item uiBackend era (i, feedback) (o, feedback) -> UICircuit item uiBackend era i o Source #

toUICircuit :: UICircuit item uiBackend era i o -> UICircuit item uiBackend era i o Source #

fromUIItem :: UIItem item uiBackend era i o -> UICircuit item uiBackend era i o Source #

Category * (UICircuit item uiBackend era) Source # 

Methods

id :: cat a a #

(.) :: cat b c -> cat a b -> cat a c #

Arrow (UICircuit item uiBackend era) Source # 

Methods

arr :: (b -> c) -> UICircuit item uiBackend era b c #

first :: UICircuit item uiBackend era b c -> UICircuit item uiBackend era (b, d) (c, d) #

second :: UICircuit item uiBackend era b c -> UICircuit item uiBackend era (d, b) (d, c) #

(***) :: UICircuit item uiBackend era b c -> UICircuit item uiBackend era b' c' -> UICircuit item uiBackend era (b, b') (c, c') #

(&&&) :: UICircuit item uiBackend era b c -> UICircuit item uiBackend era b c' -> UICircuit item uiBackend era b (c, c') #

ArrowLoop (UICircuit item uiBackend era) Source # 

Methods

loop :: UICircuit item uiBackend era (b, d) (c, d) -> UICircuit item uiBackend era b c #

fromCircuit :: Circuit era i o -> UICircuit item uiBackend era i o Source #

Converts an ordinary circuit into a user interface circuit that contains no items.

run Source #

Arguments

:: UIBackend uiBackend 
=> uiBackend

the user interface backend to use

-> (forall era. UICircuit Window uiBackend era i (DSignal era o))

the circuit to run

-> i

the input of the ciruit

-> IO o

an action running the circuit and returning the value of the output signal’s first occurence

Runs a user interface circuit.

run quits when the output signal of the circuit has a first occurence. The universal quantification of the circuit’s era parameter ensures that the circuit does not use signals which are produced outside the circuit and therefore avoids era mismatches.