summaryrefslogtreecommitdiff
path: root/src/Fl_Table_Row.cxx
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2025-01-14 15:21:42 +0100
committerAlbrecht Schlosser <albrechts.fltk@online.de>2025-01-14 15:21:42 +0100
commita48ebc5db02960165bf1b9fb64443a5cdf9635d5 (patch)
tree0b87e53d4238d4aeb7b56601b0a4159ff79054a2 /src/Fl_Table_Row.cxx
parent06418e4b219add0ff31186effbdd01ecb0f00a28 (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.cxx48
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); }