packages feed

barrie-0.4.1: demos/ChooserDemo.hs

{-# 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