diff options
Diffstat (limited to 'stdin.go')
| -rw-r--r-- | stdin.go | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/stdin.go b/stdin.go new file mode 100644 index 0000000..fc2f2e5 --- /dev/null +++ b/stdin.go @@ -0,0 +1,99 @@ +package main + +import ( + "bufio" + "fmt" + "os" + "runtime/debug" + "strconv" + "strings" + + "go.wit.com/log" + "go.wit.com/toolkits/tree" + "go.wit.com/widget" +) + +func showOptions() { + 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") + fmt.Println("'p': panic plugin") + fmt.Println("'q': close plugin") + fmt.Println("") + fmt.Println("Enter the number of the widget to click:") + fmt.Print("Option: ") + fmt.Fprintf(os.Stderr, "Option:\n") + fmt.Fprintf(os.Stderr, "Option: ") +} + +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.SendToolkitPanic() + os.Exit(0) + return + } + }() + scanner := bufio.NewScanner(os.Stdin) + for scanner.Scan() { + if me.exit { + return + } + s := scanner.Text() + s = strings.TrimSuffix(s, "\n") + switch s { + case "l": + log.Log(NOW, "list widgets") + tree.ListWidgets() + case "b": + log.Log(NOW, "show buttons") + tree.ShowButtons() + case "g": + me.myTree.SendToolkitLoad("gocui") + case "a": + me.myTree.SendToolkitLoad("andlabs") + case "d": + me.myTree.SendEnableDebugger() + case "p": + debug.PrintStack() + me.myTree.SendToolkitPanic() + os.Exit(0) + return + case "q": + return + case "": + showOptions() + default: + i, _ := strconv.Atoi(s) + log.Log(NOW, "got input:", i) + n := tree.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.SendUserEvent(n) + case widget.Checkbox: + me.myTree.SendUserEvent(n) + default: + log.Warn("you haven't defined an event for", n.WidgetType) + } + } + } + showOptions() + } +} |
