summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FL/Fl_Table.H61
-rw-r--r--FL/Fl_Table_Row.H10
-rw-r--r--src/Fl_Table.cxx7
-rw-r--r--src/Fl_Table_Row.cxx21
4 files changed, 41 insertions, 58 deletions
diff --git a/FL/Fl_Table.H b/FL/Fl_Table.H
index df6fcade2..64bf7f511 100644
--- a/FL/Fl_Table.H
+++ b/FL/Fl_Table.H
@@ -386,12 +386,10 @@ protected:
\code
// This is called whenever Fl_Table wants you to draw a cell
- void MyTable::draw_cell(TableContext context, int R=0, int C=0, int X=0, int Y=0, int W=0, int H=0)
- {
+ void MyTable::draw_cell(TableContext context, int R=0, int C=0, int X=0, int Y=0, int W=0, int H=0) {
static char s[40];
sprintf(s, "%d/%d", R, C); // text for each cell
- switch ( context )
- {
+ switch ( context ) {
case CONTEXT_STARTPAGE: // Fl_Table telling us its starting to draw page
fl_font(FL_HELVETICA, 16);
return;
@@ -487,9 +485,7 @@ public:
*/
virtual void clear() { rows(0); cols(0); }
- // topline()
- // middleline()
- // bottomline()
+ // \todo: add topline(), middleline(), bottomline()
/**
Sets the kind of box drawn around the data table,
@@ -957,7 +953,7 @@ public:
Fl_Widget::do_callback();
}
-#if DOXYGEN
+#if FL_DOXYGEN
/**
The Fl_Widget::when() function is used to set a group of flags, determining
when the widget callback is called:
@@ -989,7 +985,7 @@ public:
void when(Fl_When flags);
#endif
-#if DOXYGEN
+#if FL_DOXYGEN
/**
Callbacks will be called depending on the setting of Fl_Widget::when().
@@ -1039,34 +1035,31 @@ public:
</table>
\code
- class MyTable
- {
- [..]
+ class MyTable : public Fl_Table {
+ [..]
private:
- // Handle events that happen on the table
- void event_callback2()
- {
- int R = callback_row(), // row where event occurred
- C = callback_col(); // column where event occurred
- TableContext context = callback_context(); // which part of table
- fprintf(stderr, "callback: Row=%d Col=%d Context=%d Event=%d\n",
- R, C, (int)context, (int)Fl::event());
- }
-
- // Actual static callback
- static void event_callback(Fl_Widget*, void* data)
- {
- MyTable *o = (MyTable*)data;
- o-&gt;event_callback2();
- }
+ // Handle events that happen on the table
+ void event_callback2() {
+ int R = callback_row(), // row where event occurred
+ C = callback_col(); // column where event occurred
+ TableContext context = callback_context(); // which part of table
+ fprintf(stderr, "callback: Row=%d Col=%d Context=%d Event=%d\n",
+ R, C, (int)context, (int)Fl::event());
+ }
+ // Actual static callback
+ static void event_callback(Fl_Widget*, void* data) {
+ MyTable *o = (MyTable*)data;
+ o-&gt;event_callback2();
+ }
+
public:
- MyTable() // Constructor
- {
- [..]
- table.callback(&event_callback, (void*)this); // setup callback
- table.when(FL_WHEN_CHANGED|FL_WHEN_RELEASE); // when to call it
- }
+ // Constructor
+ MyTable() {
+ [..]
+ table.callback(&event_callback, (void*)this); // setup callback
+ table.when(FL_WHEN_CHANGED|FL_WHEN_RELEASE); // when to call it
+ }
};
\endcode
*/
diff --git a/FL/Fl_Table_Row.H b/FL/Fl_Table_Row.H
index b0bd1d516..0cfb1073d 100644
--- a/FL/Fl_Table_Row.H
+++ b/FL/Fl_Table_Row.H
@@ -37,12 +37,10 @@
/**
A table with row selection capabilities.
- This class implements a simple table of rows and columns that specializes in
- the selection of rows. This widget is similar in behavior to a "mail subject
- browser", similar to that found in mozilla, netscape and outlook mail browsers.
-
- Most methods of importance will be found in the Fl_Table widget, such as
- Fl_Table::rows() and Fl_Table::cols().
+ This class implements a simple table with the ability to select
+ rows. This widget is similar to an Fl_Browser with columns. Most
+ methods of importance will be found in the Fl_Table widget, such
+ as Fl_Table::rows() and Fl_Table::cols().
To be useful it must be subclassed and at minimum the draw_cell()
method must be overridden to provide the content of the cells. This widget
diff --git a/src/Fl_Table.cxx b/src/Fl_Table.cxx
index 96fb838dc..6b73879ce 100644
--- a/src/Fl_Table.cxx
+++ b/src/Fl_Table.cxx
@@ -424,14 +424,13 @@ void Fl_Table::_auto_drag_cb() {
if (lx > x() + w() - 20) {
Fl::e_x = x() + w() - 20;
if (hscrollbar->visible())
- ((Fl_Slider*)hscrollbar)->value(
- hscrollbar->clamp(hscrollbar->value() + 30));
+ ((Fl_Slider*)hscrollbar)->value(hscrollbar->clamp(hscrollbar->value() + 30));
hscrollbar->do_callback();
_dragging_x = Fl::e_x - 30;
}
else if (lx < (x() + row_header_width())) {
Fl::e_x = x() + row_header_width() + 1;
- if (hscrollbar->visible()) {
+ if (hscrollbar->visible()) {
((Fl_Slider*)hscrollbar)->value(hscrollbar->clamp(hscrollbar->value() - 30));
}
hscrollbar->do_callback();
@@ -514,7 +513,7 @@ void Fl_Table::table_scrolled() {
if ( y > voff ) { y -= row_height(row); break; }
}
_row_position = toprow = ( row >= _rows ) ? (row - 1) : row;
- toprow_scrollpos = y; // OPTIMIZATION: save for later use
+ toprow_scrollpos = y; // OPTIMIZATION: save for later use
// Find bottom row
voff = vscrollbar->value() + tih;
for ( ; row < _rows; row++ ) {
diff --git a/src/Fl_Table_Row.cxx b/src/Fl_Table_Row.cxx
index 1acb7e3fd..d8624251c 100644
--- a/src/Fl_Table_Row.cxx
+++ b/src/Fl_Table_Row.cxx
@@ -45,16 +45,14 @@ int Fl_Table_Row::row_selected(int row) {
void Fl_Table_Row::type(TableRowSelectMode val) {
_selectmode = val;
switch ( _selectmode ) {
- case SELECT_NONE:
- {
+ case SELECT_NONE: {
for ( int row=0; row<rows(); row++ ) {
_rowselect[row] = 0;
}
redraw();
break;
}
- case SELECT_SINGLE:
- {
+ case SELECT_SINGLE: {
int count = 0;
for ( int row=0; row<rows(); row++ ) {
if ( _rowselect[row] ) {
@@ -90,8 +88,7 @@ int Fl_Table_Row::select_row(int row, int flag) {
case SELECT_NONE:
return(-1);
- case SELECT_SINGLE:
- {
+ case SELECT_SINGLE: {
int oldval;
for ( int t=0; t<rows(); t++ ) {
if ( t == row ) {
@@ -111,8 +108,7 @@ int Fl_Table_Row::select_row(int row, int flag) {
break;
}
- case SELECT_MULTI:
- {
+ case SELECT_MULTI: {
int oldval = _rowselect[row];
if ( flag == 2 ) { _rowselect[row] ^= 1; }
else { _rowselect[row] = flag; }
@@ -138,8 +134,7 @@ void Fl_Table_Row::select_all_rows(int flag) {
if ( flag != 0 ) return;
//FALLTHROUGH
- case SELECT_MULTI:
- {
+ case SELECT_MULTI: {
char changed = 0;
if ( flag == 2 ) {
for ( int row=0; row<(int)_rowselect.size(); row++ ) {
@@ -204,8 +199,7 @@ int Fl_Table_Row::handle(int event) {
select_row(R, 2); // toggle
break;
- case FL_SHIFT:
- {
+ case FL_SHIFT: {
select_row(R, 1);
if ( _last_row > -1 ) {
int srow = R, erow = _last_row;
@@ -234,8 +228,7 @@ int Fl_Table_Row::handle(int event) {
}
break;
- case FL_DRAG:
- {
+ case FL_DRAG: {
if ( _dragging_select ) {
// Dragged off table edges? Handle scrolling
int offtop = toy - _last_y; // >0 if off top of table