tableview.go
func (l *TableView) OnBeforeDraw(fn func(int, int, int, int)) {
	l.mtx.Lock()
	l.onBeforeDraw = fn
	l.mtx.Unlock()
}
func (l *TableView) OnBeforeDraw(fn func(int, int, int, int)) {
	l.mtx.Lock()
	l.onBeforeDraw = fn
	l.mtx.Unlock()
}
// OnBeforeDraw is called when TableView is going to draw its cells.
// Can be used to precache the data, and make OnDrawCell faster.
// Callback receives 4 arguments: first visible column, first visible row,
// the number of visible columns, the number of visible rows