boltbrowser/screen_browser.go
2015-04-24 17:53:33 -05:00

73 lines
1.6 KiB
Go

package main
import (
"github.com/nsf/termbox-go"
)
type ViewPort struct {
bytes_per_row int
number_of_rows int
first_row int
}
type BrowserScreen struct {
memBolt BoltDB
cursor Cursor
view_port ViewPort
}
func (screen *BrowserScreen) handleKeyEvent(event termbox.Event) int {
if event.Ch == '?' { // About
return ABOUT_SCREEN_INDEX
} else if event.Ch == 'q' || event.Key == termbox.KeyEsc || event.Key == termbox.KeyCtrlC {
return EXIT_SCREEN_INDEX
}
return BROWSER_SCREEN_INDEX
}
func (screen *BrowserScreen) performLayout() {
/*
width, height := termbox.Size()
legend_height := heightOfWidgets()
line_height := 3
cursor := screen.cursor
cursor_row_within_view_port := 0
var new_view_port ViewPort
new_view_port.bytes_per_row = (width - 3) / 3
new_view_port.number_of_rows = (height - 1 - legend_height) / line_height
new_view_port.first_row = screen.view_port.first_row
if new_view_port.first_row < 0 {
new_view_port.first_row = 0
}
screen.view_port = new_view_port
*/
}
func (screen *BrowserScreen) drawScreen(style Style) {
x, y := 2, 1
// x_pad := 2
//line_height := 1
// width, height := termbox.Size()
// widget_width, widget_height := drawWidgets(screen.cursor, style)
// cursor := screen.cursor
//view_port := screen.view_port
//last_y := y + view_port.number_of_rows*line_height - 1
//last_x := x + view_port.bytes_per_row*3 - 1
start_x := x
for _, bkt := range screen.memBolt.buckets {
bucket_fg := style.default_fg
bucket_bg := style.default_bg
termbox.SetCell(x, y, '+', bucket_fg, bucket_bg)
x = drawStringAtPoint(bkt.name, x+1, y, bucket_fg, bucket_bg)
y = y + 1
x = start_x
}
}