mirror of
https://github.com/rivo/tview.git
synced 2024-11-15 06:12:46 +00:00
45 lines
894 B
Go
45 lines
894 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
|
|
"github.com/rivo/tview"
|
|
)
|
|
|
|
type TableData struct {
|
|
tview.TableContentReadOnly
|
|
}
|
|
|
|
func (d *TableData) GetCell(row, column int) *tview.TableCell {
|
|
letters := [...]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A' + byte(row%26)} // log(math.MaxInt64) / log(26) ~= 14
|
|
start := len(letters) - 1
|
|
row /= 26
|
|
for row > 0 {
|
|
start--
|
|
row--
|
|
letters[start] = 'A' + byte(row%26)
|
|
row /= 26
|
|
}
|
|
return tview.NewTableCell(fmt.Sprintf("[red]%s[green]%d", letters[start:], column))
|
|
}
|
|
|
|
func (d *TableData) GetRowCount() int {
|
|
return math.MaxInt64
|
|
}
|
|
|
|
func (d *TableData) GetColumnCount() int {
|
|
return math.MaxInt64
|
|
}
|
|
|
|
func main() {
|
|
data := &TableData{}
|
|
table := tview.NewTable().
|
|
SetBorders(false).
|
|
SetSelectable(true, true).
|
|
SetContent(data)
|
|
if err := tview.NewApplication().SetRoot(table, true).EnableMouse(true).Run(); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|