summaryrefslogtreecommitdiff
path: root/stdin.go
diff options
context:
space:
mode:
Diffstat (limited to 'stdin.go')
-rw-r--r--stdin.go99
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()
+ }
+}