packages feed

barrie-0.4.1: demos/InnerDemo.hs

module Main where

import Barrie

demoWidget :: Widget
demoWidget = vbox [ui "fst label" (textLabel "fst label"),
                   ui "snd label" (textLabel "snd label"),
                   innerWidget]

innerWidget :: Widget
innerWidget = ui "textEditor" textBox

type DemoState = (String, String)

type DemoGadget = Gadget DemoState

type InnerState = String
type InnerGadget = Gadget InnerState

demoGUI :: DemoGadget
demoGUI = sectionG "demo gui" [displayG "fst label" fst,
                               displayG "snd label" snd,
                               childG "demo inner" fst (\ x (_,y) -> (x,y))
                                      innerGUI]

innerGUI :: InnerGadget
innerGUI = editorG "textEditor" id (\ s _ -> s)

main = do mapM_ putStrLn $ widgetToLines demoWidget
          --  print $ abstract demoGUI
          gtkMain demoGUI demoWidget ("change me", "can't change me")