From 9f0c6a6ae4cf3a068902ac4c79cb6db6363374e3 Mon Sep 17 00:00:00 2001 From: Gregory 'Rudi' Rudolph Date: Tue, 17 Sep 2019 10:45:15 -0400 Subject: [PATCH] Can take input from bottom box and display it in chat box --- main.go | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 2cffe40..32f111a 100644 --- a/main.go +++ b/main.go @@ -16,7 +16,9 @@ func main() { defer kbtui.Close() kbtui.SetManagerFunc(layout) - + if err := initKeybindings(kbtui); err != nil { + log.Fatalln(err) + } go testAsync(kbtui) if err := kbtui.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil { log.Panicln(err) @@ -42,6 +44,8 @@ func clearView(kbtui *gocui.Gui, viewName string) { return err } else { inputView.Clear() + inputView.SetCursor(0, 0) + inputView.SetOrigin(0, 0) } return nil }) @@ -83,7 +87,6 @@ func layout(g *gocui.Gui) error { return err } inputView.Editable = true - fmt.Fprintln(inputView, "Input Window") } if listView, err4 := g.SetView("List", 0, 0, 10, maxY-1); err4 != nil { if err4 != gocui.ErrUnknownView { @@ -93,7 +96,33 @@ func layout(g *gocui.Gui) error { } return nil } +func getInputString(g *gocui.Gui) (string, error) { + inputView, _ := g.View("Input") + return inputView.Line(0) +} +func initKeybindings(g *gocui.Gui) error { + 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("Input", gocui.KeyEnter, gocui.ModNone, + func(g *gocui.Gui, v *gocui.View) error { + handleInput(g) + return nil + }); err != nil { + return err + } + return nil +} +func handleInput(g *gocui.Gui) { + printToView(g, "Chat", "Enter was hit!\n") + inputString, _ := getInputString(g) + printToView(g, "Chat", inputString+"\n") + clearView(g, "Input") +} func quit(g *gocui.Gui, v *gocui.View) error { return gocui.ErrQuit }