GtkTV-0.2.0: Gtk-based GUIs for Tangible Values

Safe HaskellNone




Gtk-based GUIs in the TV (tangible value) framework

This variation eliminates mdo by having MkI' produce a consumer of refresh actions rather than taking a refresh action as argument.


TV type specializations

gtv :: Out a -> a -> GTV aSource

Type specialization of tv

runGTV :: GTV a -> IO ()Source

Type specialization of runTV

runOut :: String -> Out a -> a -> ActionSource

runOutIO :: String -> Out a -> IO a -> ActionSource

Run a visualization on a constructed (IO-extracted) value. The action is executed just once, after the visualization is all set up, which allows for things like OpenGL shader compilation.

UI primitives

type R = FloatSource

sliderRIn :: (R, R) -> R -> In RSource

clockIn :: In RSource

A clock that updates every 1/60 second

rateSliderIn :: (R, R) -> R -> In RSource

Rate slider. Updates result (integral) 60 times per second. Specialization of rateSliderDtIn.

integralIn :: (VectorSpace v, Eq v, Scalar v ~ Float) => In v -> In vSource

Integral of an input. Updates result (integral) 60 times per second.


type Action = IO ()Source

Convenient shorthand

type Sink a = a -> ActionSource

Sink of information

type MkO' a = IO (Widget, Sink a, Action)Source

forget :: Functor f => f a -> f ()Source

forget2 :: Monad m => (w -> a -> m b) -> w -> a -> m ()Source