Navigation bugfix and improved comments.

This commit is contained in:
Oliver 2021-08-08 11:52:26 +02:00
parent 2cef1c04ba
commit 9b6f0f012d
1 changed files with 19 additions and 17 deletions

View File

@ -187,12 +187,13 @@ func (c *TableCell) SetClickedFunc(clicked func() bool) *TableCell {
return c
}
// TableContent provides access to a Table's data. You may replace the Table
// class's default implementation with your own using the Table.SetContent()
// function. This will allow you to turn Table into a view of your own data
// structure. The Table.Draw() function which is called when the screen is
// updated, will then use the (read-only) functions of this interface to update
// the table.
// TableContent defines a Table's data. You may replace a Table's default
// implementation with your own using the Table.SetContent() function. This will
// allow you to turn Table into a view of your own data structure. The
// Table.Draw() function, which is called when the screen is updated, will then
// use the (read-only) functions of this interface to update the table. The
// write functions are only called when the corresponding functions of Table are
// called.
//
// The interface's read-only functions are not called concurrently by the
// package (provided that users of the package don't call Table.Draw() in a
@ -213,8 +214,8 @@ type TableContent interface {
// original Table implementation was not read-only. If you do not wish to
// forward modifying operations to your data, you may opt to leave these
// functions empty. To make this easier, you can include the
// TableContentReadOnly type in your struct. See also the demos/virtualtable
// example.
// TableContentReadOnly type in your struct. See also the
// demos/table/virtualtable example.
// Set the cell at the given position to the provided cell.
SetCell(row, column int, cell *TableCell)
@ -242,10 +243,10 @@ type TableContent interface {
}
// TableContentReadOnly is an empty struct which implements the write operations
// if the TableContent interface. None of the implemented functions do anything.
// You can embed this struct into your own structs to free you from implementing
// the empty write functions of TableContent. See demos/virtualtable for an
// example.
// of the TableContent interface. None of the implemented functions do anything.
// You can embed this struct into your own structs to free yourself from having
// to implement the empty write functions of TableContent. See
// demos/table/virtualtable for an example.
type TableContentReadOnly struct{}
// SetCell does not do anything.
@ -1317,14 +1318,15 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
}
t.selectedColumn--
if t.selectedColumn < 0 {
t.selectedColumn = lastColumn
t.selectedRow--
if t.selectedRow < 0 {
t.selectedRow = rowCount - 1
}
}
if t.selectedColumn == startColumn && t.selectedRow == startRow {
t.selectedColumn = -1
t.selectedRow = -1
t.selectedColumn = 0
t.selectedRow = 0
return
}
}
@ -1351,8 +1353,8 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
t.selectedColumn++
}
if t.selectedColumn == startColumn && t.selectedRow == startRow {
t.selectedColumn = -1
t.selectedRow = -1
t.selectedColumn = 0
t.selectedRow = 0
return
}
}
@ -1387,7 +1389,7 @@ func (t *Table) InputHandler() func(event *tcell.EventKey, setFocus func(p Primi
if t.rowsSelectable {
t.selectedRow++
if t.selectedRow >= rowCount {
t.selectedRow = rowCount - 1
t.selectedRow = 0
}
t.clampToSelection = true
next()