package main import ( "go.wit.com/gui" "go.wit.com/lib/gadgets" "go.wit.com/log" ) // sent via -ldflags var VERSION string // This is the beginning of the binary tree of widgets var myGui *gui.Node // this is the primary window. If you close it, the program will exit var mainWindow *gui.Node // this is a basic window. the user can open and close it var basicWindow *gadgets.BasicWindow // the computers dropdown var computers *gui.Node // the colors combobox var colors *gui.Node func main() { myGui = gui.New().Default() // myGui.LoadToolkit("nocui") helloworld() basicWindow = makebasicWindow() // go will sit here until the window exits gui.Watchdog() } // This initializes the first window and some widgets func helloworld() { mainWindow = myGui.NewWindow("primary helloworld window").SetProgName("BASEWIN1") box := mainWindow.NewBox("vbox", false) group := box.NewGroup("choices") grid := group.NewGrid("gridiron", 2, 1) grid.NewButton("hello", func() { log.Println("world") }) grid.NewButton("show basic window", func() { basicWindow.Toggle() }) grid.NewLabel("a label") computers = grid.NewDropdown().SetProgName("COMPUTERS") computers.AddText("Atari 500") computers.AddText("Beagleboard") computers.AddText("Unmatched Rev B") computers.SetText("Beagleboard") colors = grid.NewCombobox().SetProgName("COLORS") colors.AddText("Cyan") colors.AddText("Magenta") colors.AddText("Yellow") colors.SetText("orange") grid.NewCheckbox("Checkers").SetProgName("CHECKERS") queryGroup := box.NewGroup("interact") queryGroup.NewButton("Which Computer?", func() { tmp := computers.String() log.Println("computer =", tmp) for i, s := range computers.Strings() { log.Println("has option", i, s) } }) queryGroup.NewButton("Which Color?", func() { tmp := colors.String() log.Println("color =", tmp) }) queryGroup.NewButton("Show apple", func() { apple.Show() }) queryGroup.NewButton("Hide apple", func() { apple.Hide() }) }