//keybindings configures the keyboard actions for each window func (c *CUI) keybindings(g *gocui.Gui) error { //Everybody if err := g.SetKeybinding("", gocui.KeyCtrlX, gocui.ModNone, c.quit); err != nil { return err } //ActionListView if err := g.SetKeybinding("ActionListView", gocui.KeyTab, gocui.ModNone, c.nextView); err != nil { return err } if err := g.SetKeybinding("ActionListView", gocui.KeyArrowDown, gocui.ModNone, c.cursorDown); err != nil { return err } if err := g.SetKeybinding("ActionListView", gocui.KeyArrowUp, gocui.ModNone, c.cursorUp); err != nil { return err } if err := g.SetKeybinding("ActionListView", gocui.KeyEnter, gocui.ModNone, c.selectAction); err != nil { return err } //LogView if err := g.SetKeybinding("LogView", gocui.KeyArrowDown, gocui.ModNone, c.cursorDown); err != nil { return err } if err := g.SetKeybinding("LogView", gocui.KeyArrowUp, gocui.ModNone, c.cursorUp); err != nil { return err } if err := g.SetKeybinding("LogView", gocui.KeyTab, gocui.ModNone, c.nextView); err != nil { return err } //Action View if err := g.SetKeybinding("ActionView", gocui.KeyEnter, gocui.ModNone, c.ActionDone); err != nil { panic(err) } if err := g.SetKeybinding("ActionView", gocui.KeyBackspace, gocui.ModNone, c.ActionBack); err != nil { return err } if err := g.SetKeybinding("ActionView", gocui.KeyBackspace2, gocui.ModNone, c.ActionBack); err != nil { return err } if err := g.SetKeybinding("ActionView", gocui.KeySpace, gocui.ModNone, c.ActionError); err != nil { return err } if err := g.SetKeybinding("ErrorMessageView", gocui.KeyEnter, gocui.ModNone, c.ReportError); err != nil { return err } if err := g.SetKeybinding("QuitWarnView", gocui.KeyCtrlX, gocui.ModNone, c.quitAcknowledged); err != nil { return err } if err := g.SetKeybinding("QuitWarnView", gocui.KeyEnter, gocui.ModNone, c.abortQuit); err != nil { return err } return nil }