diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2025-01-14 15:21:42 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2025-01-14 15:21:42 +0100 |
| commit | a48ebc5db02960165bf1b9fb64443a5cdf9635d5 (patch) | |
| tree | 0b87e53d4238d4aeb7b56601b0a4159ff79054a2 /src/Fl_Table_Row.cxx | |
| parent | 06418e4b219add0ff31186effbdd01ecb0f00a28 (diff) | |
Fix return value of Fl_Table_Row::row_selected(int) (PR #1187)
As discussed in the context of PR #1187 the previous return value '-1'
was misleading and undocumented. The docs mentioned only '1' and '0'.
User code that used the return value as documented (like a `bool`)
would make the wrong decision if the return value was '-1': true
(selected) instead false (out of range).
This commit fixes the code by doing what the docs define and clarifies
the documentation.
Further documentation improvements of Fl_Table (example code used a
method that is not defined in Fl_Table) and of Fl_Table_Row are
included as well.
Doxygen docs of two methods of Fl_Table_Row moved to the .cxx file
where they belong according to the CMP.
Diffstat (limited to 'src/Fl_Table_Row.cxx')
| -rw-r--r-- | src/Fl_Table_Row.cxx | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/src/Fl_Table_Row.cxx b/src/Fl_Table_Row.cxx index e800455f8..dca5c10b7 100644 --- a/src/Fl_Table_Row.cxx +++ b/src/Fl_Table_Row.cxx @@ -64,10 +64,24 @@ void Fl_Table_Row::CharVector::size(int count) { } -// Is row selected? +/** + Checks to see if 'row' is selected. + + Returns 1 if selected, 0 if not. You can change the selection of a row + by clicking on it, or by using select_row(row, flag) + + \p row \b should be a valid row. If the row is out of range the return + value is 0 (zero). + + \param[in] row row to be checked + + \return whether given row is selected + \retval 1 row is selected + \retval 0 row is not selected or \p row is out of range +*/ int Fl_Table_Row::row_selected(int row) { - if ( row < 0 || row >= rows() ) return(-1); - return(_rowselect[row]); + if (row < 0 || row >= rows()) return 0; + return _rowselect[row]; } // Change row selection type @@ -98,18 +112,22 @@ void Fl_Table_Row::type(TableRowSelectMode val) { } } -// Change selection state for row -// -// flag: -// 0 - clear selection -// 1 - set selection -// 2 - toggle selection -// -// Returns: -// 0 - selection state did not change -// 1 - selection state changed -// -1 - row out of range or incorrect selection mode -// +/** + Changes the selection state for \p 'row', depending on the value of \p 'flag'. + + The optional \p flag can be: + - 0: clear selection + - 1: set selection (default) + - 2: toggle selection + + \param[in] row row to be selected, deselected, or toggled + \param[in] flag change mode, see description + \return result of modification, see description + \retval 0: selection state did not change + \retval 1: selection state changed + \retval -1: row out of range or incorrect selection mode (\p flag) +*/ + int Fl_Table_Row::select_row(int row, int flag) { int ret = 0; if ( row < 0 || row >= rows() ) { return(-1); } |
