pull/10/head
Edouard Paris 5 years ago
parent b9d92c48d0
commit 229bfb6501

@ -18,6 +18,8 @@ var menu = []string{
type Menu struct {
view *gocui.View
cy, oy int
}
func (h Menu) Name() string {
@ -30,23 +32,34 @@ func (h *Menu) Wrap(v *gocui.View) View {
}
func (h Menu) Origin() (int, int) {
return h.view.Origin()
return 0, h.oy
}
func (h Menu) Cursor() (int, int) {
return h.view.Cursor()
return 0, h.cy
}
func (h Menu) Speed() (int, int, int, int) {
return 1, 1, 1, 1
return 0, 0, 1, 1
}
func (h *Menu) SetCursor(x, y int) error {
return h.view.SetCursor(x, y)
err := h.view.SetCursor(x, y)
if err != nil {
return err
}
h.cy = y
return nil
}
func (h *Menu) SetOrigin(x, y int) error {
return h.view.SetOrigin(x, y)
err := h.view.SetOrigin(x, y)
if err != nil {
return err
}
h.oy = y
return nil
}
func (h Menu) Current() string {
@ -72,11 +85,13 @@ func (c Menu) Delete(g *gocui.Gui) error {
}
func (h Menu) Set(g *gocui.Gui, x0, y0, x1, y1 int) error {
setCursor := false
header, err := g.SetView(MENU_HEADER, x0-1, y0, x1, y0+2)
if err != nil {
if err != gocui.ErrUnknownView {
return err
}
setCursor = true
}
header.Frame = false
header.BgColor = gocui.ColorGreen
@ -90,12 +105,26 @@ func (h Menu) Set(g *gocui.Gui, x0, y0, x1, y1 int) error {
if err != gocui.ErrUnknownView {
return err
}
setCursor = true
}
h.view.Frame = false
h.view.Highlight = true
h.view.SelBgColor = gocui.ColorCyan
h.view.SelFgColor = gocui.ColorBlack
if setCursor {
ox, oy := h.Origin()
err := h.SetOrigin(ox, oy)
if err != nil {
return err
}
cx, cy := h.Cursor()
err = h.SetCursor(cx, cy)
if err != nil {
return err
}
}
h.view.Clear()
for i := range menu {

Loading…
Cancel
Save