diff options
Diffstat (limited to 'stdin.go')
| -rw-r--r-- | stdin.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/stdin.go b/stdin.go new file mode 100644 index 0000000..9b9f794 --- /dev/null +++ b/stdin.go @@ -0,0 +1,74 @@ +package main + +import ( + "os" + "fmt" + "bufio" + "runtime/debug" + "strings" + "strconv" + + "go.wit.com/log" + "go.wit.com/lib/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) + } + } + } + } +} |
