refac controller: F1 Help

pull/1/head
Edouard Paris 5 years ago
parent 8389a3b419
commit 579503fae8

@ -13,4 +13,5 @@ var (
Cyan = color.New(color.FgCyan).SprintFunc()
CyanBg = color.New(color.BgCyan, color.FgBlack).SprintFunc()
WhiteBg = color.New(color.BgWhite, color.FgBlack).SprintFunc()
BlackBg = color.New(color.BgBlack, color.FgWhite).SprintFunc()
)

@ -96,9 +96,30 @@ func quit(g *gocui.Gui, v *gocui.View) error {
return gocui.ErrQuit
}
func Help(g *gocui.Gui, v *gocui.View) error {
func (c *controller) Help(g *gocui.Gui, v *gocui.View) error {
maxX, maxY := g.Size()
return views.SetHelp(g, 0, -1, maxX, maxY)
view := c.views.Get(g.CurrentView().Name())
if view == nil {
return nil
}
if view.Name() != views.HELP {
c.views.SetPrevious(view)
c.logger.Info("hello")
return c.views.Help.Set(g, 0, -1, maxX, maxY)
}
err := g.DeleteView(views.HELP)
if err != nil {
return err
}
if c.views.Previous != nil {
_, err := g.SetCurrentView(c.views.Previous.Name())
return err
}
return nil
}
func (c *controller) setKeyBinding(g *gocui.Gui) error {
@ -117,7 +138,7 @@ func (c *controller) setKeyBinding(g *gocui.Gui) error {
return err
}
err = g.SetKeybinding("", gocui.KeyCtrlH, gocui.ModNone, Help)
err = g.SetKeybinding("", gocui.KeyF1, gocui.ModNone, c.Help)
if err != nil {
return err
}

@ -21,6 +21,10 @@ type Channels struct {
channels *models.Channels
}
func (c Channels) Name() string {
return CHANNELS
}
func (c *Channels) Set(g *gocui.Gui, x0, y0, x1, y1 int) error {
columns, err := g.SetView(CHANNELS_COLUMNS, x0-1, y0, x1+2, y0+2)
if err != nil {

@ -1,6 +1,12 @@
package views
import "github.com/jroimartin/gocui"
import (
"fmt"
"github.com/jroimartin/gocui"
"github.com/edouardparis/lntop/ui/color"
)
const (
FOOTER = "footer"
@ -17,7 +23,9 @@ func (f *Footer) Set(g *gocui.Gui, x0, y0, x1, y1 int) error {
}
v.Frame = false
v.BgColor = gocui.ColorCyan
v.FgColor = gocui.ColorBlack | gocui.AttrBold
v.FgColor = gocui.ColorBlack
v.Clear()
fmt.Fprintln(v, fmt.Sprintf("%s%s", color.BlackBg("F1"), "Help"))
return nil
}

@ -4,13 +4,22 @@ import (
"fmt"
"github.com/jroimartin/gocui"
"github.com/edouardparis/lntop/ui/color"
)
const (
HELP = "help"
)
func SetHelp(g *gocui.Gui, x0, y0, x1, y1 int) error {
type Help struct {
}
func (h Help) Name() string {
return HELP
}
func (h Help) Set(g *gocui.Gui, x0, y0, x1, y1 int) error {
v, err := g.SetView(HELP, x0-1, y0, x1, y1)
if err != nil {
if err != gocui.ErrUnknownView {
@ -18,7 +27,13 @@ func SetHelp(g *gocui.Gui, x0, y0, x1, y1 int) error {
}
}
v.Frame = false
fmt.Fprintln(v, "HELP")
fmt.Fprintln(v, "lntop 0.0.1 - (C) 2019 Edouard Paris")
fmt.Fprintln(v, "Released under the MIT License")
fmt.Fprintln(v, "")
fmt.Fprintln(v, fmt.Sprintf("%5s %s",
color.Cyan("F1 h:"), "show this help screen"))
_, err = g.SetCurrentView(HELP)
return err
}
func NewHelp() *Help { return &Help{} }

@ -5,13 +5,35 @@ import (
"github.com/jroimartin/gocui"
)
type view interface {
Set(*gocui.Gui, int, int, int, int) error
Name() string
}
type Views struct {
Previous view
Help *Help
Header *Header
Summary *Summary
Channels *Channels
Footer *Footer
}
func (v Views) Get(name string) view {
switch name {
case CHANNELS:
return v.Channels
case HELP:
return v.Help
default:
return nil
}
}
func (v *Views) SetPrevious(p view) {
v.Previous = p
}
func (v *Views) Layout(g *gocui.Gui, maxX, maxY int) error {
err := v.Header.Set(g, 0, -1, maxX, 1)
if err != nil {
@ -35,6 +57,7 @@ func New(m *models.Models) *Views {
return &Views{
Header: NewHeader(m.Info),
Footer: NewFooter(),
Help: NewHelp(),
Summary: NewSummary(m.Info, m.ChannelsBalance, m.WalletBalance, m.Channels),
Channels: NewChannels(m.Channels),
}

Loading…
Cancel
Save