From 5a032a4dfdd237754ac1ad234305303154a76c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Omar=20Vergara=20P=C3=A9rez?= Date: Wed, 9 Jun 2021 22:29:35 -0500 Subject: [PATCH] feat(gui): add a view called structure in the exact position of the rows view, but hidden at the beggining 46 --- pkg/gui/layout.go | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/pkg/gui/layout.go b/pkg/gui/layout.go index ecd595e..77630cf 100644 --- a/pkg/gui/layout.go +++ b/pkg/gui/layout.go @@ -47,6 +47,16 @@ func (gui *Gui) layout(g *gocui.Gui) error { } } + if v, err := gui.g.SetView("structure", int(0.2*float32(maxX)), int(0.25*float32(maxY)), maxX-1, int(0.95*float32(maxY))); err != nil { + if err != gocui.ErrUnknownView { + return err + } + + v.Title = "Structure" + + fmt.Fprintln(v, "Please select a table!") + } + if v, err := gui.g.SetView("rows", int(0.2*float32(maxX)), int(0.25*float32(maxY)), maxX-1, int(0.95*float32(maxY))); err != nil { if err != gocui.ErrUnknownView { return err @@ -60,6 +70,29 @@ func (gui *Gui) layout(g *gocui.Gui) error { return nil } +func moveDown(g *gocui.Gui, v *gocui.View) error { + if v == nil || v.Name() == "query" { + _, err := g.SetCurrentView("rows") + if err != nil { + return err + } + _, err = g.SetViewOnTop("rows") + if err != nil { + return err + } + + g.Highlight = true + g.Cursor = true + g.SelFgColor = gocui.ColorGreen + + return err + } + + _, err := g.SetCurrentView("view") + + return err +} + func nextView(from, to string) func(g *gocui.Gui, v *gocui.View) error { return func(g *gocui.Gui, v *gocui.View) error { if v == nil || v.Name() == from { @@ -78,6 +111,34 @@ func nextView(from, to string) func(g *gocui.Gui, v *gocui.View) error { } } +func setViewOnTop(g *gocui.Gui, v *gocui.View) error { + if v == nil || v.Name() == "rows" { + return switchView(g, "structure") + } + + if v == nil || v.Name() == "structure" { + return switchView(g, "rows") + } + + return nil +} + +func switchView(g *gocui.Gui, v string) error { + if _, err := g.SetViewOnTop(v); err != nil { + return err + } + + if _, err := g.SetCurrentView(v); err != nil { + return err + } + + g.Highlight = true + g.Cursor = true + g.SelFgColor = gocui.ColorGreen + + return nil +} + func cursorUp(g *gocui.Gui, v *gocui.View) error { if v != nil { ox, oy := v.Origin()