Esempio n. 1
0
//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
}