// 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 ( // "errors" // "fmt" "log" // "strings" "github.com/awesome-gocui/gocui" "git.wit.org/wit/gui/toolkit" ) func initKeybindings(g *gocui.Gui) error { log.Println("got to initKeybindings") if err := g.SetKeybinding("", 'q', gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return gocui.ErrQuit }); err != nil { return err } if err := g.SetKeybinding("", 'Q', gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return gocui.ErrQuit }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return gocui.ErrQuit }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeySpace, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return newView(g) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyBackspace, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return delView(g) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyBackspace2, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return delView(g) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyTab, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { log.Println("tab", v.Name()) return nextView(g, true) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyArrowLeft, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return moveView(g, v, -delta, 0) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyArrowRight, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { return moveView(g, v, delta, 0) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyArrowDown, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { log.Println("down", v.Name()) return moveView(g, v, 0, delta) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyArrowUp, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { log.Println("up", v.Name()) return moveView(g, v, 0, -delta) }); err != nil { return err } if err := g.SetKeybinding("", gocui.KeyEnter, gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { log.Println("enter", v.Name()) var w *toolkit.Widget w = stringWidget[v.Name()] if (w == nil) { log.Println("COULD NOT FIND WIDGET", v.Name()) } else { log.Println("FOUND WIDGET!", w) if (w.Custom != nil) { w.Custom() return nil } if (w.Event != nil) { w.Event(w) return nil } } return nil }); err != nil { return err } if err := g.SetKeybinding("", 't', gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { _, err := g.SetViewOnTop(views[curView]) return err }); err != nil { return err } if err := g.SetKeybinding("", 'b', gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { _, err := g.SetViewOnBottom(views[curView]) return err }); err != nil { return err } if err := g.SetKeybinding("", 'h', gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { log.Println("help", v.Name()) tmp, _ := g.SetViewOnTop("help") log.Println("help 2", tmp.Name()) // g.SetView("help", 2, 2, 30, 15, 0); g.SetCurrentView("help") // moveView(g, tmp, 0, -delta) if err := g.DeleteView("help"); err != nil { panic(err) } return nil }); err != nil { return err } return nil }