package main import ( "os" "fmt" "bufio" "runtime/debug" "strings" "strconv" "go.wit.com/log" "go.wit.com/gui/widget" ) func simpleStdin() { defer func() { if r := recover(); r != nil { log.Warn("nocui YAHOOOO Recovered in simpleStdin()", r) log.Println("Recovered from panic:", r) log.Println("Stack trace:") debug.PrintStack() me.myTree.DoToolkitPanic() } }() scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { s := scanner.Text() s = strings.TrimSuffix(s, "\n") switch s { case "l": log.Log(NOW, "list widgets") me.treeRoot.ListWidgets() case "b": log.Log(NOW, "show buttons") me.treeRoot.ShowButtons() case "g": me.myTree.DoToolkitLoad("gocui") case "a": me.myTree.DoToolkitLoad("andlabs") case "d": me.myTree.DoEnableDebugger() case "": fmt.Println("") fmt.Println("Enter:") fmt.Println("'l': list all widgets") fmt.Println("'b': for buttons") fmt.Println("'g': load gocui plugin") fmt.Println("'a': load andlabs plugin") fmt.Println("'d': enable debugging") default: i, _ := strconv.Atoi(s) log.Log(NOW, "got input:", i) n := me.treeRoot.FindWidgetId(i) if (n != nil) { n.DumpWidget("found node") for i, s := range n.State.Strings { log.Warn("n.State.Strings =", i, s) } switch n.WidgetType { case widget.Root: log.Warn("this is the root widget") case widget.Dropdown: log.Warn("print out dropdown values here") case widget.Button: me.myTree.DoUserEvent(n) case widget.Checkbox: me.myTree.DoUserEvent(n) default: log.Warn("you haven't defined an event for", n.WidgetType) } } } } }