dive-zfs/ui/statusview.go
2018-06-10 16:40:54 -04:00

55 lines
1.2 KiB
Go

package ui
import (
"fmt"
"github.com/jroimartin/gocui"
)
type StatusView struct {
Name string
gui *gocui.Gui
view *gocui.View
}
func NewStatusView(name string, gui *gocui.Gui) (statusview *StatusView) {
statusview = new(StatusView)
// populate main fields
statusview.Name = name
statusview.gui = gui
return statusview
}
func (view *StatusView) Setup(v *gocui.View) error {
// set view options
view.view = v
view.view.Frame = false
view.view.BgColor = gocui.ColorDefault + gocui.AttrReverse
// set keybindings
// if err := view.gui.SetKeybinding(view.Name, gocui.KeyArrowDown, gocui.ModNone, func(*gocui.Gui, *gocui.View) error { return view.CursorDown() }); err != nil {
// return err
// }
// if err := view.gui.SetKeybinding(view.Name, gocui.KeyArrowUp, gocui.ModNone, func(*gocui.Gui, *gocui.View) error { return view.CursorUp() }); err != nil {
// return err
// }
view.Render()
return nil
}
func (view *StatusView) Render() error {
view.gui.Update(func(g *gocui.Gui) error {
view.view.Clear()
fmt.Fprintln(view.view, "[Ctrl+C]: Quit [Ctrl+Space]: Switch View | [Space]: Toggle dir collapse [A]: Added files [R]: Removed files [M]: Modified files [U]: Unmodified files")
return nil
})
// todo: blerg
return nil
}