Example #1
0
//quit is called when the user wants to finish the execution of the gui. It should display a warning screen and give an
// error result to all the pending actions. If no pending actions exists, it just exists
func (c *CUI) quit(g *gocui.Gui, v *gocui.View) error {
	if len(c.cmdList) > 0 {
		maxX, maxY := g.Size()
		if v, err := g.SetView("QuitWarnView", maxX/2-30, maxY/4, maxX/2+30, 3*maxY/4); err != nil {
			if err != gocui.ErrorUnkView {
				return err
			}
			fmt.Fprintf(v, "By pressing <Ctrl-X> all pending actions will be cancelled.\nPress <Enter> to go back")
			v.BgColor = gocui.ColorYellow
			v.FgColor = gocui.ColorBlack
			if err := g.SetCurrentView("QuitWarnView"); err != nil {
				return err
			}
		}
		return nil
	}
	return c.quitAcknowledged(g, v)
}