Table.CellAt is now public. Resolves #948

This commit is contained in:
Oliver 2024-04-04 12:48:00 +02:00
parent a22293bda9
commit 13affe3057
1 changed files with 6 additions and 3 deletions

View File

@ -752,11 +752,14 @@ func (t *Table) GetColumnCount() int {
return t.content.GetColumnCount() return t.content.GetColumnCount()
} }
// cellAt returns the row and column located at the given screen coordinates. // CellAt returns the row and column located at the given screen coordinates.
// Each returned value may be negative if there is no row and/or cell. This // Each returned value may be negative if there is no row and/or cell. This
// function will also process coordinates outside the table's inner rectangle so // function will also process coordinates outside the table's inner rectangle so
// callers will need to check for bounds themselves. // callers will need to check for bounds themselves.
func (t *Table) cellAt(x, y int) (row, column int) { //
// The layout of the table when it was last drawn is used so if anything has
// changed in the meantime, the results may not be reliable.
func (t *Table) CellAt(x, y int) (row, column int) {
rectX, rectY, _, _ := t.GetInnerRect() rectX, rectY, _, _ := t.GetInnerRect()
// Determine row as seen on screen. // Determine row as seen on screen.
@ -1648,7 +1651,7 @@ func (t *Table) MouseHandler() func(action MouseAction, event *tcell.EventMouse,
consumed = true consumed = true
case MouseLeftClick: case MouseLeftClick:
selectEvent := true selectEvent := true
row, column := t.cellAt(x, y) row, column := t.CellAt(x, y)
cell := t.content.GetCell(row, column) cell := t.content.GetCell(row, column)
if cell != nil && cell.Clicked != nil { if cell != nil && cell.Clicked != nil {
if noSelect := cell.Clicked(); noSelect { if noSelect := cell.Clicked(); noSelect {