diff options
Diffstat (limited to 'gui/controlsview.go')
| -rw-r--r-- | gui/controlsview.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gui/controlsview.go b/gui/controlsview.go new file mode 100644 index 0000000..4b2f97e --- /dev/null +++ b/gui/controlsview.go @@ -0,0 +1,36 @@ +package gui + +import ( + "fmt" + + "github.com/jroimartin/gocui" +) + +// open the application controls +// TODO: view size can handled better for such situations like too small +// application area +func (gui *Gui) openCheatSheetView(g *gocui.Gui, v *gocui.View) error { + maxX, maxY := g.Size() + v, err := g.SetView(cheatSheetViewFeature.Name, maxX/2-25, maxY/2-10, maxX/2+25, maxY/2+10) + if err != nil { + if err != gocui.ErrUnknownView { + return err + } + v.Title = cheatSheetViewFeature.Title + for _, k := range gui.KeyBindings { + if k.View == mainViewFeature.Name || k.View == "" { + binding := " " + cyan.Sprint(k.Display) + ": " + k.Description + fmt.Fprintln(v, binding) + } + } + } + return gui.focusToView(cheatSheetViewFeature.Name) +} + +// close the application controls and do the clean job +func (gui *Gui) closeCheatSheetView(g *gocui.Gui, v *gocui.View) error { + if err := g.DeleteView(v.Name()); err != nil { + return nil + } + return gui.closeViewCleanup(mainViewFeature.Name) +} |
