mirror of https://github.com/fltk/fltk
CMP mods: bracing, doxygen fixes for code examples and #if DOXYGEN -> #if FL_DOXYGEN.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7950 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
0abd2665f5
commit
770c2c2eaf
|
@ -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->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->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
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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++ ) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue