diff --git a/FL/Fl_Table.H b/FL/Fl_Table.H index 746b3a37d1941517ab5814fb1b1651d761afd8f7..7fb80cd04f5df8f0e423e8e7d9adc4001b544e03 100644 --- a/FL/Fl_Table.H +++ b/FL/Fl_Table.H @@ -351,7 +351,7 @@ protected: fl_push_clip(X, Y, W, H); { // BG COLOR - fl_color( row_selected(R) ? selection_color() : FL_WHITE); + fl_color(is_selected(R, C) ? selection_color() : FL_WHITE); fl_rectf(X, Y, W, H); // TEXT diff --git a/FL/Fl_Table_Row.H b/FL/Fl_Table_Row.H index ac35f333c72525d86e8ece25fbabad05966620f1..93f8b0e8cb3a48bedb6e40644e81f967abc676ef 100644 --- a/FL/Fl_Table_Row.H +++ b/FL/Fl_Table_Row.H @@ -157,19 +157,11 @@ public: return(_selectmode); } - /** - 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) - */ - int row_selected(int row); // is row selected? (0=no, 1=yes, -1=range err) + // Checks to see if 'row' is selected. Returns 1 if selected, 0 if not. + int row_selected(int row); - /** - Changes the selection state for 'row', depending on the value - of 'flag'. 0=deselected, 1=select, 2=toggle existing state. - */ - int select_row(int row, int flag=1); // select state for row: flag:0=off, 1=on, 2=toggle - // returns: 0=no change, 1=changed, -1=range err + // Changes the selection state for 'row', depending on the value of 'flag'. + int select_row(int row, int flag = 1); /** This convenience function changes the selection state diff --git a/src/Fl_Table_Row.cxx b/src/Fl_Table_Row.cxx index e800455f8b152f757034666d95f8f1ba273adf43..dca5c10b7f718e4aa9460e4b6edc956b51a10ed0 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); }