summaryrefslogtreecommitdiff
path: root/junk1.go
diff options
context:
space:
mode:
Diffstat (limited to 'junk1.go')
-rw-r--r--junk1.go210
1 files changed, 210 insertions, 0 deletions
diff --git a/junk1.go b/junk1.go
new file mode 100644
index 0000000..de8c104
--- /dev/null
+++ b/junk1.go
@@ -0,0 +1,210 @@
+// Copyright 2014 The gocui Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "syscall"
+
+ "github.com/awesome-gocui/gocui"
+
+ "go.wit.com/log"
+)
+
+// handle ctrl+z
+func handle_ctrl_z(g *gocui.Gui, v *gocui.View) error {
+ gocui.Suspend()
+ log.Info("got ctrl+z")
+ syscall.Kill(syscall.Getpid(), syscall.SIGSTOP)
+ log.Info("got ctrl+z syscall() done")
+ gocui.Resume()
+ return nil
+}
+
+func defaultKeybindings(g *gocui.Gui) error {
+ if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil {
+ return err
+ }
+ // setup ctrl+z
+ keyForced, modForced := gocui.MustParse("ctrl+z")
+ if err := g.SetKeybinding("", keyForced, modForced, handle_ctrl_z); err != nil {
+ log.Error(err)
+ }
+ for _, n := range []string{"but1", "but2", "help", "but3"} {
+ if err := g.SetKeybinding(n, gocui.MouseLeft, gocui.ModNone, showMsg); err != nil {
+ return err
+ }
+ }
+ if err := g.SetKeybinding("", gocui.MouseRelease, gocui.ModNone, mouseUp); err != nil {
+ return err
+ }
+ // mouseDown() runs whenever you click on an unknown view (?)
+ if err := g.SetKeybinding("", gocui.MouseLeft, gocui.ModNone, mouseDown); err != nil {
+ return err
+ }
+ if err := g.SetKeybinding("", gocui.MouseLeft, gocui.ModMouseCtrl, ctrlDown); err != nil {
+ return err
+ }
+ // if err := g.SetKeybinding(w.v.Name(), gocui.MouseLeft, gocui.ModNone, click); err != nil {
+ // return err
+ // }
+ /*
+ if err := g.SetKeybinding("", gocui.MouseLeft, gocui.ModNone, globalDown); err != nil {
+ return err
+ }
+ */
+ if err := g.SetKeybinding("msg", gocui.MouseLeft, gocui.ModNone, msgDown); err != nil {
+ return err
+ }
+ addDebugKeys(g)
+ return nil
+}
+
+func addDebugKeys(g *gocui.Gui) {
+ // show debugging buttons
+ g.SetKeybinding("", 'd', gocui.ModNone, theLetterD)
+
+ // display the help menu
+ g.SetKeybinding("", '?', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ if showHelp {
+ helplayout()
+ showHelp = false
+ if me.dropdownV == nil {
+ me.dropdownV = makeDropdownView("addWidget() ddview")
+ }
+ me.dropdownV.Show()
+ } else {
+ me.baseGui.DeleteView("help")
+ showHelp = true
+ me.dropdownV.Hide()
+ }
+ return nil
+ })
+
+ // redraw all the widgets
+ g.SetKeybinding("", 'r', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ var w *guiWidget
+ w = me.treeRoot.TK.(*guiWidget)
+ if redoWidgets {
+ wRoot := me.treeRoot.TK.(*guiWidget)
+ wRoot.redoWindows(0, 0)
+ redoWidgets = false
+ } else {
+ w.hideWidgets()
+ redoWidgets = true
+ }
+ return nil
+ })
+
+ // hide all widgets
+ g.SetKeybinding("", 'h', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ var w *guiWidget
+ w = me.treeRoot.TK.(*guiWidget)
+ w.hideWidgets()
+ return nil
+ })
+
+ // show all widgets
+ g.SetKeybinding("", 's', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ var w *guiWidget
+ w = me.treeRoot.TK.(*guiWidget)
+ w.showWidgets()
+ return nil
+ })
+
+ // list all widgets
+ g.SetKeybinding("", 'L', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ me.treeRoot.ListWidgets()
+
+ tk := me.logStdout.TK.(*guiWidget)
+ // msg := fmt.Sprintf("test out kb %d\n", ecount)
+ // tk.Write([]byte(msg))
+ if tk == nil {
+ log.Log(ERROR, "tk = nil")
+ }
+ if tk.v == nil {
+ log.Log(ERROR, "tk.v = nil")
+ } else {
+ log.Log(ERROR, "setting log.CaptureMode(tk.v)")
+ log.Log(ERROR, "setting log.CaptureMode(tk.v)")
+ log.CaptureMode(tk)
+ }
+ return nil
+ })
+
+ // list all widgets with positions
+ g.SetKeybinding("", 'M', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ w := me.treeRoot.TK.(*guiWidget)
+ w.dumpTree("M")
+ return nil
+ })
+
+ // redo windows
+ g.SetKeybinding("", 'w', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ wRoot := me.treeRoot.TK.(*guiWidget)
+ wRoot.redoWindows(0, 0)
+ return nil
+ })
+
+ // log to output window
+ g.SetKeybinding("", 'o', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ log.Log(ERROR, "TODO: trying re-implement this")
+ tk := me.logStdout.TK.(*guiWidget)
+ if tk == nil {
+ log.Log(ERROR, "tk = nil")
+ }
+ if tk.v == nil {
+ log.Log(ERROR, "tk.v = nil")
+ }
+ if tk.Visible() {
+ log.Log(ERROR, "setting visible to false")
+ tk.SetVisible(false)
+ // setOutput(os.Stdout)
+ } else {
+ log.Log(ERROR, "setting visible to true")
+ tk.SetVisible(true)
+ // setOutput(me.logStdout.tk)
+ }
+ return nil
+ })
+
+ // exit
+ g.SetKeybinding("", 'q', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ standardExit()
+ return nil
+ })
+ g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ standardExit()
+ return nil
+ })
+ g.SetKeybinding("", gocui.KeyCtrlD, gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ if showDebug {
+ me.myTree.SendEnableDebugger()
+ }
+ return nil
+ })
+ g.SetKeybinding("", gocui.KeyCtrlV, gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ return nil
+ })
+
+ // panic
+ g.SetKeybinding("", 'p', gocui.ModNone,
+ func(g *gocui.Gui, v *gocui.View) error {
+ standardClose()
+ panic("forced panic in gocui")
+ return nil
+ })
+}