gctest.go (843B)
1 package main 2 3 import ( 4 "errors" 5 "fmt" 6 "log" 7 8 "github.com/awesome-gocui/gocui" 9 ) 10 11 func main() { 12 g, err := gocui.NewGui(gocui.OutputNormal, true) 13 if err != nil { 14 log.Panicln(err) 15 } 16 defer g.Close() 17 18 g.SetManagerFunc(layout) 19 20 if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil { 21 log.Panicln(err) 22 } 23 24 if err := g.MainLoop(); err != nil && !errors.Is(err, gocui.ErrQuit) { 25 log.Panicln(err) 26 } 27 } 28 29 func layout(g *gocui.Gui) error { 30 maxX, maxY := g.Size() 31 if v, err := g.SetView("hello", maxX/2-7, maxY/2, maxX/2+7, maxY/2+2, 0); err != nil { 32 if !errors.Is(err, gocui.ErrUnknownView) { 33 return err 34 } 35 36 if _, err := g.SetCurrentView("hello"); err != nil { 37 return err 38 } 39 40 fmt.Fprintln(v, "Hello world!") 41 } 42 43 return nil 44 } 45 46 func quit(g *gocui.Gui, v *gocui.View) error { 47 return gocui.ErrQuit 48 }