{-# LANGUAGE DeriveDataTypeable #-} module Main where import Data.Maybe import Data.Typeable import Barrie demoWidget :: Widget demoWidget = vbox [ui "demo chooser" dropList, ui "demo chooser" listView, ui "choice" (textLabel "Nothing chosen")] data Option = Trains | Planes | Automobiles deriving (Read, Show, Enum, Bounded, Typeable) type DemoState = Option type DemoGadget = Gadget DemoState demoGUI :: DemoGadget demoGUI = sectionG "demo gui" [enumChooserG "demo chooser" id const, displayG "choice" show] main = gtkMain demoGUI demoWidget Trains