From 5a12ecefba7c971b505027cfda74880314c3eae3 Mon Sep 17 00:00:00 2001 From: skanehira Date: Wed, 30 Oct 2019 21:47:05 +0900 Subject: [PATCH] improve input modal --- gui/gui.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gui/gui.go b/gui/gui.go index 2d7e898..b254d44 100644 --- a/gui/gui.go +++ b/gui/gui.go @@ -39,8 +39,16 @@ func (g *Gui) Run(i interface{}) error { return nil } +func (g *Gui) Modal(p tview.Primitive, width, height int) tview.Primitive { + return tview.NewGrid(). + SetColumns(0, width, 0). + SetRows(0, height, 0). + AddItem(p, 1, 1, 1, 1, 0, 0, true) +} + func (g *Gui) Input(text string, doneFunc func(text string)) { input := tview.NewInputField().SetText(text) + input.SetBorder(true) input.SetLabel("field:").SetLabelWidth(6).SetDoneFunc(func(key tcell.Key) { if key == tcell.KeyEnter { doneFunc(input.GetText()) @@ -48,5 +56,5 @@ func (g *Gui) Input(text string, doneFunc func(text string)) { } }) - g.Pages.AddPage("input", input, true, true).SendToFront("input").ShowPage("main") + g.Pages.AddAndSwitchToPage("input", g.Modal(input, 0, 3), true).ShowPage("main") }