141 lines
3.6 KiB
Go
141 lines
3.6 KiB
Go
// 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
|
|
}
|