summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Table.cxx748
-rw-r--r--src/Fl_Table_Row.cxx302
-rw-r--r--src/Fl_Tree.cxx354
-rw-r--r--src/Fl_Tree_Item.cxx707
-rw-r--r--src/Fl_Tree_Item_Array.cxx149
-rw-r--r--src/Fl_Tree_Prefs.cxx122
-rw-r--r--src/Makefile4
-rw-r--r--src/makedepend1443
8 files changed, 2704 insertions, 1125 deletions
diff --git a/src/Fl_Table.cxx b/src/Fl_Table.cxx
index 32d35cfea..6f92a503f 100644
--- a/src/Fl_Table.cxx
+++ b/src/Fl_Table.cxx
@@ -64,19 +64,19 @@ void Fl_Table::col_position(int col) {
// Find scroll position of a row (in pixels)
long Fl_Table::row_scroll_position(int row) {
- int startrow = 0;
- long scroll = 0;
- // OPTIMIZATION:
- // Attempt to use precomputed row scroll position
- //
- if ( toprow_scrollpos != -1 && row >= toprow ) {
- scroll = toprow_scrollpos;
- startrow = toprow;
- }
- for ( int t=startrow; t<row; t++ ) {
- scroll += row_height(t);
- }
- return(scroll);
+ int startrow = 0;
+ long scroll = 0;
+ // OPTIMIZATION:
+ // Attempt to use precomputed row scroll position
+ //
+ if ( toprow_scrollpos != -1 && row >= toprow ) {
+ scroll = toprow_scrollpos;
+ startrow = toprow;
+ }
+ for ( int t=startrow; t<row; t++ ) {
+ scroll += row_height(t);
+ }
+ return(scroll);
}
// Find scroll position of a column (in pixels)
@@ -133,36 +133,36 @@ Fl_Table::Fl_Table(int X, int Y, int W, int H, const char *l) : Fl_Group(X,Y,W,H
current_row = -1;
select_row = -1;
select_col = -1;
-
+
box(FL_THIN_DOWN_FRAME);
-
+
vscrollbar = new Fl_Scrollbar(x()+w()-SCROLLBAR_SIZE, y(),
- SCROLLBAR_SIZE, h()-SCROLLBAR_SIZE);
+ SCROLLBAR_SIZE, h()-SCROLLBAR_SIZE);
vscrollbar->type(FL_VERTICAL);
vscrollbar->callback(scroll_cb, (void*)this);
-
+
hscrollbar = new Fl_Scrollbar(x(), y()+h()-SCROLLBAR_SIZE,
- w(), SCROLLBAR_SIZE);
+ w(), SCROLLBAR_SIZE);
hscrollbar->type(FL_HORIZONTAL);
hscrollbar->callback(scroll_cb, (void*)this);
-
+
table = new Fl_Scroll(x(), y(), w(), h());
table->box(FL_NO_BOX);
table->type(0); // don't show Fl_Scroll's scrollbars -- use our own
table->hide(); // hide unless children are present
table->end();
-
+
table_resized();
redraw();
-
+
Fl_Group::end(); // end the group's begin()
-
+
table->begin(); // leave with fltk children getting added to the scroll
}
// Dtor
Fl_Table::~Fl_Table() {
- // The parent Fl_Group takes care of destroying scrollbars
+ // The parent Fl_Group takes care of destroying scrollbars
}
// Set height of a row
@@ -225,12 +225,12 @@ int Fl_Table::row_col_clamp(TableContext context, int &R, int &C) {
// Allow col headers to draw even if no rows
if ( R >= _rows && R != 0 ) { R = _rows - 1; clamped = 1; }
break;
-
+
case CONTEXT_ROW_HEADER:
// Allow row headers to draw even if no columns
if ( C >= _cols && C != 0 ) { C = _cols - 1; clamped = 1; }
break;
-
+
case CONTEXT_CELL:
default:
// CLAMP R/C TO _rows/_cols
@@ -251,7 +251,7 @@ void Fl_Table::get_bounds(TableContext context, int &X, int &Y, int &W, int &H)
W = tow;
H = col_header_height();
return;
-
+
case CONTEXT_ROW_HEADER:
// Row header clipping.
X = wix;
@@ -259,13 +259,13 @@ void Fl_Table::get_bounds(TableContext context, int &X, int &Y, int &W, int &H)
W = row_header_width();
H = toh;
return;
-
+
case CONTEXT_TABLE:
// Table inner dimensions
X = tix; Y = tiy; W = tiw; H = tih;
return;
-
- // TODO: Add other contexts..
+
+ // TODO: Add other contexts..
default:
fprintf(stderr, "Fl_Table::get_bounds(): context %d unimplemented\n", (int)context);
return;
@@ -290,18 +290,18 @@ Fl_Table::TableContext Fl_Table::cursor2rowcol(int &R, int &C, ResizeFlag &resiz
if ( Fl::event_inside(X, Y, W, H) ) {
// Scan visible rows until found
for ( R = toprow; R <= botrow; R++ ) {
- find_cell(CONTEXT_ROW_HEADER, R, 0, X, Y, W, H);
- if ( Fl::event_y() >= Y && Fl::event_y() < (Y+H) ) {
- // Found row?
- // If cursor over resize boundary, and resize enabled,
- // enable the appropriate resize flag.
- //
- if ( row_resize() ) {
- if ( Fl::event_y() <= (Y+3-0) ) { resizeflag = RESIZE_ROW_ABOVE; }
- if ( Fl::event_y() >= (Y+H-3) ) { resizeflag = RESIZE_ROW_BELOW; }
- }
- return(CONTEXT_ROW_HEADER);
- }
+ find_cell(CONTEXT_ROW_HEADER, R, 0, X, Y, W, H);
+ if ( Fl::event_y() >= Y && Fl::event_y() < (Y+H) ) {
+ // Found row?
+ // If cursor over resize boundary, and resize enabled,
+ // enable the appropriate resize flag.
+ //
+ if ( row_resize() ) {
+ if ( Fl::event_y() <= (Y+3-0) ) { resizeflag = RESIZE_ROW_ABOVE; }
+ if ( Fl::event_y() >= (Y+H-3) ) { resizeflag = RESIZE_ROW_BELOW; }
+ }
+ return(CONTEXT_ROW_HEADER);
+ }
}
// Must be in row header dead zone
return(CONTEXT_NONE);
@@ -314,18 +314,18 @@ Fl_Table::TableContext Fl_Table::cursor2rowcol(int &R, int &C, ResizeFlag &resiz
if ( Fl::event_inside(X, Y, W, H) ) {
// Scan visible columns until found
for ( C = leftcol; C <= rightcol; C++ ) {
- find_cell(CONTEXT_COL_HEADER, 0, C, X, Y, W, H);
- if ( Fl::event_x() >= X && Fl::event_x() < (X+W) ) {
- // Found column?
- // If cursor over resize boundary, and resize enabled,
- // enable the appropriate resize flag.
- //
- if ( col_resize() ) {
- if ( Fl::event_x() <= (X+3-0) ) { resizeflag = RESIZE_COL_LEFT; }
- if ( Fl::event_x() >= (X+W-3) ) { resizeflag = RESIZE_COL_RIGHT; }
- }
- return(CONTEXT_COL_HEADER);
- }
+ find_cell(CONTEXT_COL_HEADER, 0, C, X, Y, W, H);
+ if ( Fl::event_x() >= X && Fl::event_x() < (X+W) ) {
+ // Found column?
+ // If cursor over resize boundary, and resize enabled,
+ // enable the appropriate resize flag.
+ //
+ if ( col_resize() ) {
+ if ( Fl::event_x() <= (X+3-0) ) { resizeflag = RESIZE_COL_LEFT; }
+ if ( Fl::event_x() >= (X+W-3) ) { resizeflag = RESIZE_COL_RIGHT; }
+ }
+ return(CONTEXT_COL_HEADER);
+ }
}
// Must be in column header dead zone
return(CONTEXT_NONE);
@@ -340,10 +340,10 @@ Fl_Table::TableContext Fl_Table::cursor2rowcol(int &R, int &C, ResizeFlag &resiz
if ( Fl::event_y() < Y ) break; // OPT: thanks lars
if ( Fl::event_y() >= (Y+H) ) continue; // OPT: " "
for ( C = leftcol; C <= rightcol; C++ ) {
- find_cell(CONTEXT_CELL, R, C, X, Y, W, H);
- if ( Fl::event_inside(X, Y, W, H) ) {
- return(CONTEXT_CELL); // found it
- }
+ find_cell(CONTEXT_CELL, R, C, X, Y, W, H);
+ if ( Fl::event_inside(X, Y, W, H) ) {
+ return(CONTEXT_CELL); // found it
+ }
}
}
// Must be in a dead zone of the table
@@ -367,25 +367,25 @@ int Fl_Table::find_cell(TableContext context, int R, int C, int &X, int &Y, int
Y = row_scroll_position(R) - vscrollbar->value() + tiy;
W = col_width(C);
H = row_height(R);
-
+
switch ( context ) {
case CONTEXT_COL_HEADER:
Y = wiy;
H = col_header_height();
return(0);
-
+
case CONTEXT_ROW_HEADER:
X = wix;
W = row_header_width();
return(0);
-
+
case CONTEXT_CELL:
return(0);
-
+
case CONTEXT_TABLE:
return(0);
-
- // TODO -- HANDLE OTHER CONTEXTS
+
+ // TODO -- HANDLE OTHER CONTEXTS
default:
fprintf(stderr, "Fl_Table::find_cell: unknown context %d\n", (int)context);
return(-1);
@@ -416,14 +416,14 @@ void Fl_Table::_auto_drag_cb() {
int lx = Fl::e_x;
int ly = Fl::e_y;
if (_selecting == CONTEXT_COL_HEADER)
- { ly = y() + col_header_height(); }
+ { ly = y() + col_header_height(); }
else if (_selecting == CONTEXT_ROW_HEADER)
- { lx = x() + row_header_width(); }
+ { lx = x() + row_header_width(); }
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;
}
@@ -562,25 +562,25 @@ void Fl_Table::table_resized() {
vscrollbar->precision(10);
vscrollbar->slider_size(vscrolltab);
vscrollbar->resize(wix+wiw-SCROLLBAR_SIZE, wiy,
- SCROLLBAR_SIZE,
- wih - ((hscrollbar->visible())?SCROLLBAR_SIZE:0));
+ SCROLLBAR_SIZE,
+ wih - ((hscrollbar->visible())?SCROLLBAR_SIZE:0));
vscrollbar->Fl_Valuator::value(vscrollbar->clamp(vscrollbar->value()));
// Horizontal scrollbar
hscrollbar->bounds(0, table_w-tiw);
hscrollbar->precision(10);
hscrollbar->slider_size(hscrolltab);
hscrollbar->resize(wix, wiy+wih-SCROLLBAR_SIZE,
- wiw - ((vscrollbar->visible())?SCROLLBAR_SIZE:0),
- SCROLLBAR_SIZE);
+ wiw - ((vscrollbar->visible())?SCROLLBAR_SIZE:0),
+ SCROLLBAR_SIZE);
hscrollbar->Fl_Valuator::value(hscrollbar->clamp(hscrollbar->value()));
}
-
+
// Tell FLTK child widgets were resized
Fl_Group::init_sizes();
-
+
// Recalc top/bot/left/right
table_scrolled();
-
+
// DO *NOT* REDRAW -- LEAVE THIS UP TO THE CALLER
// redraw();
}
@@ -606,7 +606,7 @@ void Fl_Table::rows(int val) {
}
}
table_resized();
-
+
// OPTIMIZATION: redraw only if change is visible.
if ( val >= oldrows && oldrows > botrow ) {
// NO REDRAW
@@ -690,7 +690,7 @@ int Fl_Table::move_cursor(int R, int C) {
#ifdef DEBUG
#include "eventnames.h"
#define PRINTEVENT \
- fprintf(stderr,"Table %s: ** Event: %s --\n", (label()?label():"none"), eventnames[event]);
+fprintf(stderr,"Table %s: ** Event: %s --\n", (label()?label():"none"), eventnames[event]);
#else
#define PRINTEVENT
#endif
@@ -710,303 +710,303 @@ int Fl_Table::handle(int event) {
switch ( event ) {
case FL_PUSH:
if (Fl::event_button() == 1 && !Fl::event_clicks()) {
- if (Fl::focus() != this) {
- take_focus();
- do_callback(CONTEXT_TABLE, -1, -1);
- ret = 1;
- }
- damage_zone(current_row, current_col, select_row, select_col, R, C);
- if (context == CONTEXT_CELL) {
- current_row = select_row = R;
- current_col = select_col = C;
- _selecting = CONTEXT_CELL;
- } else {
- current_row = select_row = -1;
- current_col = select_col = -1;
- }
+ if (Fl::focus() != this) {
+ take_focus();
+ do_callback(CONTEXT_TABLE, -1, -1);
+ ret = 1;
+ }
+ damage_zone(current_row, current_col, select_row, select_col, R, C);
+ if (context == CONTEXT_CELL) {
+ current_row = select_row = R;
+ current_col = select_col = C;
+ _selecting = CONTEXT_CELL;
+ } else {
+ current_row = select_row = -1;
+ current_col = select_col = -1;
+ }
}
// Need this for eg. right click to pop up a menu
if ( Fl_Widget::callback() && // callback defined?
- resizeflag == RESIZE_NONE ) { // not resizing?
- do_callback(context, R, C); // do callback
+ resizeflag == RESIZE_NONE ) { // not resizing?
+ do_callback(context, R, C); // do callback
}
switch ( context ) {
- case CONTEXT_CELL:
- // FL_PUSH on a cell?
- ret = 1; // express interest in FL_RELEASE
- break;
-
- case CONTEXT_NONE:
- // FL_PUSH on table corner?
- if ( Fl::event_button() == 1 &&
- Fl::event_x() < x() + row_header_width()) {
- current_col = 0;
- select_col = cols() - 1;
- current_row = 0;
- select_row = rows() - 1;
- damage_zone(current_row, current_col, select_row, select_col);
- ret = 1;
- }
- break;
-
- case CONTEXT_COL_HEADER:
- // FL_PUSH on a column header?
- if ( Fl::event_button() == 1) {
- // Resizing? Handle it
- if ( resizeflag ) {
- // Start resize if left click on column border.
- // "ret=1" ensures we get drag events from now on.
- // (C-1) is used if mouse is over the left hand side
- // of cell, so we resize the next column on the left.
- //
- _resizing_col = ( resizeflag & RESIZE_COL_LEFT ) ? C-1 : C;
- _resizing_row = -1;
- _dragging_x = Fl::event_x();
- ret = 1;
- } else {
- // Not resizing? Select the column
- current_col = select_col = C;
- current_row = 0;
- select_row = rows() - 1;
- _selecting = CONTEXT_COL_HEADER;
- damage_zone(current_row, current_col, select_row, select_col);
- ret = 1;
- }
- }
- break;
-
- case CONTEXT_ROW_HEADER:
- // FL_PUSH on a row header?
- if ( Fl::event_button() == 1 ) {
- // Resizing? Handle it
- if ( resizeflag ) {
- // Start resize if left mouse clicked on row border.
- // "ret = 1" ensures we get drag events from now on.
- // (R-1) is used if mouse is over the top of the cell,
- // so that we resize the row above.
- //
- _resizing_row = ( resizeflag & RESIZE_ROW_ABOVE ) ? R-1 : R;
- _resizing_col = -1;
- _dragging_y = Fl::event_y();
- ret = 1;
- } else {
- // Not resizing? Select the row
- current_row = select_row = R;
- current_col = 0;
- select_col = cols() - 1;
- _selecting = CONTEXT_ROW_HEADER;
- damage_zone(current_row, current_col, select_row, select_col);
- ret = 1;
- }
- }
- break;
-
- default:
- ret = 0; // express disinterest
- break;
+ case CONTEXT_CELL:
+ // FL_PUSH on a cell?
+ ret = 1; // express interest in FL_RELEASE
+ break;
+
+ case CONTEXT_NONE:
+ // FL_PUSH on table corner?
+ if ( Fl::event_button() == 1 &&
+ Fl::event_x() < x() + row_header_width()) {
+ current_col = 0;
+ select_col = cols() - 1;
+ current_row = 0;
+ select_row = rows() - 1;
+ damage_zone(current_row, current_col, select_row, select_col);
+ ret = 1;
+ }
+ break;
+
+ case CONTEXT_COL_HEADER:
+ // FL_PUSH on a column header?
+ if ( Fl::event_button() == 1) {
+ // Resizing? Handle it
+ if ( resizeflag ) {
+ // Start resize if left click on column border.
+ // "ret=1" ensures we get drag events from now on.
+ // (C-1) is used if mouse is over the left hand side
+ // of cell, so we resize the next column on the left.
+ //
+ _resizing_col = ( resizeflag & RESIZE_COL_LEFT ) ? C-1 : C;
+ _resizing_row = -1;
+ _dragging_x = Fl::event_x();
+ ret = 1;
+ } else {
+ // Not resizing? Select the column
+ current_col = select_col = C;
+ current_row = 0;
+ select_row = rows() - 1;
+ _selecting = CONTEXT_COL_HEADER;
+ damage_zone(current_row, current_col, select_row, select_col);
+ ret = 1;
+ }
+ }
+ break;
+
+ case CONTEXT_ROW_HEADER:
+ // FL_PUSH on a row header?
+ if ( Fl::event_button() == 1 ) {
+ // Resizing? Handle it
+ if ( resizeflag ) {
+ // Start resize if left mouse clicked on row border.
+ // "ret = 1" ensures we get drag events from now on.
+ // (R-1) is used if mouse is over the top of the cell,
+ // so that we resize the row above.
+ //
+ _resizing_row = ( resizeflag & RESIZE_ROW_ABOVE ) ? R-1 : R;
+ _resizing_col = -1;
+ _dragging_y = Fl::event_y();
+ ret = 1;
+ } else {
+ // Not resizing? Select the row
+ current_row = select_row = R;
+ current_col = 0;
+ select_col = cols() - 1;
+ _selecting = CONTEXT_ROW_HEADER;
+ damage_zone(current_row, current_col, select_row, select_col);
+ ret = 1;
+ }
+ }
+ break;
+
+ default:
+ ret = 0; // express disinterest
+ break;
}
_last_row = R;
break;
-
+
case FL_DRAG:
if (_auto_drag == 1) {
- ret = 1;
- break;
+ ret = 1;
+ break;
}
if ( _resizing_col > -1 ) {
- // Dragging column?
- //
- // Let user drag even /outside/ the row/col widget.
- // Don't allow column width smaller than 1.
- // Continue to show FL_CURSOR_WE at all times during drag.
- //
- int offset = _dragging_x - Fl::event_x();
- int new_w = col_width(_resizing_col) - offset;
- if ( new_w < _col_resize_min ) new_w = _col_resize_min;
- col_width(_resizing_col, new_w);
- _dragging_x = Fl::event_x();
- table_resized();
- redraw();
- change_cursor(FL_CURSOR_WE);
- ret = 1;
- if ( Fl_Widget::callback() && when() & FL_WHEN_CHANGED ) {
- do_callback(CONTEXT_RC_RESIZE, R, C);
- }
+ // Dragging column?
+ //
+ // Let user drag even /outside/ the row/col widget.
+ // Don't allow column width smaller than 1.
+ // Continue to show FL_CURSOR_WE at all times during drag.
+ //
+ int offset = _dragging_x - Fl::event_x();
+ int new_w = col_width(_resizing_col) - offset;
+ if ( new_w < _col_resize_min ) new_w = _col_resize_min;
+ col_width(_resizing_col, new_w);
+ _dragging_x = Fl::event_x();
+ table_resized();
+ redraw();
+ change_cursor(FL_CURSOR_WE);
+ ret = 1;
+ if ( Fl_Widget::callback() && when() & FL_WHEN_CHANGED ) {
+ do_callback(CONTEXT_RC_RESIZE, R, C);
+ }
}
else if ( _resizing_row > -1 ) {
- // Dragging row?
- //
- // Let user drag even /outside/ the row/col widget.
- // Don't allow row width smaller than 1.
- // Continue to show FL_CURSOR_NS at all times during drag.
- //
- int offset = _dragging_y - Fl::event_y();
- int new_h = row_height(_resizing_row) - offset;
- if ( new_h < _row_resize_min ) new_h = _row_resize_min;
- row_height(_resizing_row, new_h);
- _dragging_y = Fl::event_y();
- table_resized();
- redraw();
- change_cursor(FL_CURSOR_NS);
- ret = 1;
- if ( Fl_Widget::callback() && when() & FL_WHEN_CHANGED ) {
- do_callback(CONTEXT_RC_RESIZE, R, C);
- }
+ // Dragging row?
+ //
+ // Let user drag even /outside/ the row/col widget.
+ // Don't allow row width smaller than 1.
+ // Continue to show FL_CURSOR_NS at all times during drag.
+ //
+ int offset = _dragging_y - Fl::event_y();
+ int new_h = row_height(_resizing_row) - offset;
+ if ( new_h < _row_resize_min ) new_h = _row_resize_min;
+ row_height(_resizing_row, new_h);
+ _dragging_y = Fl::event_y();
+ table_resized();
+ redraw();
+ change_cursor(FL_CURSOR_NS);
+ ret = 1;
+ if ( Fl_Widget::callback() && when() & FL_WHEN_CHANGED ) {
+ do_callback(CONTEXT_RC_RESIZE, R, C);
+ }
} else {
- if (Fl::event_button() == 1 &&
- _selecting == CONTEXT_CELL &&
- context == CONTEXT_CELL) {
- if (select_row != R || select_col != C) {
- damage_zone(current_row, current_col, select_row, select_col, R, C);
- }
- select_row = R;
- select_col = C;
- ret = 1;
- }
- else if (Fl::event_button() == 1 &&
- _selecting == CONTEXT_ROW_HEADER &&
- context & (CONTEXT_ROW_HEADER|CONTEXT_COL_HEADER|CONTEXT_CELL)) {
- if (select_row != R) {
- damage_zone(current_row, current_col, select_row, select_col, R, C);
- }
- select_row = R;
- ret = 1;
- }
- else if (Fl::event_button() == 1 &&
- _selecting == CONTEXT_COL_HEADER
- && context & (CONTEXT_ROW_HEADER|CONTEXT_COL_HEADER|CONTEXT_CELL)) {
- if (select_col != C) {
- damage_zone(current_row, current_col, select_row, select_col, R, C);
- }
- select_col = C;
- ret = 1;
- }
+ if (Fl::event_button() == 1 &&
+ _selecting == CONTEXT_CELL &&
+ context == CONTEXT_CELL) {
+ if (select_row != R || select_col != C) {
+ damage_zone(current_row, current_col, select_row, select_col, R, C);
+ }
+ select_row = R;
+ select_col = C;
+ ret = 1;
+ }
+ else if (Fl::event_button() == 1 &&
+ _selecting == CONTEXT_ROW_HEADER &&
+ context & (CONTEXT_ROW_HEADER|CONTEXT_COL_HEADER|CONTEXT_CELL)) {
+ if (select_row != R) {
+ damage_zone(current_row, current_col, select_row, select_col, R, C);
+ }
+ select_row = R;
+ ret = 1;
+ }
+ else if (Fl::event_button() == 1 &&
+ _selecting == CONTEXT_COL_HEADER
+ && context & (CONTEXT_ROW_HEADER|CONTEXT_COL_HEADER|CONTEXT_CELL)) {
+ if (select_col != C) {
+ damage_zone(current_row, current_col, select_row, select_col, R, C);
+ }
+ select_col = C;
+ ret = 1;
+ }
}
// Enable autodrag if not resizing, and mouse has moved off table edge
if ( _resizing_row < 0 && _resizing_col < 0 && _auto_drag == 0 &&
- ( Fl::event_x() > x() + w() - 20 ||
- Fl::event_x() < x() + row_header_width() ||
- Fl::event_y() > y() + h() - 20 ||
- Fl::event_y() < y() + col_header_height()
- ) ) {
- _start_auto_drag();
- }
+ ( Fl::event_x() > x() + w() - 20 ||
+ Fl::event_x() < x() + row_header_width() ||
+ Fl::event_y() > y() + h() - 20 ||
+ Fl::event_y() < y() + col_header_height()
+ ) ) {
+ _start_auto_drag();
+ }
break;
-
+
case FL_RELEASE:
_stop_auto_drag();
switch ( context ) {
- case CONTEXT_ROW_HEADER: // release on row header
- case CONTEXT_COL_HEADER: // release on col header
- case CONTEXT_CELL: // release on a cell
- case CONTEXT_TABLE: // release on dead zone
- if ( _resizing_col == -1 && // not resizing a column
- _resizing_row == -1 && // not resizing a row
- Fl_Widget::callback() && // callback defined
- when() & FL_WHEN_RELEASE && // on button release
- _last_row == R ) { // release on same row PUSHed?
- // Need this for eg. left clicking on a cell to select it
- do_callback(context, R, C);
- }
- break;
-
- default:
- break;
+ case CONTEXT_ROW_HEADER: // release on row header
+ case CONTEXT_COL_HEADER: // release on col header
+ case CONTEXT_CELL: // release on a cell
+ case CONTEXT_TABLE: // release on dead zone
+ if ( _resizing_col == -1 && // not resizing a column
+ _resizing_row == -1 && // not resizing a row
+ Fl_Widget::callback() && // callback defined
+ when() & FL_WHEN_RELEASE && // on button release
+ _last_row == R ) { // release on same row PUSHed?
+ // Need this for eg. left clicking on a cell to select it
+ do_callback(context, R, C);
+ }
+ break;
+
+ default:
+ break;
}
if ( Fl::event_button() == 1 ) {
- change_cursor(FL_CURSOR_DEFAULT);
- _resizing_col = -1;
- _resizing_row = -1;
- ret = 1;
+ change_cursor(FL_CURSOR_DEFAULT);
+ _resizing_col = -1;
+ _resizing_row = -1;
+ ret = 1;
}
break;
-
+
case FL_MOVE:
if ( context == CONTEXT_COL_HEADER && // in column header?
- resizeflag ) { // resize + near boundary?
- change_cursor(FL_CURSOR_WE); // show resize cursor
+ resizeflag ) { // resize + near boundary?
+ change_cursor(FL_CURSOR_WE); // show resize cursor
}
else if ( context == CONTEXT_ROW_HEADER && // in row header?
- resizeflag ) { // resize + near boundary?
- change_cursor(FL_CURSOR_NS); // show resize cursor
+ resizeflag ) { // resize + near boundary?
+ change_cursor(FL_CURSOR_NS); // show resize cursor
} else {
change_cursor(FL_CURSOR_DEFAULT); // normal cursor
}
ret = 1;
break;
-
+
case FL_ENTER: // See FLTK event docs on the FL_ENTER widget
if (!ret) take_focus();
ret = 1;
//FALLTHROUGH
-
+
case FL_LEAVE: // We want to track the mouse if resizing is allowed.
if ( resizeflag ) {
ret = 1;
}
if ( event == FL_LEAVE ) {
- _stop_auto_drag();
- change_cursor(FL_CURSOR_DEFAULT);
+ _stop_auto_drag();
+ change_cursor(FL_CURSOR_DEFAULT);
}
break;
-
+
case FL_FOCUS:
Fl::focus(this);
//FALLTHROUGH
-
+
case FL_UNFOCUS:
_stop_auto_drag();
ret = 1;
break;
-
+
case FL_KEYBOARD: {
ret = 0;
int is_row = select_row;
int is_col = select_col;
switch(Fl::event_key()) {
- case FL_Home:
- ret = move_cursor(0, -1000000);
- break;
- case FL_End:
- ret = move_cursor(0, 1000000);
- break;
- case FL_Page_Up:
- ret = move_cursor(-(botrow - toprow - 1), 0);
- break;
- case FL_Page_Down:
- ret = move_cursor(botrow - toprow - 1 , 0);
- break;
- case FL_Left:
- ret = move_cursor(0, -1);
- break;
- case FL_Right:
- ret = move_cursor(0, 1);
- break;
- case FL_Up:
- ret = move_cursor(-1, 0);
- break;
- case FL_Down:
- ret = move_cursor(1, 0);
- break;
+ case FL_Home:
+ ret = move_cursor(0, -1000000);
+ break;
+ case FL_End:
+ ret = move_cursor(0, 1000000);
+ break;
+ case FL_Page_Up:
+ ret = move_cursor(-(botrow - toprow - 1), 0);
+ break;
+ case FL_Page_Down:
+ ret = move_cursor(botrow - toprow - 1 , 0);
+ break;
+ case FL_Left:
+ ret = move_cursor(0, -1);
+ break;
+ case FL_Right:
+ ret = move_cursor(0, 1);
+ break;
+ case FL_Up:
+ ret = move_cursor(-1, 0);
+ break;
+ case FL_Down:
+ ret = move_cursor(1, 0);
+ break;
}
if (ret && Fl::focus() != this) {
- do_callback(CONTEXT_TABLE, -1, -1);
- take_focus();
+ do_callback(CONTEXT_TABLE, -1, -1);
+ take_focus();
}
//if (!ret && Fl_Widget::callback() && when() & FL_WHEN_NOT_CHANGED )
if ( Fl_Widget::callback() &&
- (
- ( !ret && when() & FL_WHEN_NOT_CHANGED ) ||
- ( is_row!= select_row || is_col!= select_col )
- )
- ) {
- do_callback(CONTEXT_CELL, select_row, select_col);
- //damage_zone(current_row, current_col, select_row, select_col);
- ret = 1;
+ (
+ ( !ret && when() & FL_WHEN_NOT_CHANGED ) ||
+ ( is_row!= select_row || is_col!= select_col )
+ )
+ ) {
+ do_callback(CONTEXT_CELL, select_row, select_col);
+ //damage_zone(current_row, current_col, select_row, select_col);
+ ret = 1;
}
break;
}
-
+
default:
change_cursor(FL_CURSOR_DEFAULT);
break;
@@ -1018,23 +1018,23 @@ int Fl_Table::handle(int event) {
// Handle resize events if user resizes parent window.
//
void Fl_Table::resize(int X, int Y, int W, int H) {
- // Tell group to resize, and recalc our own widget as well
- Fl_Group::resize(X, Y, W, H);
- table_resized();
- redraw();
+ // Tell group to resize, and recalc our own widget as well
+ Fl_Group::resize(X, Y, W, H);
+ table_resized();
+ redraw();
}
// Draw a cell
void Fl_Table::_redraw_cell(TableContext context, int r, int c) {
- if ( r < 0 || c < 0 ) return;
- int X,Y,W,H;
- find_cell(context, r, c, X, Y, W, H); // find positions of cell
- draw_cell(context, r, c, X, Y, W, H); // call users' function to draw it
+ if ( r < 0 || c < 0 ) return;
+ int X,Y,W,H;
+ find_cell(context, r, c, X, Y, W, H); // find positions of cell
+ draw_cell(context, r, c, X, Y, W, H); // call users' function to draw it
}
int Fl_Table::is_selected(int r, int c) {
int s_left, s_right, s_top, s_bottom;
-
+
if (select_col > current_col) {
s_left = current_col;
s_right = select_col;
@@ -1087,8 +1087,8 @@ void Fl_Table::set_selection(int s_top, int s_left, int s_bottom, int s_right) {
//
void Fl_Table::draw() {
draw_cell(CONTEXT_STARTPAGE, 0, 0, // let user's drawing routine
- tix, tiy, tiw, tih); // prep new page
-
+ tix, tiy, tiw, tih); // prep new page
+
// Let fltk widgets draw themselves first. Do this after
// draw_cell(CONTEXT_STARTPAGE) in case user moves widgets around.
// Use window 'inner' clip to prevent drawing into table border.
@@ -1099,10 +1099,10 @@ void Fl_Table::draw() {
Fl_Group::draw();
}
fl_pop_clip();
-
+
// Explicitly draw border around widget, if any
draw_box(box(), x(), y(), w(), h(), color());
-
+
// If Fl_Scroll 'table' is hidden, draw its box
// Do this after Fl_Group::draw() so we draw over scrollbars
// that leak around the border.
@@ -1119,9 +1119,9 @@ void Fl_Table::draw() {
if ( ! ( damage() & FL_DAMAGE_ALL ) && _redraw_leftcol != -1 ) {
fl_push_clip(tix, tiy, tiw, tih);
for ( int c = _redraw_leftcol; c <= _redraw_rightcol; c++ ) {
- for ( int r = _redraw_toprow; r <= _redraw_botrow; r++ ) {
- _redraw_cell(CONTEXT_CELL, r, c);
- }
+ for ( int r = _redraw_toprow; r <= _redraw_botrow; r++ ) {
+ _redraw_cell(CONTEXT_CELL, r, c);
+ }
}
fl_pop_clip();
}
@@ -1129,21 +1129,21 @@ void Fl_Table::draw() {
int X,Y,W,H;
// Draw row headers, if any
if ( row_header() ) {
- get_bounds(CONTEXT_ROW_HEADER, X, Y, W, H);
- fl_push_clip(X,Y,W,H);
- for ( int r = toprow; r <= botrow; r++ ) {
- _redraw_cell(CONTEXT_ROW_HEADER, r, 0);
- }
- fl_pop_clip();
+ get_bounds(CONTEXT_ROW_HEADER, X, Y, W, H);
+ fl_push_clip(X,Y,W,H);
+ for ( int r = toprow; r <= botrow; r++ ) {
+ _redraw_cell(CONTEXT_ROW_HEADER, r, 0);
+ }
+ fl_pop_clip();
}
// Draw column headers, if any
if ( col_header() ) {
- get_bounds(CONTEXT_COL_HEADER, X, Y, W, H);
- fl_push_clip(X,Y,W,H);
- for ( int c = leftcol; c <= rightcol; c++ ) {
- _redraw_cell(CONTEXT_COL_HEADER, 0, c);
- }
- fl_pop_clip();
+ get_bounds(CONTEXT_COL_HEADER, X, Y, W, H);
+ fl_push_clip(X,Y,W,H);
+ for ( int c = leftcol; c <= rightcol; c++ ) {
+ _redraw_cell(CONTEXT_COL_HEADER, 0, c);
+ }
+ fl_pop_clip();
}
// Draw all cells.
// This includes cells partially obscured off edges of table.
@@ -1152,66 +1152,66 @@ void Fl_Table::draw() {
// drawing over deadzones; prevent deadzones by sizing columns.
//
fl_push_clip(tix, tiy, tiw, tih); {
- for ( int r = toprow; r <= botrow; r++ ) {
- for ( int c = leftcol; c <= rightcol; c++ ) {
- _redraw_cell(CONTEXT_CELL, r, c);
- }
- }
+ for ( int r = toprow; r <= botrow; r++ ) {
+ for ( int c = leftcol; c <= rightcol; c++ ) {
+ _redraw_cell(CONTEXT_CELL, r, c);
+ }
+ }
}
fl_pop_clip();
// Draw little rectangle in corner of headers
if ( row_header() && col_header() ) {
fl_rectf(wix, wiy, row_header_width(), col_header_height(), color());
}
-
+
// Table has a boxtype? Close those few dead pixels
if ( table->box() ) {
- if ( col_header() ) {
- fl_rectf(tox, wiy, Fl::box_dx(table->box()), col_header_height(), color());
- }
- if ( row_header() ) {
- fl_rectf(wix, toy, row_header_width(), Fl::box_dx(table->box()), color());
- }
+ if ( col_header() ) {
+ fl_rectf(tox, wiy, Fl::box_dx(table->box()), col_header_height(), color());
+ }
+ if ( row_header() ) {
+ fl_rectf(wix, toy, row_header_width(), Fl::box_dx(table->box()), color());
+ }
}
-
+
// Table width smaller than window? Fill remainder with rectangle
if ( table_w < tiw ) {
- fl_rectf(tix + table_w, tiy, tiw - table_w, tih, color());
- // Col header? fill that too
- if ( col_header() ) {
- fl_rectf(tix + table_w,
- wiy,
- // get that corner just right..
- (tiw - table_w + Fl::box_dw(table->box()) -
- Fl::box_dx(table->box())),
- col_header_height(),
- color());
- }
+ fl_rectf(tix + table_w, tiy, tiw - table_w, tih, color());
+ // Col header? fill that too
+ if ( col_header() ) {
+ fl_rectf(tix + table_w,
+ wiy,
+ // get that corner just right..
+ (tiw - table_w + Fl::box_dw(table->box()) -
+ Fl::box_dx(table->box())),
+ col_header_height(),
+ color());
+ }
}
// Table height smaller than window? Fill remainder with rectangle
if ( table_h < tih ) {
- fl_rectf(tix, tiy + table_h, tiw, tih - table_h, color());
- if ( row_header() ) {
- // NOTE:
- // Careful with that lower corner; don't use tih; when eg.
- // table->box(FL_THIN_UPFRAME) and hscrollbar hidden,
- // leaves a row of dead pixels.
- //
- fl_rectf(wix, tiy + table_h, row_header_width(),
- (wiy+wih) - (tiy+table_h) -
- ( hscrollbar->visible() ? SCROLLBAR_SIZE : 0),
- color());
- }
+ fl_rectf(tix, tiy + table_h, tiw, tih - table_h, color());
+ if ( row_header() ) {
+ // NOTE:
+ // Careful with that lower corner; don't use tih; when eg.
+ // table->box(FL_THIN_UPFRAME) and hscrollbar hidden,
+ // leaves a row of dead pixels.
+ //
+ fl_rectf(wix, tiy + table_h, row_header_width(),
+ (wiy+wih) - (tiy+table_h) -
+ ( hscrollbar->visible() ? SCROLLBAR_SIZE : 0),
+ color());
+ }
}
}
// Both scrollbars? Draw little box in lower right
if ( vscrollbar->visible() && hscrollbar->visible() ) {
fl_rectf(vscrollbar->x(), hscrollbar->y(),
- vscrollbar->w(), hscrollbar->h(), color());
+ vscrollbar->w(), hscrollbar->h(), color());
}
draw_cell(CONTEXT_ENDPAGE, 0, 0, // let user's drawing
- tix, tiy, tiw, tih); // routines cleanup
-
+ tix, tiy, tiw, tih); // routines cleanup
+
_redraw_leftcol = _redraw_rightcol = _redraw_toprow = _redraw_botrow = -1;
}
fl_pop_clip();
diff --git a/src/Fl_Table_Row.cxx b/src/Fl_Table_Row.cxx
index 85fa5aac5..8536c7e44 100644
--- a/src/Fl_Table_Row.cxx
+++ b/src/Fl_Table_Row.cxx
@@ -46,7 +46,7 @@ void Fl_Table_Row::type(TableRowSelectMode val) {
case SELECT_NONE:
{
for ( int row=0; row<rows(); row++ ) {
- _rowselect[row] = 0;
+ _rowselect[row] = 0;
}
redraw();
break;
@@ -55,11 +55,11 @@ void Fl_Table_Row::type(TableRowSelectMode val) {
{
int count = 0;
for ( int row=0; row<rows(); row++ ) {
- if ( _rowselect[row] ) {
- if ( ++count > 1 ) { // only one allowed
- _rowselect[row] = 0;
- }
- }
+ if ( _rowselect[row] ) {
+ if ( ++count > 1 ) { // only one allowed
+ _rowselect[row] = 0;
+ }
+ }
}
redraw();
break;
@@ -87,39 +87,39 @@ int Fl_Table_Row::select_row(int row, int flag) {
switch ( _selectmode ) {
case SELECT_NONE:
return(-1);
-
+
case SELECT_SINGLE:
{
int oldval;
for ( int t=0; t<rows(); t++ ) {
- if ( t == row ) {
- oldval = _rowselect[row];
- if ( flag == 2 ) { _rowselect[row] ^= 1; }
- else { _rowselect[row] = flag; }
- if ( oldval != _rowselect[row] ) {
- redraw_range(row, row, leftcol, rightcol);
- ret = 1;
- }
- }
- else if ( _rowselect[t] ) {
- _rowselect[t] = 0;
- redraw_range(t, t, leftcol, rightcol);
- }
+ if ( t == row ) {
+ oldval = _rowselect[row];
+ if ( flag == 2 ) { _rowselect[row] ^= 1; }
+ else { _rowselect[row] = flag; }
+ if ( oldval != _rowselect[row] ) {
+ redraw_range(row, row, leftcol, rightcol);
+ ret = 1;
+ }
+ }
+ else if ( _rowselect[t] ) {
+ _rowselect[t] = 0;
+ redraw_range(t, t, leftcol, rightcol);
+ }
}
break;
}
-
+
case SELECT_MULTI:
{
int oldval = _rowselect[row];
if ( flag == 2 ) { _rowselect[row] ^= 1; }
else { _rowselect[row] = flag; }
if ( _rowselect[row] != oldval ) { // select state changed?
- if ( row >= toprow && row <= botrow ) { // row visible?
- // Extend partial redraw range
- redraw_range(row, row, leftcol, rightcol);
- }
- ret = 1;
+ if ( row >= toprow && row <= botrow ) { // row visible?
+ // Extend partial redraw range
+ redraw_range(row, row, leftcol, rightcol);
+ }
+ ret = 1;
}
}
}
@@ -131,24 +131,24 @@ void Fl_Table_Row::select_all_rows(int flag) {
switch ( _selectmode ) {
case SELECT_NONE:
return;
-
+
case SELECT_SINGLE:
if ( flag != 0 ) return;
//FALLTHROUGH
-
+
case SELECT_MULTI:
{
char changed = 0;
if ( flag == 2 ) {
- for ( int row=0; row<(int)_rowselect.size(); row++ ) {
- _rowselect[row] ^= 1;
- }
- changed = 1;
+ for ( int row=0; row<(int)_rowselect.size(); row++ ) {
+ _rowselect[row] ^= 1;
+ }
+ changed = 1;
} else {
- for ( int row=0; row<(int)_rowselect.size(); row++ ) {
- changed |= (_rowselect[row] != flag)?1:0;
- _rowselect[row] = flag;
- }
+ for ( int row=0; row<(int)_rowselect.size(); row++ ) {
+ changed |= (_rowselect[row] != flag)?1:0;
+ _rowselect[row] = flag;
+ }
}
if ( changed ) {
redraw();
@@ -169,19 +169,19 @@ void Fl_Table_Row::rows(int val) {
// Handle events
int Fl_Table_Row::handle(int event) {
-
+
// fprintf(stderr, "** EVENT: %s: EVENT XY=%d,%d\n",
// eventnames[event], Fl::event_x(), Fl::event_y()); // debugging
-
+
// Let base class handle event
int ret = Fl_Table::handle(event);
-
+
// The following code disables cell selection.. why was it added? -erco 05/18/03
// if ( ret ) { _last_y = Fl::event_y(); return(1); } // base class 'handled' it (eg. column resize)
-
+
int shiftstate = (Fl::event_state() & FL_CTRL) ? FL_CTRL :
- (Fl::event_state() & FL_SHIFT) ? FL_SHIFT : 0;
-
+ (Fl::event_state() & FL_SHIFT) ? FL_SHIFT : 0;
+
// Which row/column are we over?
int R, C; // row/column being worked on
ResizeFlag resizeflag; // which resizing area are we over? (0=none)
@@ -189,128 +189,128 @@ int Fl_Table_Row::handle(int event) {
switch ( event ) {
case FL_PUSH:
if ( Fl::event_button() == 1 ) {
- _last_push_x = Fl::event_x(); // save regardless of context
- _last_push_y = Fl::event_y(); // " "
-
- // Handle selection in table.
- // Select cell under cursor, and enable drag selection mode.
- //
- if ( context == CONTEXT_CELL ) {
- // Ctrl key? Toggle selection state
- switch ( shiftstate ) {
- case FL_CTRL:
- select_row(R, 2); // toggle
- break;
-
- case FL_SHIFT:
- {
- select_row(R, 1);
- if ( _last_row > -1 ) {
- int srow = R, erow = _last_row;
- if ( srow > erow ) {
- srow = _last_row;
- erow = R;
- }
- for ( int row = srow; row <= erow; row++ ) {
- select_row(row, 1);
- }
- }
- break;
- }
-
- default:
- select_all_rows(0); // clear all previous selections
- select_row(R, 1);
- break;
- }
-
- _last_row = R;
- _dragging_select = 1;
- ret = 1; // FL_PUSH handled (ensures FL_DRAG will be sent)
- // redraw(); // redraw() handled by select_row()
- }
+ _last_push_x = Fl::event_x(); // save regardless of context
+ _last_push_y = Fl::event_y(); // " "
+
+ // Handle selection in table.
+ // Select cell under cursor, and enable drag selection mode.
+ //
+ if ( context == CONTEXT_CELL ) {
+ // Ctrl key? Toggle selection state
+ switch ( shiftstate ) {
+ case FL_CTRL:
+ select_row(R, 2); // toggle
+ break;
+
+ case FL_SHIFT:
+ {
+ select_row(R, 1);
+ if ( _last_row > -1 ) {
+ int srow = R, erow = _last_row;
+ if ( srow > erow ) {
+ srow = _last_row;
+ erow = R;
+ }
+ for ( int row = srow; row <= erow; row++ ) {
+ select_row(row, 1);
+ }
+ }
+ break;
+ }
+
+ default:
+ select_all_rows(0); // clear all previous selections
+ select_row(R, 1);
+ break;
+ }
+
+ _last_row = R;
+ _dragging_select = 1;
+ ret = 1; // FL_PUSH handled (ensures FL_DRAG will be sent)
+ // redraw(); // redraw() handled by select_row()
+ }
}
break;
-
+
case FL_DRAG:
{
if ( _dragging_select ) {
- // Dragged off table edges? Handle scrolling
- int offtop = toy - _last_y; // >0 if off top of table
- int offbot = _last_y - (toy + toh); // >0 if off bottom of table
-
- if ( offtop > 0 && row_position() > 0 ) {
- // Only scroll in upward direction
- int diff = _last_y - Fl::event_y();
- if ( diff < 1 ) {
- ret = 1;
- break;
- }
- row_position(row_position() - diff);
- context = CONTEXT_CELL; C = 0; R = row_position(); // HACK: fake it
- if ( R < 0 || R > rows() ) { ret = 1; break; } // HACK: ugly
- }
- else if ( offbot > 0 && botrow < rows() ) {
- // Only scroll in downward direction
- int diff = Fl::event_y() - _last_y;
- if ( diff < 1 ) {
- ret = 1;
- break;
- }
- row_position(row_position() + diff);
- context = CONTEXT_CELL; C = 0; R = botrow; // HACK: fake it
- if ( R < 0 || R > rows() ) { ret = 1; break; } // HACK: ugly
- }
- if ( context == CONTEXT_CELL ) {
- switch ( shiftstate ) {
- case FL_CTRL:
- if ( R != _last_row ) { // toggle if dragged to new row
- select_row(R, 2); // 2=toggle
- }
- break;
-
- case FL_SHIFT:
- default:
- select_row(R, 1);
- if ( _last_row > -1 ) {
- int srow = R, erow = _last_row;
- if ( srow > erow ) {
- srow = _last_row;
- erow = R;
- }
- for ( int row = srow; row <= erow; row++ ) {
- select_row(row, 1);
- }
- }
- break;
- }
- ret = 1; // drag handled
- _last_row = R;
- }
+ // Dragged off table edges? Handle scrolling
+ int offtop = toy - _last_y; // >0 if off top of table
+ int offbot = _last_y - (toy + toh); // >0 if off bottom of table
+
+ if ( offtop > 0 && row_position() > 0 ) {
+ // Only scroll in upward direction
+ int diff = _last_y - Fl::event_y();
+ if ( diff < 1 ) {
+ ret = 1;
+ break;
+ }
+ row_position(row_position() - diff);
+ context = CONTEXT_CELL; C = 0; R = row_position(); // HACK: fake it
+ if ( R < 0 || R > rows() ) { ret = 1; break; } // HACK: ugly
+ }
+ else if ( offbot > 0 && botrow < rows() ) {
+ // Only scroll in downward direction
+ int diff = Fl::event_y() - _last_y;
+ if ( diff < 1 ) {
+ ret = 1;
+ break;
+ }
+ row_position(row_position() + diff);
+ context = CONTEXT_CELL; C = 0; R = botrow; // HACK: fake it
+ if ( R < 0 || R > rows() ) { ret = 1; break; } // HACK: ugly
+ }
+ if ( context == CONTEXT_CELL ) {
+ switch ( shiftstate ) {
+ case FL_CTRL:
+ if ( R != _last_row ) { // toggle if dragged to new row
+ select_row(R, 2); // 2=toggle
+ }
+ break;
+
+ case FL_SHIFT:
+ default:
+ select_row(R, 1);
+ if ( _last_row > -1 ) {
+ int srow = R, erow = _last_row;
+ if ( srow > erow ) {
+ srow = _last_row;
+ erow = R;
+ }
+ for ( int row = srow; row <= erow; row++ ) {
+ select_row(row, 1);
+ }
+ }
+ break;
+ }
+ ret = 1; // drag handled
+ _last_row = R;
+ }
}
break;
}
-
+
case FL_RELEASE:
if ( Fl::event_button() == 1 ) {
- _dragging_select = 0;
- ret = 1; // release handled
- // Clicked off edges of data table?
- // A way for user to clear the current selection.
- //
- int databot = tiy + table_h,
- dataright = tix + table_w;
- if (
- ( _last_push_x > dataright && Fl::event_x() > dataright ) ||
- ( _last_push_y > databot && Fl::event_y() > databot )
- ) {
- select_all_rows(0); // clear previous selections
- }
+ _dragging_select = 0;
+ ret = 1; // release handled
+ // Clicked off edges of data table?
+ // A way for user to clear the current selection.
+ //
+ int databot = tiy + table_h,
+ dataright = tix + table_w;
+ if (
+ ( _last_push_x > dataright && Fl::event_x() > dataright ) ||
+ ( _last_push_y > databot && Fl::event_y() > databot )
+ ) {
+ select_all_rows(0); // clear previous selections
+ }
}
break;
-
+
default:
- break;
+ break;
}
_last_y = Fl::event_y();
return(ret);
diff --git a/src/Fl_Tree.cxx b/src/Fl_Tree.cxx
new file mode 100644
index 000000000..22032810c
--- /dev/null
+++ b/src/Fl_Tree.cxx
@@ -0,0 +1,354 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <FL/Fl_Tree.H>
+
+#define SCROLL_W 15
+
+//////////////////////
+// Fl_Tree.cxx
+//////////////////////
+//
+// Fl_Tree -- This file is part of the Fl_Tree widget for FLTK
+// Copyright (C) 2009 by Greg Ercolano.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+
+// INTERNAL: scroller callback
+static void scroll_cb(Fl_Widget*,void *data) {
+ ((Fl_Tree*)data)->redraw();
+}
+
+// INTERNAL: Parse elements from path into an array of null terminated strings
+// Path="/aa/bb"
+// Return: arr[0]="aa", arr[1]="bb", arr[2]=0
+// Caller must: free(arr[0]); free(arr);
+//
+static char **parse_path(const char *path) {
+ while ( *path == '/' ) path++; // skip leading '/'
+ // First pass: identify, null terminate, and count separators
+ int seps = 1; // separator count (1: first item)
+ int arrsize = 1; // array size (1: first item)
+ char *save = strdup(path); // make copy we can modify
+ char *s = save;
+ while ( ( s = strchr(s, '/') ) ) {
+ while ( *s == '/' ) { *s++ = 0; seps++; }
+ if ( *s ) { arrsize++; }
+ }
+ arrsize++; // (room for terminating NULL)
+ // Second pass: create array, save nonblank elements
+ char **arr = (char**)malloc(sizeof(char*) * arrsize);
+ int t = 0;
+ s = save;
+ while ( seps-- > 0 ) {
+ if ( *s ) { arr[t++] = s; } // skips empty fields, eg. '//'
+ s += (strlen(s) + 1);
+ }
+ arr[t] = 0;
+ return(arr);
+}
+
+// INTERNAL: Recursively descend tree hierarchy, accumulating total child count
+static int find_total_children(Fl_Tree_Item *item, int count=0) {
+ count++;
+ for ( int t=0; t<item->children(); t++ ) {
+ count = find_total_children(item->child(t), count);
+ }
+ return(count);
+}
+
+/// Constructor.
+Fl_Tree::Fl_Tree(int X, int Y, int W, int H, const char *L) : Fl_Group(X,Y,W,H,L) {
+ _root = new Fl_Tree_Item(_prefs);
+ _root->parent(0); // we are root of tree
+ _root->label("ROOT");
+ _item_clicked = 0;
+ box(FL_DOWN_BOX);
+ color(FL_WHITE);
+ when(FL_WHEN_CHANGED);
+ _vscroll = new Fl_Scrollbar(0,0,0,0); // will be resized by draw()
+ _vscroll->hide();
+ _vscroll->type(FL_VERTICAL);
+ _vscroll->step(1);
+ _vscroll->callback(scroll_cb, (void*)this);
+ end();
+}
+
+/// Destructor.
+Fl_Tree::~Fl_Tree() {
+ if ( _root ) { delete _root; _root = 0; }
+}
+
+/// Adds a new item, given a 'menu style' path, eg: "/Parent/Child/item".
+/// Any parent nodes that don't already exist are created automatically.
+/// Adds the item based on the value of sortorder().
+/// \returns the child item created, or 0 on error.
+///
+Fl_Tree_Item* Fl_Tree::add(const char *path) {
+ if ( ! _root ) { // Create root if none
+ _root = new Fl_Tree_Item(_prefs);
+ _root->parent(0);
+ _root->label("ROOT");
+ }
+ char **arr = parse_path(path);
+ Fl_Tree_Item *item = _root->add(_prefs, arr);
+ free((void*)arr[0]);
+ free((void*)arr);
+ return(item);
+}
+
+/// Inserts a new item above the specified Fl_Tree_Item, with the label set to 'name'.
+/// \returns the item that was added, or 0 if 'above' could not be found.
+///
+Fl_Tree_Item* Fl_Tree::insert_above(Fl_Tree_Item *above, const char *name) {
+ return(above->insert_above(_prefs, name));
+}
+
+/// Find the item, given a menu style path, eg: "/Parent/Child/item".
+///
+/// There is both a const and non-const version of this method.
+/// Const version allows pure const methods to use this method
+/// to do lookups without causing compiler errors.
+/// \returns the item, or 0 if not found.
+///
+Fl_Tree_Item *Fl_Tree::find_item(const char *path) {
+ if ( ! _root ) return(0);
+ char **arr = parse_path(path);
+ Fl_Tree_Item *item = _root->find_item(arr);
+ free((void*)arr[0]);
+ free((void*)arr);
+ return(item);
+}
+
+/// A const version of Fl_Tree::find_item(const char *path)
+const Fl_Tree_Item *Fl_Tree::find_item(const char *path) const {
+ if ( ! _root ) return(0);
+ char **arr = parse_path(path);
+ const Fl_Tree_Item *item = _root->find_item(arr);
+ free((void*)arr[0]);
+ free((void*)arr);
+ return(item);
+}
+
+/// Standard FLTK draw() method, handles draws the tree widget.
+void Fl_Tree::draw() {
+ // Let group draw box+label but *NOT* children.
+ // We handle drawing children ourselves by calling each item's draw()
+ //
+ Fl_Group::draw_box();
+ Fl_Group::draw_label();
+ if ( ! _root ) return;
+ int cx = x() + Fl::box_dx(box());
+ int cy = y() + Fl::box_dy(box());
+ int cw = w() - Fl::box_dw(box());
+ int ch = h() - Fl::box_dh(box());
+ // These values are changed during drawing
+ // 'Y' will be the lowest point on the tree
+ int X = cx + _prefs.marginleft();
+ int Y = cy + _prefs.margintop() - (_vscroll->visible() ? _vscroll->value() : 0);
+ int W = cw - _prefs.marginleft(); // - _prefs.marginright();
+ int Ysave = Y;
+ fl_push_clip(cx,cy,cw,ch);
+ {
+ fl_font(_prefs.labelfont(), _prefs.labelsize());
+ _root->draw(X, Y, W, this, _prefs);
+ }
+ fl_pop_clip();
+
+ // Show vertical scrollbar?
+ int ydiff = (Y+_prefs.margintop())-Ysave; // ydiff=size of tree
+ int ytoofar = (cy+ch) - Y; // ytoofar -- scrolled beyond bottom (eg. stow)
+
+ //printf("ydiff=%d ch=%d Ysave=%d ytoofar=%d value=%d\n",
+ //int(ydiff),int(ch),int(Ysave),int(ytoofar), int(_vscroll->value()));
+
+ if ( ytoofar > 0 ) ydiff += ytoofar;
+ if ( Ysave<cy || ydiff > ch || int(_vscroll->value()) > 1 ) {
+ _vscroll->visible();
+ int sx = x()+w()-Fl::box_dx(box())-SCROLL_W;
+ int sy = y()+Fl::box_dy(box());
+ int sw = SCROLL_W;
+ int sh = h()-Fl::box_dh(box());
+ _vscroll->show();
+ _vscroll->range(0.0,ydiff-ch);
+ _vscroll->resize(sx,sy,sw,sh);
+ _vscroll->slider_size(float(ch)/float(ydiff));
+ } else {
+ _vscroll->Fl_Slider::value(0);
+ _vscroll->hide();
+ }
+ fl_push_clip(cx,cy,cw,ch);
+ Fl_Group::draw_children(); // draws any FLTK children set via Fl_Tree::widget()
+ fl_pop_clip();
+}
+
+/// Standard FLTK event handler for this widget.
+int Fl_Tree::handle(int e) {
+ static Fl_Tree_Item *lastselect = 0;
+ int changed = 0;
+ int ret = Fl_Group::handle(e);
+ if ( ! _root ) return(ret);
+ switch ( e ) {
+ case FL_PUSH: {
+ lastselect = 0;
+ item_clicked(0); // assume no item was clicked
+ Fl_Tree_Item *o = _root->find_clicked(_prefs);
+ if ( o ) {
+ ret |= 1; // handled
+ if ( Fl::event_button() == FL_LEFT_MOUSE ) {
+ // Was collapse icon clicked?
+ if ( o->event_on_collapse_icon(_prefs) ) {
+ o->open_toggle();
+ redraw();
+ }
+ // Item's label clicked?
+ else if ( o->event_on_label(_prefs) &&
+ (!o->widget() || !Fl::event_inside(o->widget())) &&
+ callback() &&
+ (!_vscroll->visible() || !Fl::event_inside(_vscroll)) ) {
+ item_clicked(o); // save item clicked
+ // Handle selection behavior
+ switch ( _prefs.selectmode() ) {
+ case FL_TREE_SELECT_NONE: { // no selection changes
+ break;
+ }
+ case FL_TREE_SELECT_SINGLE: {
+ changed = select_only(o);
+ break;
+ }
+ case FL_TREE_SELECT_MULTI: {
+ int state = Fl::event_state();
+ if ( state & FL_SHIFT ) {
+ if ( ! o->is_selected() ) {
+ o->select(); // add to selection
+ changed = 1; // changed
+ }
+ } else if ( state & FL_CTRL ) {
+ changed = 1; // changed
+ o->select_toggle(); // toggle selection state
+ lastselect = o; // save we toggled it (prevents oscillation)
+ } else {
+ changed = select_only(o);
+ }
+ break;
+ }
+ }
+ if ( changed ) {
+ redraw(); // make change(s) visible
+ if ( when() & FL_WHEN_CHANGED ) {
+ set_changed();
+ do_callback((Fl_Widget*)this, user_data()); // item callback
+ }
+ }
+ }
+ }
+ }
+ break;
+ }
+ case FL_DRAG: {
+ Fl_Tree_Item *o = _root->find_clicked(_prefs);
+ if ( o ) {
+ ret |= 1; // handled
+ // Item's label clicked?
+ if ( o->event_on_label(_prefs) &&
+ (!o->widget() || !Fl::event_inside(o->widget())) &&
+ callback() &&
+ (!_vscroll->visible() || !Fl::event_inside(_vscroll)) ) {
+ item_clicked(o); // save item clicked
+ // Handle selection behavior
+ switch ( _prefs.selectmode() ) {
+ case FL_TREE_SELECT_NONE: { // no selection changes
+ break;
+ }
+ case FL_TREE_SELECT_SINGLE: {
+ changed = select_only(o);
+ break;
+ }
+ case FL_TREE_SELECT_MULTI: {
+ int state = Fl::event_state();
+ if ( state & FL_CTRL ) {
+ if ( lastselect != o ) {// not already toggled from last microdrag?
+ changed = 1; // changed
+ o->select_toggle(); // toggle selection
+ lastselect = o; // save we toggled it (prevents oscillation)
+ redraw(); // make change(s) visible
+ }
+ } else {
+ changed = 1; // changed
+ o->select(); // select this
+ redraw(); // make change(s) visible
+ }
+ break;
+ }
+ }
+ if ( changed ) {
+ redraw(); // make change(s) visible
+ if ( when() & FL_WHEN_CHANGED ) {
+ set_changed();
+ do_callback((Fl_Widget*)this, user_data()); // item callback
+ }
+ }
+ }
+ }
+ }
+ case FL_RELEASE: {
+ if ( Fl::event_button() == FL_LEFT_MOUSE ) {
+ ret |= 1;
+ }
+ break;
+ }
+ }
+ return(ret);
+}
+
+/// Deselect item and all its children.
+/// If item is NULL, root() is used.
+/// Handles calling redraw() if anything was changed.
+/// Returns count of how many items were in the 'selected' state,
+/// ie. how many items were "changed".
+///
+int Fl_Tree::deselect_all(Fl_Tree_Item *item) {
+ item = item ? item : root(); // NULL? use root()
+ int count = item->deselect_all();
+ if ( count ) redraw(); // anything changed? cause redraw
+ return(count);
+}
+
+/// Select only this item.
+/// If item is NULL, root() is used.
+/// Handles calling redraw() if anything was changed.
+/// Returns how many items were changed, if any.
+///
+int Fl_Tree::select_only(Fl_Tree_Item *selitem) {
+ selitem = selitem ? selitem : root(); // NULL? use root()
+ int changed = 0;
+ for ( Fl_Tree_Item *item = first(); item; item = item->next() ) {
+ if ( item == selitem ) {
+ if ( item->is_selected() ) continue; // don't count if already selected
+ item->select();
+ ++changed;
+ } else {
+ if ( item->is_selected() ) {
+ item->deselect();
+ ++changed;
+ }
+ }
+ }
+ if ( changed ) redraw(); // anything changed? redraw
+ return(changed);
+}
diff --git a/src/Fl_Tree_Item.cxx b/src/Fl_Tree_Item.cxx
new file mode 100644
index 000000000..713c4535d
--- /dev/null
+++ b/src/Fl_Tree_Item.cxx
@@ -0,0 +1,707 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <FL/Fl_Widget.H>
+#include <FL/Fl_Tree_Item.H>
+#include <FL/Fl_Tree_Prefs.H>
+
+//////////////////////
+// Fl_Tree_Item.cxx
+//////////////////////
+//
+// Fl_Tree -- This file is part of the Fl_Tree widget for FLTK
+// Copyright (C) 2009 by Greg Ercolano.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+
+// Was the last event inside the specified xywh?
+static int event_inside(const int xywh[4]) {
+ return(Fl::event_inside(xywh[0],xywh[1],xywh[2],xywh[3]));
+}
+
+/// Constructor.
+/// Makes a new instance of Fl_Tree_Item using defaults from 'prefs'.
+///
+Fl_Tree_Item::Fl_Tree_Item(const Fl_Tree_Prefs &prefs) {
+ _label = 0;
+ _labelfont = prefs.labelfont();
+ _labelsize = prefs.labelsize();
+ _labelfgcolor = prefs.fgcolor();
+ _labelbgcolor = prefs.bgcolor();
+ _widget = 0;
+ _open = 1;
+ _visible = 1;
+ _active = 1;
+ _selected = 0;
+ _xywh[0] = 0;
+ _xywh[1] = 0;
+ _xywh[2] = 0;
+ _xywh[3] = 0;
+ _collapse_xywh[0] = 0;
+ _collapse_xywh[1] = 0;
+ _collapse_xywh[2] = 0;
+ _collapse_xywh[3] = 0;
+ _label_xywh[0] = 0;
+ _label_xywh[1] = 0;
+ _label_xywh[2] = 0;
+ _label_xywh[3] = 0;
+ _usericon = 0;
+ _parent = 0;
+}
+
+// DTOR
+Fl_Tree_Item::~Fl_Tree_Item() {
+ if ( _label ) {
+ free((void*)_label);
+ _label = 0;
+ }
+ _widget = 0; // Fl_Group will handle destruction
+ _usericon = 0; // user handled allocation
+ //_children.clear(); // array's destructor handles itself
+}
+
+/// Copy constructor.
+Fl_Tree_Item::Fl_Tree_Item(const Fl_Tree_Item *o) {
+ _label = o->label() ? strdup(o->label()) : 0;
+ _labelfont = o->labelfont();
+ _labelsize = o->labelsize();
+ _labelfgcolor = o->labelfgcolor();
+ _labelbgcolor = o->labelbgcolor();
+ _widget = o->widget();
+ _open = o->_open;
+ _visible = o->_visible;
+ _active = o->_active;
+ _selected = o->_selected;
+ _xywh[0] = o->_xywh[0];
+ _xywh[1] = o->_xywh[1];
+ _xywh[2] = o->_xywh[2];
+ _xywh[3] = o->_xywh[3];
+ _collapse_xywh[0] = o->_collapse_xywh[0];
+ _collapse_xywh[1] = o->_collapse_xywh[1];
+ _collapse_xywh[2] = o->_collapse_xywh[2];
+ _collapse_xywh[3] = o->_collapse_xywh[3];
+ _label_xywh[0] = o->_label_xywh[0];
+ _label_xywh[1] = o->_label_xywh[1];
+ _label_xywh[2] = o->_label_xywh[2];
+ _label_xywh[3] = o->_label_xywh[3];
+ _usericon = o->usericon();
+ _parent = o->_parent;
+}
+
+/// Print the tree as 'ascii art' to stdout.
+/// Used mainly for debugging.
+///
+void Fl_Tree_Item::show_self(const char *indent) const {
+ if ( label() ) {
+ printf("%s-%s (%d children, this=%p, parent=%p depth=%d)\n",
+ indent,label(),children(),(void*)this, (void*)_parent, depth());
+ }
+ if ( children() ) {
+ char *i2 = (char*)malloc(strlen(indent) + 2);
+ strcpy(i2, indent);
+ strcat(i2, " |");
+ for ( int t=0; t<children(); t++ ) {
+ child(t)->show_self(i2);
+ }
+ }
+ fflush(stdout);
+}
+
+/// Set the label. Makes a copy of the name.
+void Fl_Tree_Item::label(const char *name) {
+ if ( _label ) { free((void*)_label); _label = 0; }
+ _label = name ? strdup(name) : 0;
+}
+
+/// Return the label.
+const char *Fl_Tree_Item::label() const {
+ return(_label);
+}
+
+/// Return child item for the specified 'index'.
+const Fl_Tree_Item *Fl_Tree_Item::child(int index) const {
+ return(_children[index]);
+}
+
+/// Clear all the children for this item.
+void Fl_Tree_Item::clear_children() {
+ _children.clear();
+}
+
+/// Return the index of the immediate child of this item that has the label 'name'.
+///
+/// \returns index of found item, or -1 if not found.
+///
+int Fl_Tree_Item::find_child(const char *name) {
+ if ( name ) {
+ for ( int t=0; t<children(); t++ ) {
+ if ( child(t)->label() ) {
+ if ( strcmp(child(t)->label(), name) == 0 ) {
+ return(t);
+ }
+ }
+ }
+ }
+ return(-1);
+}
+
+/// Find item by descending array of names.
+/// Only Fl_Tree should need this method.
+///
+/// \returns item, or 0 if not found
+///
+const Fl_Tree_Item *Fl_Tree_Item::find_item(char **arr) const {
+ for ( int t=0; t<children(); t++ ) {
+ if ( child(t)->label() ) {
+ if ( strcmp(child(t)->label(), *arr) == 0 ) { // match?
+ if ( *(arr+1) ) { // more in arr? descend
+ return(_children[t]->find_item(arr+1));
+ } else { // end of arr? done
+ return(_children[t]);
+ }
+ }
+ }
+ }
+ return(0);
+}
+
+/// Find item by by descending array of names.
+/// Only Fl_Tree should need this method.
+///
+/// \returns item, or 0 if not found
+///
+Fl_Tree_Item *Fl_Tree_Item::find_item(char **arr) {
+ for ( int t=0; t<children(); t++ ) {
+ if ( child(t)->label() ) {
+ if ( strcmp(child(t)->label(), *arr) == 0 ) { // match?
+ if ( *(arr+1) ) { // more in arr? descend
+ return(_children[t]->find_item(arr+1));
+ } else { // end of arr? done
+ return(_children[t]);
+ }
+ }
+ }
+ }
+ return(0);
+}
+
+/// Find the index number for the specified 'item'
+/// in the current item's list of children.
+///
+/// \returns the index, or -1 if not found.
+///
+int Fl_Tree_Item::find_child(Fl_Tree_Item *item) {
+ for ( int t=0; t<children(); t++ ) {
+ if ( item == child(t) ) {
+ return(t);
+ }
+ }
+ return(-1);
+}
+
+/// Add a new child to this item with the name 'new_label', with defaults from 'prefs'.
+/// An internally managed copy is made of the label string.
+/// Adds the item based on the value of prefs.sortorder().
+///
+Fl_Tree_Item *Fl_Tree_Item::add(const Fl_Tree_Prefs &prefs, const char *new_label) {
+ Fl_Tree_Item *item = new Fl_Tree_Item(prefs);
+ item->label(new_label);
+ item->_parent = this;
+ switch ( prefs.sortorder() ) {
+ case FL_TREE_SORT_NONE: {
+ _children.add(item);
+ return(item);
+ }
+ case FL_TREE_SORT_ASCENDING: {
+ for ( int t=0; t<_children.total(); t++ ) {
+ Fl_Tree_Item *c = _children[t];
+ if ( c->label() && strcmp(c->label(), new_label) > 0 ) {
+ _children.insert(t, item);
+ return(item);
+ }
+ }
+ _children.add(item);
+ return(item);
+ }
+ case FL_TREE_SORT_DESCENDING: {
+ for ( int t=0; t<_children.total(); t++ ) {
+ Fl_Tree_Item *c = _children[t];
+ if ( c->label() && strcmp(c->label(), new_label) < 0 ) {
+ _children.insert(t, item);
+ return(item);
+ }
+ }
+ _children.add(item);
+ return(item);
+ }
+ }
+ return(item);
+}
+
+/// Descend into the path specified by \p arr, and add a new child there.
+/// Should be used only by Fl_Tree's internals.
+/// Adds the item based on the value of prefs.sortorder().
+///
+Fl_Tree_Item *Fl_Tree_Item::add(const Fl_Tree_Prefs &prefs, char **arr) {
+ int t = find_child(*arr);
+ Fl_Tree_Item *item;
+ if ( t == -1 ) {
+ item = (Fl_Tree_Item*)add(prefs, *arr);
+ } else {
+ item = (Fl_Tree_Item*)child(t);
+ }
+ if ( *(arr+1) ) { // descend?
+ return(item->add(prefs, arr+1));
+ } else {
+ return(item); // end? done
+ }
+}
+
+/// Insert a new item into current item's children at a specified position.
+Fl_Tree_Item *Fl_Tree_Item::insert(const Fl_Tree_Prefs &prefs, const char *new_label, int pos) {
+ Fl_Tree_Item *item = new Fl_Tree_Item(prefs);
+ item->label(new_label);
+ item->_parent = this;
+ _children.insert(pos, item);
+ return(item);
+}
+
+/// Insert a new item above this item.
+Fl_Tree_Item *Fl_Tree_Item::insert_above(const Fl_Tree_Prefs &prefs, const char *new_label) {
+ Fl_Tree_Item *p = _parent;
+ if ( ! p ) return(0);
+ // Walk our parent's children to find ourself
+ for ( int t=0; t<p->children(); t++ ) {
+ Fl_Tree_Item *c = p->child(t);
+ if ( this == c ) {
+ return(p->insert(prefs, new_label, t));
+ }
+ }
+ return(0);
+}
+
+/// Remove child by item.
+/// Returns 0 if removed, -1 if item not an immediate child.
+///
+int Fl_Tree_Item::remove_child(Fl_Tree_Item *item) {
+ for ( int t=0; t<children(); t++ ) {
+ if ( child(t) == item ) {
+ item->clear_children();
+ _children.remove(t);
+ return(0);
+ }
+ }
+ return(-1);
+}
+
+/// Remove immediate child (and its children) by its label 'name'.
+/// Returns 0 if removed, -1 if not found.
+///
+int Fl_Tree_Item::remove_child(const char *name) {
+ for ( int t=0; t<children(); t++ ) {
+ if ( child(t)->label() ) {
+ if ( strcmp(child(t)->label(), name) == 0 ) {
+ _children.remove(t);
+ return(0);
+ }
+ }
+ }
+ return(-1);
+}
+
+/// Swap two of our children, given two child index values.
+/// Use this eg. for sorting.
+///
+/// This method is FAST, and does not involve lookups.
+///
+/// No range checking is done on either index value.
+///
+/// \returns
+/// - 0 : OK
+/// - -1 : failed: 'a' or 'b' is not our immediate child
+///
+void Fl_Tree_Item::swap_children(int ax, int bx) {
+ _children.swap(ax, bx);
+}
+
+/// Swap two of our children, given item pointers.
+/// Use this eg. for sorting.
+///
+/// This method is SLOW because it involves linear lookups.
+/// For speed, use swap_children(int,int) instead.
+///
+/// \returns
+/// - 0 : OK
+/// - -1 : failed: 'a' or 'b' is not our immediate child
+///
+int Fl_Tree_Item::swap_children(Fl_Tree_Item *a, Fl_Tree_Item *b) {
+ int ax = -1, bx = -1;
+ for ( int t=0; t<children(); t++ ) { // find index for a and b
+ if ( _children[t] == a ) { ax = t; if ( bx != -1 ) break; else continue; }
+ if ( _children[t] == b ) { bx = t; if ( ax != -1 ) break; else continue; }
+ }
+ if ( ax == -1 || bx == -1 ) return(-1); // not found? fail
+ swap_children(ax,bx);
+ return(0);
+}
+
+/// Internal: Horizontal connector line based on preference settings.
+void Fl_Tree_Item::draw_horizontal_connector(int x1, int x2, int y, const Fl_Tree_Prefs &prefs) {
+ fl_color(prefs.connectorcolor());
+ switch ( prefs.connectorstyle() ) {
+ case FL_TREE_CONNECTOR_SOLID:
+ y |= 1; // force alignment w/dot pattern
+ fl_line(x1,y,x2,y);
+ return;
+ case FL_TREE_CONNECTOR_DOTTED:
+ y |= 1; // force alignment w/dot pattern
+ for ( int xx=x1; xx<=x2; xx++ ) {
+ if ( !(xx & 1) ) fl_point(xx, y);
+ }
+ return;
+ case FL_TREE_CONNECTOR_NONE:
+ return;
+ }
+}
+
+/// Internal: Vertical connector line based on preference settings.
+void Fl_Tree_Item::draw_vertical_connector(int x, int y1, int y2, const Fl_Tree_Prefs &prefs) {
+ fl_color(prefs.connectorcolor());
+ switch ( prefs.connectorstyle() ) {
+ case FL_TREE_CONNECTOR_SOLID:
+ y1 |= 1; // force alignment w/dot pattern
+ y2 |= 1; // force alignment w/dot pattern
+ fl_line(x,y1,x,y2);
+ return;
+ case FL_TREE_CONNECTOR_DOTTED:
+ y1 |= 1; // force alignment w/dot pattern
+ y2 |= 1; // force alignment w/dot pattern
+ for ( int yy=y1; yy<=y2; yy++ ) {
+ if ( yy & 1 ) fl_point(x, yy);
+ }
+ return;
+ case FL_TREE_CONNECTOR_NONE:
+ return;
+ }
+}
+
+/// Find the item that the last event was over.
+///
+/// Returns the item if its visible, and mouse is over it.
+/// Works even if widget deactivated.
+/// Use event_on_collapse_icon() to determine if collapse button was pressed.
+///
+/// \returns const visible item under the event if found, or 0 if none.
+///
+const Fl_Tree_Item *Fl_Tree_Item::find_clicked(const Fl_Tree_Prefs &prefs) const {
+ if ( ! _visible ) return(0);
+ if ( is_root() && !prefs.showroot() ) {
+ // skip event check if we're root but root not being shown
+ } else {
+ // See if event is over us
+ if ( event_inside(_xywh) ) { // event within this item?
+ return(this); // found
+ }
+ }
+ if ( is_open() ) { // open? check children of this item
+ for ( int t=0; t<children(); t++ ) {
+ const Fl_Tree_Item *item;
+ if ( ( item = _children[t]->find_clicked(prefs) ) != NULL) { // check child and its descendents
+ return(item); // found?
+ }
+ }
+ }
+ return(0);
+}
+
+/// Non-const version of the above.
+/// Find the item that the last event was over.
+///
+/// Returns the item if its visible, and mouse is over it.
+/// Works even if widget deactivated.
+/// Use event_on_collapse_icon() to determine if collapse button was pressed.
+///
+/// \returns the visible item under the event if found, or 0 if none.
+///
+Fl_Tree_Item *Fl_Tree_Item::find_clicked(const Fl_Tree_Prefs &prefs) {
+ if ( ! _visible ) return(0);
+ if ( is_root() && !prefs.showroot() ) {
+ // skip event check if we're root but root not being shown
+ } else {
+ // See if event is over us
+ if ( event_inside(_xywh) ) { // event within this item?
+ return(this); // found
+ }
+ }
+ if ( is_open() ) { // open? check children of this item
+ for ( int t=0; t<children(); t++ ) {
+ Fl_Tree_Item *item;
+ if ( ( item = _children[t]->find_clicked(prefs) ) != NULL ) { // check child and its descendents
+ return(item); // found?
+ }
+ }
+ }
+ return(0);
+}
+
+/// Draw this item and its children.
+void Fl_Tree_Item::draw(int X, int &Y, int W, Fl_Widget *tree,
+ const Fl_Tree_Prefs &prefs, int lastchild) {
+ if ( ! _visible ) return;
+ fl_font(_labelfont, _labelsize);
+ int H = _labelsize + fl_descent() + prefs.linespacing();
+ // Colors, fonts
+ Fl_Color fg = _selected ? prefs.bgcolor() : _labelfgcolor;
+ Fl_Color bg = _selected ? prefs.selectcolor() : _labelbgcolor;
+ if ( ! _active ) {
+ fg = fl_inactive(fg);
+ if ( _selected ) bg = fl_inactive(bg);
+ }
+ // Update the xywh of this item
+ _xywh[0] = X;
+ _xywh[1] = Y;
+ _xywh[2] = W;
+ _xywh[3] = H;
+ // Text size
+ int textw=0, texth=0;
+ fl_measure(_label, textw, texth, 0);
+ int textycenter = Y+(H/2);
+ int &icon_x = _collapse_xywh[0] = X-1;
+ int &icon_y = _collapse_xywh[1] = textycenter - (prefs.openicon()->h()/2);
+ int &icon_w = _collapse_xywh[2] = prefs.openicon()->w();
+ _collapse_xywh[3] = prefs.openicon()->h();
+ // Horizontal connector values
+ int hstartx = X+icon_w/2-1;
+ int hendx = hstartx + prefs.connectorwidth();
+ int hcenterx = X + icon_w + ((hendx - (X + icon_w)) / 2);
+
+ // See if we should draw this item
+ // If this item is root, and showroot() is disabled, don't draw.
+ //
+ char drawthis = ( is_root() && prefs.showroot() == 0 ) ? 0 : 1;
+ if ( drawthis ) {
+ // Draw connectors
+ if ( prefs.connectorstyle() != FL_TREE_CONNECTOR_NONE ) {
+ // Horiz connector between center of icon and text
+ draw_horizontal_connector(hstartx, hendx, textycenter, prefs);
+ if ( has_children() && is_open() ) {
+ // Small vertical line down to children
+ draw_vertical_connector(hcenterx, textycenter, Y+H, prefs);
+ }
+ // Connectors for last child
+ if ( ! is_root() ) {
+ if ( lastchild ) {
+ draw_vertical_connector(hstartx, Y, textycenter, prefs);
+ } else {
+ draw_vertical_connector(hstartx, Y, Y+H, prefs);
+ }
+ }
+ }
+ // Draw collapse icon
+ if ( has_children() && prefs.showcollapse() ) {
+ // Draw icon image
+ if ( is_open() ) {
+ prefs.closeicon()->draw(icon_x,icon_y);
+ } else {
+ prefs.openicon()->draw(icon_x,icon_y);
+ }
+ }
+ // Background for this item
+ int &bx = _label_xywh[0] = X+(icon_w/2-1+prefs.connectorwidth());
+ int &by = _label_xywh[1] = Y;
+ int &bw = _label_xywh[2] = W-(icon_w/2-1+prefs.connectorwidth());
+ int &bh = _label_xywh[3] = texth;
+ // Draw bg only if different from tree's bg
+ if ( bg != tree->color() || is_selected() ) {
+ if ( is_selected() ) {
+ // Selected? Use selectbox() style
+ fl_draw_box(prefs.selectbox(), bx, by, bw, bh, bg);
+ } else {
+ // Not Selected? use plain filled rectangle
+ fl_color(bg);
+ fl_rectf(bx, by, bw, bh);
+ }
+ }
+ // Draw user icon (if any)
+ int useroff = (icon_w/2-1+prefs.connectorwidth());
+ if ( usericon() ) {
+ // Item has user icon? Use it
+ useroff += prefs.usericonmarginleft();
+ usericon()->draw(X+useroff,icon_y);
+ useroff += usericon()->w();
+ } else if ( prefs.usericon() ) {
+ // Prefs has user icon? Use it
+ useroff += prefs.usericonmarginleft();
+ prefs.usericon()->draw(X+useroff,icon_y);
+ useroff += prefs.usericon()->w();
+ }
+ useroff += prefs.labelmarginleft();
+ // Draw label
+ if ( widget() ) {
+ // Widget? Draw it
+ int lx = X+useroff;
+ int ly = by;
+ int lw = widget()->w();
+ int lh = bh;
+ if ( widget()->x() != lx || widget()->y() != ly ||
+ widget()->w() != lw || widget()->h() != lh ) {
+ widget()->resize(lx, ly, lw, lh); // fltk will handle drawing this
+ }
+ } else {
+ // No label widget? Draw text label
+ if ( _label ) {
+ fl_color(fg);
+ fl_draw(_label, X+useroff, Y+H-fl_descent()-1);
+ }
+ }
+ Y += H;
+ } // end drawthis
+ // Draw children
+ if ( has_children() && is_open() ) {
+ int child_x = drawthis ? // offset children to right,
+ (hcenterx - (icon_w/2) + 1) : X; // unless didn't drawthis
+ int child_w = W - (child_x-X);
+ int child_y_start = Y;
+ for ( int t=0; t<children(); t++ ) {
+ int lastchild = ((t+1)==children()) ? 1 : 0;
+ _children[t]->draw(child_x, Y, child_w, tree, prefs, lastchild);
+ }
+ if ( has_children() && is_open() ) {
+ Y += prefs.openchild_marginbottom(); // offset below open child tree
+ }
+ if ( ! lastchild ) {
+ draw_vertical_connector(hstartx, child_y_start, Y, prefs);
+ }
+ }
+}
+
+/// Was the event on the 'collapse' button?
+///
+int Fl_Tree_Item::event_on_collapse_icon(const Fl_Tree_Prefs &prefs) const {
+ if ( _visible && _active && has_children() && prefs.showcollapse() ) {
+ return(event_inside(_collapse_xywh) ? 1 : 0);
+ } else {
+ return(0);
+ }
+}
+
+/// Was event on the label()?
+///
+int Fl_Tree_Item::event_on_label(const Fl_Tree_Prefs &prefs) const {
+ if ( _visible && _active ) {
+ return(event_inside(_label_xywh) ? 1 : 0);
+ } else {
+ return(0);
+ }
+}
+
+/// Internal: Show the FLTK widget() for this item and all children.
+/// Used by open() to re-show widgets that were hidden by a previous close()
+///
+void Fl_Tree_Item::show_widgets() {
+ if ( _widget ) _widget->show();
+ if ( is_open() ) {
+ for ( int t=0; t<_children.total(); t++ ) {
+ _children[t]->show_widgets();
+ }
+ }
+}
+
+/// Internal: Hide the FLTK widget() for this item and all children.
+/// Used by close() to hide widgets.
+///
+void Fl_Tree_Item::hide_widgets() {
+ if ( _widget ) _widget->hide();
+ for ( int t=0; t<_children.total(); t++ ) {
+ _children[t]->hide_widgets();
+ }
+}
+
+/// Open this item and all its children.
+void Fl_Tree_Item::open() {
+ _open = 1;
+ // Tell children to show() their widgets
+ for ( int t=0; t<_children.total(); t++ ) {
+ _children[t]->show_widgets();
+ }
+}
+
+/// Close this item and all its children.
+void Fl_Tree_Item::close() {
+ _open = 0;
+ // Tell children to hide() their widgets
+ for ( int t=0; t<_children.total(); t++ ) {
+ _children[t]->hide_widgets();
+ }
+}
+
+/// Returns how many levels deep this item is in the hierarchy.
+///
+/// For instance; root has a depth of zero, and its immediate children
+/// would have a depth of 1, and so on.
+///
+int Fl_Tree_Item::depth() const {
+ int count = 0;
+ const Fl_Tree_Item *item = parent();
+ while ( item ) {
+ ++count;
+ item = item->parent();
+ }
+ return(count);
+}
+
+/// Return the next item in the tree.
+///
+/// This method can be used to walk the tree forward.
+/// For an example of how to use this method, see Fl_Tree::first().
+///
+/// \returns the next item in the tree, or 0 if there's no more items.
+///
+Fl_Tree_Item *Fl_Tree_Item::next() {
+ Fl_Tree_Item *p, *c = this;
+ if ( c->has_children() ) {
+ return(c->child(0));
+ }
+ while ( ( p = c->parent() ) != NULL ) { // loop upwards through parents
+ int t = p->find_child(c); // find our position in parent's children[] array
+ if ( ++t < p->children() ) // not last child?
+ return(p->child(t)); // return next child
+ c = p; // child becomes parent to move up generation
+ } // loop: moves up to next parent
+ return(0); // hit root? done
+}
+
+/// Return the previous item in the tree.
+///
+/// This method can be used to walk the tree backwards.
+/// For an example of how to use this method, see Fl_Tree::last().
+///
+/// \returns the previous item in the tree, or 0 if there's no item above this one (hit the root).
+///
+Fl_Tree_Item *Fl_Tree_Item::prev() {
+ Fl_Tree_Item *p=parent(); // start with parent
+ if ( ! p ) return(0); // hit root? done
+ int t = p->find_child(this); // find our position in parent's children[] array
+ if ( --t == -1 ) { // are we first child?
+ return(p); // return immediate parent
+ }
+ p = p->child(t); // take parent's previous child
+ while ( p->has_children() ) { // has children?
+ p = p->child(p->children()-1); // take last child
+ }
+ return(p);
+}
diff --git a/src/Fl_Tree_Item_Array.cxx b/src/Fl_Tree_Item_Array.cxx
new file mode 100644
index 000000000..ef339a2d6
--- /dev/null
+++ b/src/Fl_Tree_Item_Array.cxx
@@ -0,0 +1,149 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <FL/Fl_Tree_Item_Array.H>
+#include <FL/Fl_Tree_Item.H>
+
+//////////////////////
+// Fl_Tree_Item_Array.cxx
+//////////////////////
+//
+// Fl_Tree -- This file is part of the Fl_Tree widget for FLTK
+// Copyright (C) 2009 by Greg Ercolano.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+
+/// Constructor; creates an empty array.
+///
+/// The optional 'chunksize' can be specified to optimize
+/// memory allocation for potentially large arrays. Default chunksize is 10.
+///
+Fl_Tree_Item_Array::Fl_Tree_Item_Array(int new_chunksize) {
+ _items = 0;
+ _total = 0;
+ _size = 0;
+ _chunksize = new_chunksize;
+}
+
+/// Destructor. Calls each item's destructor, destroys internal _items array.
+Fl_Tree_Item_Array::~Fl_Tree_Item_Array() {
+ clear();
+}
+
+/// Copy constructor. Makes new copy of array, with new instances of each item.
+Fl_Tree_Item_Array::Fl_Tree_Item_Array(const Fl_Tree_Item_Array* o) {
+ _items = (Fl_Tree_Item**)malloc(o->_size * sizeof(Fl_Tree_Item*));
+ _total = o->_total;
+ _size = o->_size;
+ _chunksize = o->_chunksize;
+ for ( int t=0; t<o->_total; t++ ) {
+ _items[t] = new Fl_Tree_Item(o->_items[t]);
+ }
+}
+
+/// Clear the entire array.
+///
+/// Each item will be deleted (destructors will be called),
+/// and the array will be cleared. total() will return 0.
+///
+void Fl_Tree_Item_Array::clear() {
+ if ( _items ) {
+ for ( int t=0; t<_total; t++ ) {
+ delete _items[t];
+ _items[t] = 0;
+ }
+ free((void*)_items); _items = 0;
+ }
+ _total = _size = 0;
+}
+
+// Internal: Enlarge the items array.
+//
+// Adjusts size/items memory allocation as needed.
+// Does NOT change total.
+//
+void Fl_Tree_Item_Array::enlarge(int count) {
+ int newtotal = _total + count; // new total
+ if ( newtotal >= _size ) { // more than we have allocated?
+ // Increase size of array
+ int newsize = _size + _chunksize;
+ Fl_Tree_Item **newitems = (Fl_Tree_Item**)malloc(newsize * sizeof(Fl_Tree_Item*));
+ if ( _items ) {
+ // Copy old array -> new, delete old
+ memmove(newitems, _items, _size * sizeof(Fl_Tree_Item*));
+ free((void*)_items); _items = 0;
+ }
+ // Adjust items/sizeitems
+ _items = newitems;
+ _size = newsize;
+ }
+}
+
+/// Insert an item at index position \p pos.
+///
+/// Handles enlarging array if needed, total increased by 1.
+/// If \p pos == total(), an empty item is appended to the array.
+///
+void Fl_Tree_Item_Array::insert(int pos, Fl_Tree_Item *new_item) {
+ enlarge(1);
+ // printf("*** POS=%d TOTAL-1=%d NITEMS=%d\n", pos, _total-1, (_total-pos));
+ if ( pos <= (_total - 1) ) { // need to move memory around?
+ int nitems = _total - pos;
+ memmove(&_items[pos+1], &_items[pos], sizeof(Fl_Tree_Item*) * nitems);
+ }
+ _items[pos] = new_item;
+ _total++;
+}
+
+/// Add an item* to the end of the array.
+///
+/// Assumes the item was created with 'new', and will remain
+/// allocated.. Fl_Tree_Item_Array will handle calling the
+/// item's destructor when the array is cleared or the item remove()'ed.
+///
+void Fl_Tree_Item_Array::add(Fl_Tree_Item *val) {
+ insert(_total, val);
+}
+
+/// Remove the item at \param[in] index from the array.
+///
+/// The item will be delete'd (if non-NULL), so its destructor will be called.
+///
+void Fl_Tree_Item_Array::remove(int index) {
+ if ( _items[index] ) { // delete if non-zero
+ delete _items[index];
+ }
+ _items[index] = 0;
+ for ( _total--; index<_total; index++ ) {
+ _items[index] = _items[index+1];
+ }
+}
+
+/// Remove the item from the array.
+///
+/// \returns 0 if removed, or -1 if the item was not in the array.
+///
+int Fl_Tree_Item_Array::remove(Fl_Tree_Item *item) {
+ for ( int t=0; t<_total; t++ ) {
+ if ( item == _items[t] ) {
+ remove(t);
+ return(0);
+ }
+ }
+ return(-1);
+}
diff --git a/src/Fl_Tree_Prefs.cxx b/src/Fl_Tree_Prefs.cxx
new file mode 100644
index 000000000..50641c875
--- /dev/null
+++ b/src/Fl_Tree_Prefs.cxx
@@ -0,0 +1,122 @@
+#include <FL/Fl.H>
+#include <FL/Fl_Pixmap.H>
+#include <FL/Fl_Tree_Prefs.H>
+#include <string.h>
+
+//////////////////////
+// Fl_Tree_Prefs.cxx
+//////////////////////
+//
+// Fl_Tree -- This file is part of the Fl_Tree widget for FLTK
+// Copyright (C) 2009 by Greg Ercolano.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+
+// INTERNAL: BUILT IN OPEN/STOW XPMS
+// These can be replaced via prefs.openicon()/closeicon()
+//
+static const char *L_open_xpm[] = {
+ "11 11 3 1",
+ ". c #fefefe",
+ "# c #444444",
+ "@ c #000000",
+ "###########",
+ "#.........#",
+ "#.........#",
+ "#....@....#",
+ "#....@....#",
+ "#..@@@@@..#",
+ "#....@....#",
+ "#....@....#",
+ "#.........#",
+ "#.........#",
+ "###########"};
+static Fl_Pixmap L_openpixmap(L_open_xpm);
+
+static const char *L_close_xpm[] = {
+ "11 11 3 1",
+ ". c #fefefe",
+ "# c #444444",
+ "@ c #000000",
+ "###########",
+ "#.........#",
+ "#.........#",
+ "#.........#",
+ "#.........#",
+ "#..@@@@@..#",
+ "#.........#",
+ "#.........#",
+ "#.........#",
+ "#.........#",
+ "###########"};
+static Fl_Pixmap L_closepixmap(L_close_xpm);
+
+/// Sets the default icon to be used as the 'open' icon
+/// when items are add()ed to the tree.
+/// This overrides the built in default '[+]' icon.
+///
+/// \param[in] val -- The new pixmap, or zero to use the default [+] icon.
+///
+void Fl_Tree_Prefs::openicon(Fl_Pixmap *val) {
+ _openpixmap = val ? val : &L_openpixmap;
+}
+
+/// Sets the icon to be used as the 'close' icon.
+/// This overrides the built in default '[-]' icon.
+///
+/// \param[in] val -- The new pixmap, or zero to use the default [-] icon.
+///
+void Fl_Tree_Prefs::closeicon(Fl_Pixmap *val) {
+ _closepixmap = val ? val : &L_closepixmap;
+}
+
+/// Fl_Tree_Prefs constructor
+Fl_Tree_Prefs::Fl_Tree_Prefs() {
+ _labelfont = FL_HELVETICA;
+ _labelsize = FL_NORMAL_SIZE;
+ _marginleft = 6;
+ _margintop = 3;
+ //_marginright = 3;
+ //_marginbottom = 3;
+ _openchild_marginbottom = 0;
+ _usericonmarginleft = 3;
+ _labelmarginleft = 3;
+ _linespacing = 0;
+ _fgcolor = FL_BLACK;
+ _bgcolor = FL_WHITE;
+ _selectcolor = FL_DARK_BLUE;
+ _inactivecolor = FL_GRAY;
+ _connectorcolor = Fl_Color(43);
+ _connectorstyle = FL_TREE_CONNECTOR_DOTTED;
+ _openpixmap = &L_openpixmap;
+ _closepixmap = &L_closepixmap;
+ _userpixmap = 0;
+ _showcollapse = 1;
+ _showroot = 1;
+ _connectorwidth = 17;
+ _sortorder = FL_TREE_SORT_NONE;
+ _selectbox = FL_FLAT_BOX;
+ _selectmode = FL_TREE_SELECT_SINGLE;
+ // Let fltk's current 'scheme' affect defaults
+ if ( Fl::scheme() ) {
+ if ( strcmp(Fl::scheme(), "gtk+") == 0 ) {
+ _selectbox = _FL_GTK_THIN_UP_BOX;
+ } else if ( strcmp(Fl::scheme(), "plastic") == 0 ) {
+ _selectbox = _FL_PLASTIC_THIN_UP_BOX;
+ }
+ }
+}
diff --git a/src/Makefile b/src/Makefile
index dce506936..01a498f3a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -86,6 +86,10 @@ CPPFILES = \
Fl_Text_Editor.cxx \
Fl_Tile.cxx \
Fl_Tiled_Image.cxx \
+ Fl_Tree.cxx \
+ Fl_Tree_Item.cxx \
+ Fl_Tree_Item_Array.cxx \
+ Fl_Tree_Prefs.cxx \
Fl_Tooltip.cxx \
Fl_Valuator.cxx \
Fl_Value_Input.cxx \
diff --git a/src/makedepend b/src/makedepend
index 2fc5c0129..425f4cf12 100644
--- a/src/makedepend
+++ b/src/makedepend
@@ -1,601 +1,844 @@
# DO NOT DELETE THIS LINE -- make depend depends on it.
-Fl.o: Fl.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H \
- ../FL/Fl_Window.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H flstring.h \
- ../FL/Fl_Export.H ../config.h ../FL/fl_draw.H
-Fl_Adjuster.o: Fl_Adjuster.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Adjuster.H ../FL/Fl_Valuator.H \
- ../FL/Fl_Widget.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/fl_draw.H \
- fastarrow.h mediumarrow.h slowarrow.h
-Fl_Bitmap.o: Fl_Bitmap.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Widget.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Bitmap.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Browser.o: Fl_Browser.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Browser_.o: Fl_Browser_.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Widget.H ../FL/Fl_Browser_.H \
- ../FL/Fl_Group.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H \
- ../FL/Fl_Valuator.H ../FL/fl_draw.H
-Fl_Browser_load.o: Fl_Browser_load.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
-Fl_Box.o: Fl_Box.cxx ../FL/Fl_Widget.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Box.H
-Fl_Button.o: Fl_Button.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Button.H ../FL/Fl_Widget.H ../FL/Fl_Group.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H
-Fl_Chart.o: Fl_Chart.cxx ../FL/math.h ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Chart.H ../FL/Fl_Widget.H ../FL/fl_draw.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Check_Browser.o: Fl_Check_Browser.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Check_Browser.H ../FL/Fl.H ../FL/Fl_Browser_.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
-Fl_Check_Button.o: Fl_Check_Button.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H \
- ../FL/Fl_Button.H ../FL/Fl_Widget.H
-Fl_Choice.o: Fl_Choice.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Widget.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Clock.o: Fl_Clock.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Clock.H ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Color_Chooser.o: Fl_Color_Chooser.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Color_Chooser.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Return_Button.H \
- ../FL/Fl_Button.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Value_Input.H \
- ../FL/Fl_Valuator.H ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_draw.H \
- ../FL/math.h ../FL/Fl_Window.H ../FL/Fl_Group.H
-Fl_Counter.o: Fl_Counter.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Counter.H ../FL/Fl_Valuator.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Dial.o: Fl_Dial.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Dial.H ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H \
- ../FL/math.h
-Fl_Double_Window.o: Fl_Double_Window.cxx ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Double_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H \
- ../FL/fl_draw.H
-Fl_File_Browser.o: Fl_File_Browser.cxx ../FL/Fl_File_Browser.H \
- ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
- ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H ../FL/fl_draw.H \
- ../FL/filename.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_File_Chooser.o: Fl_File_Chooser.cxx ../FL/Fl_File_Chooser.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Double_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H \
- ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H \
- ../FL/Fl_Image.H ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H \
- ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H \
- ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H ../FL/Fl.H \
- ../FL/filename.H ../FL/Fl_Box.H ../FL/Fl_Check_Button.H \
- ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_File_Input.H \
- ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H \
- ../FL/fl_ask.H ../FL/fl_draw.H ../FL/Fl_Bitmap.H
-Fl_File_Chooser2.o: Fl_File_Chooser2.cxx ../FL/Fl_File_Chooser.H \
- ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Menu_Button.H \
- ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H \
- ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H \
- ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
- ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H ../FL/Fl_Box.H \
- ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Button.H \
- ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
- ../FL/Fl_Return_Button.H ../FL/fl_ask.H ../FL/filename.H ../FL/x.H \
- ../FL/Fl_Shared_Image.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_File_Icon.o: Fl_File_Icon.cxx flstring.h ../FL/Fl_Export.H ../config.h \
- ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/filename.H
-Fl_File_Input.o: Fl_File_Input.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_File_Input.H ../FL/Fl_Input.H \
- ../FL/Fl_Input_.H ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Group.o: Fl_Group.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/fl_draw.H
-Fl_Help_View.o: Fl_Help_View.cxx ../FL/Fl_Help_View.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H \
- ../FL/Fl_Valuator.H ../FL/fl_draw.H ../FL/Fl_Shared_Image.H \
- ../FL/Fl_Image.H ../FL/Fl_Window.H ../FL/Fl_Pixmap.H ../FL/x.H \
- ../FL/Fl_Window.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Image.o: Fl_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Widget.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Image.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Input.o: Fl_Input.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_draw.H ../FL/fl_ask.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Input_.o: Fl_Input_.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Input_.H ../FL/Fl_Widget.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/fl_draw.H ../FL/fl_ask.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Light_Button.o: Fl_Light_Button.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Light_Button.H ../FL/Fl_Button.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H \
- ../config.h
-Fl_Menu.o: Fl_Menu.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Menu_.o: Fl_Menu_.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Menu_.H ../FL/Fl_Widget.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H \
- ../config.h
-Fl_Menu_Bar.o: Fl_Menu_Bar.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H
-Fl_Sys_Menu_Bar.o: Fl_Sys_Menu_Bar.cxx
-Fl_Menu_Button.o: Fl_Menu_Button.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H
-Fl_Menu_Window.o: Fl_Menu_Window.cxx ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H \
- ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H
-Fl_Menu_add.o: Fl_Menu_add.cxx ../FL/Fl_Menu_.H ../FL/Fl_Widget.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Menu_Item.H \
- ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Menu_global.o: Fl_Menu_global.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Menu_.H ../FL/Fl_Widget.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
-Fl_Multi_Label.o: Fl_Multi_Label.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H \
- ../FL/Fl_Widget.H ../FL/Fl_Image.H ../FL/Fl_Multi_Label.H
-Fl_Overlay_Window.o: Fl_Overlay_Window.cxx ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Overlay_Window.H \
- ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/x.H
-Fl_Pack.o: Fl_Pack.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Pixmap.o: Fl_Pixmap.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Widget.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Pixmap.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Positioner.o: Fl_Positioner.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Positioner.H ../FL/Fl_Widget.H \
- ../FL/fl_draw.H
-Fl_Preferences.o: Fl_Preferences.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Preferences.H ../FL/filename.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Progress.o: Fl_Progress.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Progress.H ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Repeat_Button.o: Fl_Repeat_Button.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H ../FL/Fl_Button.H \
- ../FL/Fl_Widget.H
-Fl_Return_Button.o: Fl_Return_Button.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Return_Button.H ../FL/Fl_Button.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Roller.o: Fl_Roller.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Roller.H ../FL/Fl_Valuator.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Round_Button.o: Fl_Round_Button.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H \
- ../FL/Fl_Button.H ../FL/Fl_Widget.H
-Fl_Scroll.o: Fl_Scroll.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Tiled_Image.H ../FL/Fl_Image.H \
- ../FL/Fl_Scroll.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
- ../FL/fl_draw.H
-Fl_Scrollbar.o: Fl_Scrollbar.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H \
- ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-Fl_Shared_Image.o: Fl_Shared_Image.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H ../FL/Fl_XBM_Image.H \
- ../FL/Fl_Bitmap.H ../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H
-Fl_Single_Window.o: Fl_Single_Window.cxx ../FL/Fl_Single_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H
-Fl_Slider.o: Fl_Slider.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H \
- ../config.h
-Fl_Tabs.o: Fl_Tabs.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H \
- ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
-Fl_Text_Buffer.o: Fl_Text_Buffer.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Text_Buffer.H
-Fl_Text_Display.o: Fl_Text_Display.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H \
- ../FL/Fl_Window.H
-Fl_Text_Editor.o: Fl_Text_Editor.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H \
- ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
- ../FL/Fl_Text_Buffer.H ../FL/fl_ask.H
-Fl_Tile.o: Fl_Tile.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Tile.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Window.H
-Fl_Tiled_Image.o: Fl_Tiled_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Tiled_Image.H ../FL/Fl_Image.H \
- ../FL/fl_draw.H
-Fl_Tooltip.o: Fl_Tooltip.cxx ../FL/Fl_Tooltip.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Widget.H \
- ../FL/fl_draw.H ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H
-Fl_Valuator.o: Fl_Valuator.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/math.h \
- flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Value_Input.o: Fl_Value_Input.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H \
- ../FL/Fl_Widget.H ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Group.H \
- ../FL/math.h
-Fl_Value_Output.o: Fl_Value_Output.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Value_Output.H ../FL/Fl_Valuator.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Value_Slider.o: Fl_Value_Slider.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H \
- ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Widget.o: Fl_Widget.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Tooltip.H \
- ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Window.o: Fl_Window.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Window_fullscreen.o: Fl_Window_fullscreen.cxx ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H
-Fl_Window_hotspot.o: Fl_Window_hotspot.cxx ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H ../FL/Fl_Window.H
-Fl_Window_iconize.o: Fl_Window_iconize.cxx ../FL/x.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
-Fl_Wizard.o: Fl_Wizard.cxx ../FL/Fl_Wizard.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/fl_draw.H
-Fl_XBM_Image.o: Fl_XBM_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H \
- ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_XPM_Image.o: Fl_XPM_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H \
- ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_abort.o: Fl_abort.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_add_idle.o: Fl_add_idle.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H
-Fl_arg.o: Fl_arg.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/Fl_Window.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H ../FL/filename.H \
- ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_compose.o: Fl_compose.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H
-Fl_display.o: Fl_display.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_get_key.o: Fl_get_key.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H
-Fl_get_system_colors.o: Fl_get_system_colors.cxx ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/math.h \
- flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl_Pixmap.H \
- ../FL/Fl_Image.H ../FL/Fl_Tiled_Image.H tile.xpm
-Fl_grab.o: Fl_grab.cxx ../config.h ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H
-Fl_lock.o: Fl_lock.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../config.h
-Fl_own_colormap.o: Fl_own_colormap.cxx ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H
-Fl_visual.o: Fl_visual.cxx ../config.h ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H
-Fl_x.o: Fl_x.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/Fl_Window.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-filename_absolute.o: filename_absolute.cxx ../FL/filename.H \
- ../FL/Fl_Export.H flstring.h ../FL/Fl_Export.H ../config.h
-filename_expand.o: filename_expand.cxx ../FL/filename.H ../FL/Fl_Export.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-filename_ext.o: filename_ext.cxx ../FL/filename.H ../FL/Fl_Export.H
-filename_isdir.o: filename_isdir.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/filename.H ../FL/Fl_Export.H
-filename_list.o: filename_list.cxx ../FL/filename.H ../FL/Fl_Export.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-filename_match.o: filename_match.cxx ../FL/filename.H ../FL/Fl_Export.H
-filename_setext.o: filename_setext.cxx ../FL/filename.H ../FL/Fl_Export.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-fl_arc.o: fl_arc.cxx ../FL/fl_draw.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/math.h
-fl_arci.o: fl_arci.cxx ../FL/fl_draw.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H
-fl_ask.o: fl_ask.cxx flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_ask.H ../FL/Fl_Box.H \
- ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H \
- ../FL/Fl_Button.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Input.H \
- ../FL/Fl_Input_.H ../FL/Fl_Secret_Input.H ../FL/Fl_Input.H ../FL/x.H \
- ../FL/Fl_Window.H ../FL/fl_draw.H
-fl_boxtype.o: fl_boxtype.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Widget.H ../FL/fl_draw.H ../config.h
-fl_color.o: fl_color.cxx Fl_XColor.H ../config.h ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl.H ../FL/Enumerations.H ../FL/x.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H \
- fl_cmap.h
-fl_cursor.o: fl_cursor.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
-fl_curve.o: fl_curve.cxx ../FL/fl_draw.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H
-fl_diamond_box.o: fl_diamond_box.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H
-fl_dnd.o: fl_dnd.cxx fl_dnd_x.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/x.H ../FL/Fl_Window.H flstring.h ../FL/Fl_Export.H ../config.h
-fl_draw.o: fl_draw.cxx ../FL/fl_draw.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H \
- ../config.h
-fl_draw_image.o: fl_draw_image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H Fl_XColor.H ../config.h \
- ../FL/Enumerations.H flstring.h ../FL/Fl_Export.H
-fl_draw_pixmap.o: fl_draw_pixmap.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H flstring.h ../FL/Fl_Export.H \
- ../config.h
-fl_encoding_latin1.o: fl_encoding_latin1.cxx ../FL/fl_draw.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Enumerations.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-fl_encoding_mac_roman.o: fl_encoding_mac_roman.cxx ../FL/fl_draw.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Enumerations.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-fl_engraved_label.o: fl_engraved_label.cxx ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Widget.H \
- ../FL/fl_draw.H
-fl_file_dir.o: fl_file_dir.cxx flstring.h ../FL/Fl_Export.H ../config.h \
- ../FL/filename.H ../FL/Fl_Export.H ../FL/Fl_File_Chooser.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Choice.H \
- ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H \
- ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H \
- ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H \
- ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H \
- ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H \
- ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H \
- ../FL/Fl_Button.H ../FL/Fl_File_Input.H ../FL/Fl_Input.H \
- ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H ../FL/fl_ask.H
-fl_font.o: fl_font.cxx flstring.h ../FL/Fl_Export.H ../config.h \
- ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_draw.H \
- ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- Fl_Font.H fl_font_xft.cxx
-fl_gtk.o: fl_gtk.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/fl_draw.H
-fl_labeltype.o: fl_labeltype.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/fl_draw.H \
- ../FL/Fl_Image.H ../FL/Fl_Input_.H
-fl_line_style.o: fl_line_style.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H flstring.h ../FL/Fl_Export.H \
- ../config.h
-fl_open_uri.o: fl_open_uri.cxx ../FL/filename.H ../FL/Fl_Export.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-fl_oval_box.o: fl_oval_box.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H
-fl_overlay.o: fl_overlay.cxx ../FL/x.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/fl_draw.H
-fl_overlay_visual.o: fl_overlay_visual.cxx ../config.h
-fl_plastic.o: fl_plastic.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H \
- ../config.h
-fl_read_image.o: fl_read_image.cxx ../FL/x.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H ../config.h
-fl_rect.o: fl_rect.cxx ../config.h ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/x.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H
-fl_round_box.o: fl_round_box.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H
-fl_rounded_box.o: fl_rounded_box.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H
-fl_set_font.o: fl_set_font.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/fl_draw.H flstring.h ../FL/Fl_Export.H \
- ../config.h Fl_Font.H
-fl_set_fonts.o: fl_set_fonts.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H Fl_Font.H ../config.h flstring.h ../FL/Fl_Export.H \
- fl_set_fonts_xft.cxx
-fl_scroll_area.o: fl_scroll_area.cxx ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H
-fl_shadow_box.o: fl_shadow_box.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H
-fl_shortcut.o: fl_shortcut.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/fl_draw.H \
- flstring.h ../FL/Fl_Export.H ../config.h ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H
-fl_show_colormap.o: fl_show_colormap.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Single_Window.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H \
- ../FL/fl_show_colormap.H ../config.h
-fl_symbols.o: fl_symbols.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/math.h flstring.h \
- ../FL/Fl_Export.H ../config.h
-fl_vertex.o: fl_vertex.cxx ../config.h ../FL/fl_draw.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl.H ../FL/math.h
-screen_xywh.o: screen_xywh.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../config.h
-forms_compatability.o: forms_compatability.cxx ../FL/forms.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H \
- ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H \
- ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H \
- ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Button.H \
- ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H \
- ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H \
- ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H ../FL/fl_show_colormap.H \
- ../FL/filename.H ../FL/Fl_File_Chooser.H ../FL/Fl.H \
- ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H \
- ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H \
- ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H \
- ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H \
- ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H \
- ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H \
- ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H ../FL/Fl_Timer.H \
- ../FL/Fl_Repeat_Button.H
-forms_bitmap.o: forms_bitmap.cxx ../FL/forms.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H \
- ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H \
- ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H \
- ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Button.H \
- ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H \
- ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H \
- ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H ../FL/fl_show_colormap.H \
- ../FL/filename.H ../FL/Fl_File_Chooser.H ../FL/Fl.H \
- ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H \
- ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H \
- ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H \
- ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H \
- ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H \
- ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H \
- ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H ../FL/Fl_Timer.H
-forms_free.o: forms_free.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Free.H ../FL/Fl_Widget.H
-forms_fselect.o: forms_fselect.cxx ../FL/forms.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H \
- ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H \
- ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H \
- ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Button.H \
- ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H \
- ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H \
- ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H ../FL/fl_show_colormap.H \
- ../FL/filename.H ../FL/Fl_File_Chooser.H ../FL/Fl.H \
- ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H \
- ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H \
- ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H \
- ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H \
- ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H \
- ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H \
- ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H ../FL/Fl_Timer.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-forms_pixmap.o: forms_pixmap.cxx ../FL/forms.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H \
- ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H \
- ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H \
- ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H \
- ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Button.H \
- ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H \
- ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
- ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H \
- ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H ../FL/fl_show_colormap.H \
- ../FL/filename.H ../FL/Fl_File_Chooser.H ../FL/Fl.H \
- ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H \
- ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H \
- ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H \
- ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H \
- ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H \
- ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H \
- ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H ../FL/Fl_Timer.H
-forms_timer.o: forms_timer.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Timer.H ../FL/Fl_Widget.H ../FL/fl_draw.H
-Fl_Gl_Choice.o: Fl_Gl_Choice.cxx ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H Fl_Gl_Choice.H ../FL/gl_draw.H \
- ../FL/gl.h flstring.h ../FL/Fl_Export.H
-Fl_Gl_Overlay.o: Fl_Gl_Overlay.cxx ../config.h ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H Fl_Gl_Choice.H ../FL/Fl_Gl_Window.H
-Fl_Gl_Window.o: Fl_Gl_Window.cxx flstring.h ../FL/Fl_Export.H ../config.h \
- ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H Fl_Gl_Choice.H \
- ../FL/Fl_Gl_Window.H
-freeglut_geometry.o: freeglut_geometry.cxx ../FL/glut.H ../FL/gl.h \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl.H ../FL/Fl_Gl_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/math.h
-freeglut_stroke_mono_roman.o: freeglut_stroke_mono_roman.cxx ../FL/glut.H \
- ../FL/gl.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl.H \
- ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H
-freeglut_stroke_roman.o: freeglut_stroke_roman.cxx ../FL/glut.H \
- ../FL/gl.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl.H \
- ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
- ../FL/Fl_Widget.H
-freeglut_teapot.o: freeglut_teapot.cxx ../FL/glut.H ../FL/gl.h \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl.H ../FL/Fl_Gl_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- freeglut_teapot_data.h
-gl_draw.o: gl_draw.cxx flstring.h ../FL/Fl_Export.H ../config.h \
- ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/gl.h ../FL/x.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H \
- Fl_Gl_Choice.H Fl_Font.H
-gl_start.o: gl_start.cxx ../config.h ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
- ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H Fl_Gl_Choice.H
-glut_compatability.o: glut_compatability.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl.H ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H \
- ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H \
- ../FL/Fl_Image.H
-glut_font.o: glut_font.cxx ../config.h ../FL/glut.H ../FL/gl.h \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl.H ../FL/Fl_Gl_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
-fl_images_core.o: fl_images_core.cxx ../FL/Fl_Shared_Image.H \
- ../FL/Fl_Image.H ../FL/Enumerations.H ../FL/Fl_Export.H \
- ../FL/Fl_BMP_Image.H ../FL/Fl_GIF_Image.H ../FL/Fl_Pixmap.H \
- ../FL/Fl_JPEG_Image.H ../FL/Fl_PNG_Image.H ../FL/Fl_PNM_Image.H \
- flstring.h ../FL/Fl_Export.H ../config.h
-Fl_BMP_Image.o: Fl_BMP_Image.cxx ../FL/Fl_BMP_Image.H ../FL/Fl_Image.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../config.h
-Fl_File_Icon2.o: Fl_File_Icon2.cxx flstring.h ../FL/Fl_Export.H \
- ../config.h ../FL/math.h ../FL/Fl_File_Icon.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Shared_Image.H \
- ../FL/Fl_Image.H ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/filename.H
-Fl_GIF_Image.o: Fl_GIF_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_GIF_Image.H ../FL/Fl_Pixmap.H \
- ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H ../config.h
-Fl_Help_Dialog.o: Fl_Help_Dialog.cxx ../FL/Fl_Help_Dialog.H ../FL/Fl.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Double_Window.H \
- ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H \
- ../FL/Fl_Button.H ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Box.H \
- ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H \
- ../FL/Fl_Valuator.H ../FL/fl_draw.H ../FL/Fl_Shared_Image.H \
- ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H ../config.h \
- ../FL/fl_ask.H
-Fl_JPEG_Image.o: Fl_JPEG_Image.cxx ../FL/Fl_JPEG_Image.H ../FL/Fl_Image.H \
- ../FL/Enumerations.H ../FL/Fl_Export.H ../config.h
-Fl_PNG_Image.o: Fl_PNG_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_PNG_Image.H ../FL/Fl_Image.H ../config.h
-Fl_PNM_Image.o: Fl_PNM_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
- ../FL/Fl_Export.H ../FL/Fl_PNM_Image.H ../FL/Fl_Image.H flstring.h \
- ../FL/Fl_Export.H ../config.h
-fl_call_main.o: fl_call_main.c
-flstring.o: flstring.c flstring.h ../FL/Fl_Export.H ../config.h
-scandir.o: scandir.c flstring.h ../FL/Fl_Export.H ../config.h
-numericsort.o: numericsort.c ../config.h ../FL/filename.H \
- ../FL/Fl_Export.H
-vsnprintf.o: vsnprintf.c flstring.h ../FL/Fl_Export.H ../config.h
+
+Fl.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
+Fl.o: ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
+Fl.o: flstring.h ../FL/fl_draw.H
+Fl_Adjuster.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Adjuster.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Adjuster.o: ../FL/fl_types.h ../FL/Fl_Adjuster.H ../FL/Fl_Valuator.H
+Fl_Adjuster.o: ../FL/Fl_Widget.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
+Fl_Adjuster.o: ../FL/fl_draw.H ../FL/Fl_Window.H fastarrow.h mediumarrow.h
+Fl_Adjuster.o: slowarrow.h
+Fl_Bitmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Bitmap.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Bitmap.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
+Fl_Bitmap.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
+Fl_Bitmap.o: ../FL/Fl_Image.H ../FL/Fl_Bitmap.H flstring.h ../config.h
+Fl_Browser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Browser.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Browser.o: ../FL/fl_types.h ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
+Fl_Browser.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
+Fl_Browser.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Image.H
+Fl_Browser.o: ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h ../config.h
+Fl_Browser_.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Browser_.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Browser_.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Browser_.H
+Fl_Browser_.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
+Fl_Browser_.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
+Fl_Browser_.o: ../FL/Fl_Window.H
+Fl_Browser_load.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Browser_load.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Browser_load.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Browser.H
+Fl_Browser_load.o: ../FL/Fl_Browser_.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
+Fl_Browser_load.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_Browser_load.o: ../FL/Fl_Image.H ../FL/fl_utf8.h
+Fl_Box.o: ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Widget.H
+Fl_Box.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Button.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Button.o: ../FL/fl_types.h ../FL/Fl_Button.H ../FL/Fl_Widget.H
+Fl_Button.o: ../FL/Fl_Group.H ../FL/Fl_Window.H ../FL/Fl_Group.H
+Fl_Chart.o: ../FL/math.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Chart.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Chart.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Chart.H
+Fl_Chart.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
+Fl_Chart.o: ../config.h
+Fl_Check_Browser.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/fl_draw.H
+Fl_Check_Browser.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Check_Browser.o: ../FL/Fl_Window.H ../FL/Fl_Check_Browser.H ../FL/Fl.H
+Fl_Check_Browser.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Check_Browser.o: ../FL/Fl_Browser_.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
+Fl_Check_Browser.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
+Fl_Check_Browser.o: ../FL/Fl_Valuator.H ../FL/Fl.H
+Fl_Check_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Check_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Check_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Check_Button.H
+Fl_Check_Button.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
+Fl_Check_Button.o: ../FL/Fl_Widget.H
+Fl_Choice.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Choice.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Choice.o: ../FL/fl_types.h ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+Fl_Choice.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
+Fl_Choice.o: ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h ../config.h
+Fl_Clock.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Clock.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Clock.o: ../FL/fl_types.h ../FL/Fl_Clock.H ../FL/Fl_Widget.H
+Fl_Clock.o: ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Color_Chooser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Color_Chooser.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Color_Chooser.o: ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Color_Chooser.o: ../FL/Fl_Color_Chooser.H ../FL/Fl_Group.H ../FL/Fl_Box.H
+Fl_Color_Chooser.o: ../FL/Fl_Widget.H ../FL/Fl_Return_Button.H
+Fl_Color_Chooser.o: ../FL/Fl_Button.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+Fl_Color_Chooser.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
+Fl_Color_Chooser.o: ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H
+Fl_Color_Chooser.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_draw.H
+Fl_Color_Chooser.o: ../FL/Fl_Window.H ../FL/math.h ../FL/Fl_Window.H
+Fl_Color_Chooser.o: ../FL/Fl_Group.H
+Fl_Counter.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Counter.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Counter.o: ../FL/fl_types.h ../FL/Fl_Counter.H ../FL/Fl_Valuator.H
+Fl_Counter.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Dial.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Dial.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Dial.o: ../FL/fl_types.h ../FL/Fl_Dial.H ../FL/Fl_Valuator.H
+Fl_Dial.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/math.h
+Fl_Double_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Double_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Double_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Double_Window.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/x.H
+Fl_Double_Window.o: ../FL/fl_draw.H
+Fl_File_Browser.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H
+Fl_File_Browser.o: ../FL/Fl_Browser_.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
+Fl_File_Browser.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_File_Browser.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_File_Browser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_File_Browser.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Fl_Image.H
+Fl_File_Browser.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
+Fl_File_Browser.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/filename.H
+Fl_File_Browser.o: ../FL/Fl_Image.H flstring.h ../config.h
+Fl_File_Chooser.o: ../FL/Fl_File_Chooser.H ../FL/Fl.H ../FL/fl_utf8.h
+Fl_File_Chooser.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
+Fl_File_Chooser.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_File_Chooser.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
+Fl_File_Chooser.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+Fl_File_Chooser.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
+Fl_File_Chooser.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H
+Fl_File_Chooser.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_Group.H
+Fl_File_Chooser.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H
+Fl_File_Chooser.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
+Fl_File_Chooser.o: ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H ../FL/Fl.H
+Fl_File_Chooser.o: ../FL/filename.H ../FL/Fl_Box.H ../FL/Fl_Check_Button.H
+Fl_File_Chooser.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
+Fl_File_Chooser.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
+Fl_File_Chooser.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H ../FL/fl_draw.H
+Fl_File_Chooser.o: ../FL/Fl_Bitmap.H
+Fl_File_Chooser2.o: ../FL/Fl_File_Chooser.H ../FL/Fl.H ../FL/fl_utf8.h
+Fl_File_Chooser2.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
+Fl_File_Chooser2.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_File_Chooser2.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
+Fl_File_Chooser2.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+Fl_File_Chooser2.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
+Fl_File_Chooser2.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H
+Fl_File_Chooser2.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_Group.H
+Fl_File_Chooser2.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H
+Fl_File_Chooser2.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
+Fl_File_Chooser2.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_File_Chooser2.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
+Fl_File_Chooser2.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H
+Fl_File_Chooser2.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
+Fl_File_Chooser2.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
+Fl_File_Chooser2.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H ../FL/filename.H
+Fl_File_Chooser2.o: ../FL/x.H ../FL/Fl_Shared_Image.H flstring.h ../config.h
+Fl_File_Icon.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
+Fl_File_Icon.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/fl_utf8.h
+Fl_File_Icon.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_File_Icon.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
+Fl_File_Icon.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/filename.H
+Fl_File_Input.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_File_Input.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_File_Input.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_File_Input.H
+Fl_File_Input.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
+Fl_File_Input.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H
+Fl_File_Input.o: ../FL/Fl_Window.H flstring.h ../config.h
+Fl_Group.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Group.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Group.o: ../FL/fl_types.h ../FL/Fl_Group.H ../FL/Fl_Window.H
+Fl_Group.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_draw.H
+Fl_Group.o: ../FL/Fl_Window.H
+Fl_Help_View.o: ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/fl_utf8.h
+Fl_Help_View.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Help_View.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Help_View.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H
+Fl_Help_View.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
+Fl_Help_View.o: ../FL/Fl_Window.H ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H
+Fl_Help_View.o: ../FL/Fl_Window.H ../FL/Fl_Pixmap.H ../FL/x.H ../FL/fl_utf8.h
+Fl_Help_View.o: ../FL/filename.H flstring.h ../config.h
+Fl_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Image.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H
+Fl_Image.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
+Fl_Image.o: ../FL/Fl_Image.H ../FL/Fl_Image.H flstring.h ../config.h
+Fl_Input.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Input.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Input.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
+Fl_Input.o: ../FL/Fl_Widget.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
+Fl_Input.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/fl_ask.H flstring.h
+Fl_Input.o: ../config.h
+Fl_Input_.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Input_.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Input_.o: ../FL/fl_types.h ../FL/Fl_Input_.H ../FL/Fl_Widget.H
+Fl_Input_.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/fl_draw.H
+Fl_Input_.o: ../FL/Fl_Window.H ../FL/fl_ask.H ../FL/fl_utf8.h flstring.h
+Fl_Input_.o: ../config.h
+Fl_Light_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Light_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Light_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Light_Button.H
+Fl_Light_Button.o: ../FL/Fl_Button.H ../FL/Fl_Widget.H ../FL/fl_draw.H
+Fl_Light_Button.o: ../FL/Fl_Window.H flstring.h ../config.h
+Fl_Menu.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Menu.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Menu.o: ../FL/fl_types.h ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H
+Fl_Menu.o: ../FL/Fl_Window.H ../FL/Fl_Menu_.H ../FL/Fl_Widget.H
+Fl_Menu.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H flstring.h
+Fl_Menu.o: ../config.h
+Fl_Menu_.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Menu_.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Menu_.o: ../FL/fl_types.h ../FL/Fl_Menu_.H ../FL/Fl_Widget.H
+Fl_Menu_.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H flstring.h ../config.h
+Fl_Menu_Bar.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Menu_Bar.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Menu_Bar.o: ../FL/fl_types.h ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
+Fl_Menu_Bar.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
+Fl_Menu_Bar.o: ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Menu_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Menu_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Menu_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Menu_Button.H
+Fl_Menu_Button.o: ../FL/Fl_Menu_.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H
+Fl_Menu_Button.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Menu_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Menu_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Menu_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
+Fl_Menu_Window.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_Menu_Window.H
+Fl_Menu_Window.o: ../FL/Fl_Single_Window.H
+Fl_Menu_add.o: ../FL/Fl_Menu_.H ../FL/Fl_Widget.H ../FL/Enumerations.H
+Fl_Menu_add.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Menu_Item.H
+Fl_Menu_add.o: ../FL/Fl_Image.H flstring.h ../FL/Fl_Export.H ../config.h
+Fl_Menu_global.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Menu_global.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Menu_global.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Menu_.H
+Fl_Menu_global.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
+Fl_Multi_Label.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Multi_Label.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Multi_Label.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
+Fl_Multi_Label.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
+Fl_Multi_Label.o: ../FL/Fl_Multi_Label.H
+Fl_Overlay_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Overlay_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Overlay_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Overlay_Window.o: ../FL/Fl_Overlay_Window.H ../FL/Fl_Double_Window.H
+Fl_Overlay_Window.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/x.H
+Fl_Pack.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Pack.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Pack.o: ../FL/fl_types.h ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/fl_draw.H
+Fl_Pack.o: ../FL/Fl_Window.H
+Fl_Pixmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Pixmap.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Pixmap.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H
+Fl_Pixmap.o: ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
+Fl_Pixmap.o: ../FL/Fl_Image.H ../FL/Fl_Pixmap.H flstring.h ../config.h
+Fl_Positioner.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Positioner.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Positioner.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Positioner.H
+Fl_Positioner.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Preferences.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Preferences.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Preferences.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Preferences.H
+Fl_Preferences.o: ../FL/filename.H ../FL/fl_utf8.h flstring.h ../config.h
+Fl_Progress.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Progress.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Progress.o: ../FL/fl_types.h ../FL/Fl_Progress.H ../FL/Fl_Widget.H
+Fl_Progress.o: ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Repeat_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Repeat_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Repeat_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Repeat_Button.o: ../FL/Fl_Repeat_Button.H ../FL/Fl.H ../FL/Fl_Button.H
+Fl_Repeat_Button.o: ../FL/Fl_Widget.H
+Fl_Return_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Return_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Return_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Return_Button.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
+Fl_Return_Button.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Roller.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Roller.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Roller.o: ../FL/fl_types.h ../FL/Fl_Roller.H ../FL/Fl_Valuator.H
+Fl_Roller.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Round_Button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Round_Button.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Round_Button.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Round_Button.H
+Fl_Round_Button.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
+Fl_Round_Button.o: ../FL/Fl_Widget.H
+Fl_Scroll.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Scroll.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Scroll.o: ../FL/fl_types.h ../FL/Fl_Tiled_Image.H ../FL/Fl_Image.H
+Fl_Scroll.o: ../FL/Fl_Scroll.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
+Fl_Scroll.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_Scroll.o: ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Scrollbar.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Scrollbar.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Scrollbar.o: ../FL/fl_types.h ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
+Fl_Scrollbar.o: ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H
+Fl_Scrollbar.o: ../FL/Fl_Window.H flstring.h ../config.h
+Fl_Shared_Image.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
+Fl_Shared_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Shared_Image.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Shared_Image.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H
+Fl_Shared_Image.o: ../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H
+Fl_Shared_Image.o: ../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H
+Fl_Single_Window.o: ../FL/Fl_Single_Window.H ../FL/Fl_Window.H
+Fl_Slider.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Slider.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Slider.o: ../FL/fl_types.h ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_Slider.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
+Fl_Slider.o: ../config.h
+Fl_Table.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Table.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Table.H ../FL/Fl.H
+Fl_Table.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Table.o: ../FL/Fl_Group.H ../FL/Fl_Scroll.H ../FL/Fl_Group.H
+Fl_Table.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
+Fl_Table.o: ../FL/Fl_Valuator.H ../FL/Fl_Box.H ../FL/Fl_Scrollbar.H
+Fl_Table_Row.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Table_Row.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Table_Row.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Table_Row.o: ../FL/Fl_Table_Row.H ../FL/Fl_Table.H ../FL/Fl_Group.H
+Fl_Table_Row.o: ../FL/Fl_Scroll.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
+Fl_Table_Row.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_Table_Row.o: ../FL/Fl_Box.H ../FL/Fl_Scrollbar.H
+Fl_Tabs.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Tabs.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Tabs.o: ../FL/fl_types.h ../FL/Fl_Tabs.H ../FL/Fl_Group.H
+Fl_Tabs.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Tabs.o: ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
+Fl_Text_Buffer.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
+Fl_Text_Buffer.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Text_Buffer.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Text_Buffer.o: ../FL/Fl_Text_Buffer.H
+Fl_Text_Display.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
+Fl_Text_Display.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Text_Display.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Text_Display.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
+Fl_Text_Display.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H
+Fl_Text_Display.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
+Fl_Text_Display.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
+Fl_Text_Display.o: ../FL/Fl_Window.H
+Fl_Text_Editor.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
+Fl_Text_Editor.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Text_Editor.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Text_Editor.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
+Fl_Text_Editor.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H
+Fl_Text_Editor.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Scrollbar.H
+Fl_Text_Editor.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_Text_Editor.o: ../FL/Fl_Text_Buffer.H ../FL/fl_ask.H
+Fl_Tile.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Tile.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Tile.o: ../FL/fl_types.h ../FL/Fl_Tile.H ../FL/Fl_Group.H
+Fl_Tile.o: ../FL/Fl_Widget.H ../FL/Fl_Window.H
+Fl_Tiled_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Tiled_Image.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Tiled_Image.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Tiled_Image.H
+Fl_Tiled_Image.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Tree.o: ../FL/Fl_Tree.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Tree.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Tree.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
+Fl_Tree.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+Fl_Tree.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Tree.o: ../FL/Fl_Tree_Item.H ../FL/Fl_Widget.H ../FL/Fl_Pixmap.H
+Fl_Tree.o: ../FL/Fl_Image.H ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Prefs.H
+Fl_Tree_Item.o: ../FL/Fl_Widget.H ../FL/Fl_Tree_Item.H ../FL/Fl.H
+Fl_Tree_Item.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Tree_Item.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Tree_Item.o: ../FL/fl_types.h ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
+Fl_Tree_Item.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Tree_Item_Array.H
+Fl_Tree_Item.o: ../FL/Fl_Tree_Prefs.H
+Fl_Tree_Item_Array.o: ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Item.H
+Fl_Tree_Item_Array.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Tree_Item_Array.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Tree_Item_Array.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
+Fl_Tree_Item_Array.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H ../FL/fl_draw.H
+Fl_Tree_Item_Array.o: ../FL/Fl_Window.H ../FL/Fl_Tree_Prefs.H
+Fl_Tree_Prefs.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Tree_Prefs.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Tree_Prefs.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Pixmap.H
+Fl_Tree_Prefs.o: ../FL/Fl_Image.H ../FL/Fl_Tree_Prefs.H
+Fl_Tooltip.o: ../FL/Fl_Tooltip.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Tooltip.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Tooltip.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
+Fl_Tooltip.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Menu_Window.H
+Fl_Tooltip.o: ../FL/Fl_Single_Window.H
+Fl_Valuator.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Valuator.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Valuator.o: ../FL/fl_types.h ../FL/Fl_Valuator.H ../FL/Fl_Widget.H
+Fl_Valuator.o: ../FL/math.h flstring.h ../config.h
+Fl_Value_Input.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Value_Input.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Value_Input.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Value_Input.H
+Fl_Value_Input.o: ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/Fl_Input.H
+Fl_Value_Input.o: ../FL/Fl_Input_.H ../FL/Fl_Group.H ../FL/math.h
+Fl_Value_Output.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Value_Output.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Value_Output.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Value_Output.H
+Fl_Value_Output.o: ../FL/Fl_Valuator.H ../FL/Fl_Widget.H ../FL/fl_draw.H
+Fl_Value_Output.o: ../FL/Fl_Window.H
+Fl_Value_Slider.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Value_Slider.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Value_Slider.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Value_Slider.H
+Fl_Value_Slider.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Widget.H
+Fl_Value_Slider.o: ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Widget.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Widget.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Widget.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Group.H
+Fl_Widget.o: ../FL/Fl_Tooltip.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
+Fl_Widget.o: ../config.h
+Fl_Window.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Window.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Window.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
+Fl_Window.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H flstring.h ../FL/fl_draw.H
+Fl_Window.o: ../FL/Fl_Window.H
+Fl_Window_fullscreen.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Window_fullscreen.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Window_fullscreen.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
+Fl_Window_fullscreen.o: ../FL/Fl_Window.H ../config.h
+Fl_Window_hotspot.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Window_hotspot.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Window_hotspot.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
+Fl_Window_hotspot.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H
+Fl_Window_hotspot.o: ../FL/Fl_Window.H
+Fl_Window_iconize.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_Window_iconize.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Xutf8.h
+Fl_Wizard.o: ../FL/Fl_Wizard.H ../FL/Fl_Group.H ../FL/Fl_Window.H
+Fl_Wizard.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Enumerations.H
+Fl_Wizard.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+Fl_Wizard.o: ../FL/Fl_Window.H
+Fl_XBM_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_XBM_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_XBM_Image.o: ../FL/fl_types.h ../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H
+Fl_XBM_Image.o: ../FL/Fl_Image.H ../FL/fl_utf8.h flstring.h ../config.h
+Fl_XPM_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_XPM_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_XPM_Image.o: ../FL/fl_types.h ../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H
+Fl_XPM_Image.o: ../FL/Fl_Image.H ../FL/fl_utf8.h flstring.h ../config.h
+Fl_abort.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_abort.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_abort.o: ../FL/fl_types.h flstring.h ../config.h
+Fl_add_idle.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_add_idle.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_add_idle.o: ../FL/fl_types.h
+Fl_arg.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_arg.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_arg.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Window.H
+Fl_arg.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Tooltip.H
+Fl_arg.o: ../FL/Fl_Widget.H ../FL/filename.H ../FL/fl_draw.H flstring.h
+Fl_arg.o: ../config.h
+Fl_compose.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_compose.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_compose.o: ../FL/fl_types.h
+Fl_display.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_display.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_display.o: ../FL/fl_types.h flstring.h ../config.h
+Fl_get_key.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_get_key.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_get_key.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H
+Fl_get_system_colors.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_get_system_colors.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_get_system_colors.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+Fl_get_system_colors.o: ../FL/Fl_Window.H ../FL/x.H ../FL/math.h
+Fl_get_system_colors.o: ../FL/fl_utf8.h flstring.h ../config.h
+Fl_get_system_colors.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
+Fl_get_system_colors.o: ../FL/Fl_Tiled_Image.H tile.xpm
+Fl_grab.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_grab.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_grab.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H
+Fl_lock.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_lock.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_lock.o: ../FL/fl_types.h ../config.h
+Fl_own_colormap.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_own_colormap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_own_colormap.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
+Fl_own_colormap.o: ../FL/Fl_Window.H
+Fl_visual.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_visual.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_visual.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H
+Fl_x.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_x.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_x.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Window.H
+Fl_x.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_utf8.h ../FL/Fl_Tooltip.H
+Fl_x.o: ../FL/Fl_Widget.H ../FL/fl_draw.H flstring.h
+filename_absolute.o: ../FL/filename.H ../FL/fl_utf8.h flstring.h
+filename_absolute.o: ../FL/Fl_Export.H ../config.h
+filename_expand.o: ../FL/filename.H ../FL/fl_utf8.h flstring.h
+filename_expand.o: ../FL/Fl_Export.H ../config.h
+filename_ext.o: ../FL/filename.H
+filename_isdir.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/filename.H
+filename_isdir.o: ../FL/fl_utf8.h
+filename_list.o: ../FL/filename.H flstring.h ../FL/Fl_Export.H ../config.h
+filename_match.o: ../FL/filename.H
+filename_setext.o: ../FL/filename.H flstring.h ../FL/Fl_Export.H ../config.h
+fl_arc.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_arc.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/math.h
+fl_arci.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_arci.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/x.H ../FL/Xutf8.h
+fl_arci.o: ../config.h
+fl_ask.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H ../FL/fl_utf8.h
+fl_ask.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_ask.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_ask.H ../FL/Fl_Box.H
+fl_ask.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H
+fl_ask.o: ../FL/Fl_Button.H ../FL/Fl_Window.H ../FL/Fl_Group.H
+fl_ask.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Secret_Input.H
+fl_ask.o: ../FL/Fl_Input.H ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
+fl_boxtype.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_boxtype.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_boxtype.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/fl_draw.H
+fl_boxtype.o: ../FL/Fl_Window.H ../config.h
+fl_color.o: Fl_XColor.H ../config.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_color.o: ../FL/fl_types.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_color.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H ../FL/x.H
+fl_color.o: ../FL/Fl_Window.H ../FL/fl_draw.H fl_cmap.h
+fl_cursor.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_cursor.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_cursor.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
+fl_cursor.o: ../FL/Fl_Widget.H ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
+fl_curve.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_curve.o: ../FL/fl_types.h ../FL/Fl_Window.H
+fl_diamond_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_diamond_box.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_diamond_box.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+fl_diamond_box.o: ../FL/Fl_Window.H
+fl_dnd.o: fl_dnd_x.cxx ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_dnd.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_dnd.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
+fl_dnd.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H ../FL/Fl_Window.H
+fl_dnd.o: flstring.h ../config.h
+fl_draw.o: ../FL/fl_utf8.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_draw.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_draw.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+fl_draw.o: ../FL/Fl_Window.H ../FL/Fl_Image.H flstring.h ../config.h
+fl_draw_image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_draw_image.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_draw_image.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+fl_draw_image.o: ../FL/Fl_Window.H ../FL/x.H Fl_XColor.H ../config.h
+fl_draw_image.o: ../FL/Enumerations.H flstring.h
+fl_draw_pixmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_draw_pixmap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_draw_pixmap.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+fl_draw_pixmap.o: ../FL/Fl_Window.H ../FL/x.H flstring.h ../config.h
+fl_encoding_latin1.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_encoding_latin1.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Enumerations.H
+fl_encoding_latin1.o: flstring.h ../FL/Fl_Export.H ../config.h
+fl_encoding_mac_roman.o: ../FL/fl_draw.H ../FL/Enumerations.H
+fl_encoding_mac_roman.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
+fl_encoding_mac_roman.o: ../FL/Enumerations.H flstring.h ../FL/Fl_Export.H
+fl_encoding_mac_roman.o: ../config.h
+fl_engraved_label.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_engraved_label.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_engraved_label.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
+fl_engraved_label.o: ../FL/fl_draw.H ../FL/Fl_Window.H
+fl_file_dir.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/filename.H
+fl_file_dir.o: ../FL/Fl_File_Chooser.H ../FL/Fl.H ../FL/fl_utf8.h
+fl_file_dir.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_file_dir.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
+fl_file_dir.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H
+fl_file_dir.o: ../FL/Fl_Menu_.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H
+fl_file_dir.o: ../FL/Fl_Image.H ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H
+fl_file_dir.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_Group.H
+fl_file_dir.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
+fl_file_dir.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
+fl_file_dir.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
+fl_file_dir.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
+fl_file_dir.o: ../FL/Fl_Button.H ../FL/Fl_File_Input.H ../FL/Fl_Input.H
+fl_file_dir.o: ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H ../FL/fl_ask.H
+fl_font.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
+fl_font.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+fl_font.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+fl_font.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H Fl_Font.H
+fl_font.o: ../FL/Xutf8.h fl_font_x.cxx
+fl_gtk.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_gtk.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_gtk.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
+fl_labeltype.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_labeltype.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_labeltype.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Group.H
+fl_labeltype.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Image.H
+fl_labeltype.o: ../FL/Fl_Input_.H ../FL/Fl_Widget.H
+fl_line_style.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_line_style.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_line_style.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+fl_line_style.o: ../FL/Fl_Window.H ../FL/x.H flstring.h ../config.h
+fl_open_uri.o: ../FL/filename.H flstring.h ../FL/Fl_Export.H ../config.h
+fl_oval_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_oval_box.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_oval_box.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
+fl_overlay.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_overlay.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Xutf8.h
+fl_overlay.o: ../FL/fl_draw.H
+fl_overlay_visual.o: ../config.h
+fl_plastic.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_plastic.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_plastic.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
+fl_plastic.o: ../config.h
+fl_read_image.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_read_image.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Xutf8.h ../FL/Fl.H
+fl_read_image.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_read_image.o: ../FL/fl_draw.H flstring.h ../config.h
+fl_rect.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_rect.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_rect.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Widget.H
+fl_rect.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/x.H
+fl_round_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_round_box.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_round_box.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H
+fl_rounded_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_rounded_box.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_rounded_box.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+fl_rounded_box.o: ../FL/Fl_Window.H
+fl_set_font.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_set_font.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_set_font.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H
+fl_set_font.o: flstring.h ../config.h Fl_Font.H ../FL/Xutf8.h
+fl_set_fonts.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_set_fonts.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_set_fonts.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H Fl_Font.H
+fl_set_fonts.o: ../config.h ../FL/Xutf8.h flstring.h fl_set_fonts_x.cxx
+fl_scroll_area.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_scroll_area.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_scroll_area.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
+fl_scroll_area.o: ../FL/Fl_Window.H ../FL/fl_draw.H
+fl_shadow_box.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_shadow_box.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_shadow_box.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/fl_draw.H
+fl_shadow_box.o: ../FL/Fl_Window.H
+fl_shortcut.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_shortcut.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_shortcut.o: ../FL/fl_types.h ../FL/Fl_Widget.H ../FL/Fl_Button.H
+fl_shortcut.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Fl_Window.H flstring.h
+fl_shortcut.o: ../config.h ../FL/x.H
+fl_show_colormap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_show_colormap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+fl_show_colormap.o: ../FL/Fl_Export.H ../FL/fl_types.h
+fl_show_colormap.o: ../FL/Fl_Single_Window.H ../FL/Fl_Window.H
+fl_show_colormap.o: ../FL/fl_draw.H ../FL/fl_show_colormap.H ../config.h
+fl_symbols.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+fl_symbols.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+fl_symbols.o: ../FL/fl_types.h ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/math.h
+fl_symbols.o: flstring.h ../config.h
+fl_vertex.o: ../config.h ../FL/fl_draw.H ../FL/Enumerations.H
+fl_vertex.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H ../FL/x.H
+fl_vertex.o: ../FL/Xutf8.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+fl_vertex.o: ../FL/fl_types.h ../FL/math.h
+screen_xywh.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+screen_xywh.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+screen_xywh.o: ../FL/fl_types.h ../FL/x.H ../FL/Fl_Window.H ../config.h
+fl_utf8.o: ../config.h ../FL/filename.H ../FL/Xutf8.h ../FL/fl_utf8.h
+forms_compatability.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h
+forms_compatability.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
+forms_compatability.o: ../FL/Enumerations.H ../FL/Fl_Export.H
+forms_compatability.o: ../FL/fl_types.h ../FL/Fl_Group.H ../FL/Fl_Widget.H
+forms_compatability.o: ../FL/Fl_Window.H ../FL/fl_draw.H
+forms_compatability.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H
+forms_compatability.o: ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H
+forms_compatability.o: ../FL/Fl_Pixmap.H ../FL/Fl_Box.H ../FL/Fl_Browser.H
+forms_compatability.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
+forms_compatability.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
+forms_compatability.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
+forms_compatability.o: ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H
+forms_compatability.o: ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+forms_compatability.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H
+forms_compatability.o: ../FL/Fl_Counter.H ../FL/Fl_Dial.H ../FL/Fl_Free.H
+forms_compatability.o: ../FL/fl_ask.H ../FL/fl_show_colormap.H
+forms_compatability.o: ../FL/filename.H ../FL/Fl_File_Chooser.H
+forms_compatability.o: ../FL/Fl_Double_Window.H ../FL/Fl_Group.H
+forms_compatability.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
+forms_compatability.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H
+forms_compatability.o: ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H
+forms_compatability.o: ../FL/Fl_File_Icon.H ../FL/Fl_Box.H
+forms_compatability.o: ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H
+forms_compatability.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H
+forms_compatability.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H
+forms_compatability.o: ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H
+forms_compatability.o: ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H
+forms_compatability.o: ../FL/Fl_Timer.H ../FL/Fl_Repeat_Button.H
+forms_bitmap.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+forms_bitmap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+forms_bitmap.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
+forms_bitmap.o: ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H
+forms_bitmap.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
+forms_bitmap.o: ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H
+forms_bitmap.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
+forms_bitmap.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
+forms_bitmap.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
+forms_bitmap.o: ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H
+forms_bitmap.o: ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+forms_bitmap.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H
+forms_bitmap.o: ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
+forms_bitmap.o: ../FL/fl_show_colormap.H ../FL/filename.H
+forms_bitmap.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
+forms_bitmap.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
+forms_bitmap.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
+forms_bitmap.o: ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H ../FL/Fl_Box.H
+forms_bitmap.o: ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H
+forms_bitmap.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H
+forms_bitmap.o: ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H
+forms_bitmap.o: ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H
+forms_bitmap.o: ../FL/Fl_Timer.H
+forms_free.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+forms_free.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+forms_free.o: ../FL/fl_types.h ../FL/Fl_Free.H ../FL/Fl_Widget.H
+forms_fselect.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+forms_fselect.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+forms_fselect.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
+forms_fselect.o: ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H
+forms_fselect.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
+forms_fselect.o: ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H
+forms_fselect.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
+forms_fselect.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
+forms_fselect.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
+forms_fselect.o: ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H
+forms_fselect.o: ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+forms_fselect.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H
+forms_fselect.o: ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
+forms_fselect.o: ../FL/fl_show_colormap.H ../FL/filename.H
+forms_fselect.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
+forms_fselect.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
+forms_fselect.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
+forms_fselect.o: ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H ../FL/Fl_Box.H
+forms_fselect.o: ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H
+forms_fselect.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H
+forms_fselect.o: ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H
+forms_fselect.o: ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H
+forms_fselect.o: ../FL/Fl_Timer.H flstring.h ../config.h
+forms_pixmap.o: ../FL/forms.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+forms_pixmap.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+forms_pixmap.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
+forms_pixmap.o: ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/fl_draw.H
+forms_pixmap.o: ../FL/Fl_FormsBitmap.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
+forms_pixmap.o: ../FL/Fl_FormsPixmap.H ../FL/Fl_Pixmap.H ../FL/Fl_Box.H
+forms_pixmap.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
+forms_pixmap.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl.H
+forms_pixmap.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
+forms_pixmap.o: ../FL/Fl_Round_Button.H ../FL/Fl_Check_Button.H
+forms_pixmap.o: ../FL/Fl_Chart.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
+forms_pixmap.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H ../FL/Fl_Counter.H
+forms_pixmap.o: ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
+forms_pixmap.o: ../FL/fl_show_colormap.H ../FL/filename.H
+forms_pixmap.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
+forms_pixmap.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
+forms_pixmap.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
+forms_pixmap.o: ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H ../FL/Fl_Box.H
+forms_pixmap.o: ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H
+forms_pixmap.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H
+forms_pixmap.o: ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H
+forms_pixmap.o: ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H
+forms_pixmap.o: ../FL/Fl_Timer.H
+forms_timer.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+forms_timer.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+forms_timer.o: ../FL/fl_types.h ../FL/Fl_Timer.H ../FL/Fl_Widget.H
+forms_timer.o: ../FL/fl_draw.H ../FL/Fl_Window.H
+Fl_Gl_Choice.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Gl_Choice.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Gl_Choice.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
+Fl_Gl_Choice.o: ../FL/Fl_Window.H Fl_Gl_Choice.H ../FL/gl_draw.H ../FL/gl.h
+Fl_Gl_Choice.o: flstring.h ../FL/fl_utf8.h
+Fl_Gl_Overlay.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+Fl_Gl_Overlay.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_Gl_Overlay.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/x.H
+Fl_Gl_Overlay.o: ../FL/Fl_Window.H Fl_Gl_Choice.H ../FL/Fl_Gl_Window.H
+Fl_Gl_Window.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
+Fl_Gl_Window.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Gl_Window.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Gl_Window.o: ../FL/x.H ../FL/Fl_Window.H Fl_Gl_Choice.H
+Fl_Gl_Window.o: ../FL/Fl_Gl_Window.H ../FL/fl_utf8.h
+freeglut_geometry.o: ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
+freeglut_geometry.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
+freeglut_geometry.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+freeglut_geometry.o: ../FL/Xutf8.h ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
+freeglut_geometry.o: ../FL/math.h
+freeglut_stroke_mono_roman.o: ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
+freeglut_stroke_mono_roman.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
+freeglut_stroke_mono_roman.o: ../FL/fl_utf8.h ../FL/Fl_Export.H
+freeglut_stroke_mono_roman.o: ../FL/fl_types.h ../FL/Xutf8.h
+freeglut_stroke_mono_roman.o: ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
+freeglut_stroke_roman.o: ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
+freeglut_stroke_roman.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
+freeglut_stroke_roman.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+freeglut_stroke_roman.o: ../FL/Xutf8.h ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
+freeglut_teapot.o: ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
+freeglut_teapot.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
+freeglut_teapot.o: ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+freeglut_teapot.o: ../FL/Xutf8.h ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
+freeglut_teapot.o: freeglut_teapot_data.h
+gl_draw.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
+gl_draw.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
+gl_draw.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h ../FL/gl.h
+gl_draw.o: ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H Fl_Gl_Choice.H
+gl_draw.o: Fl_Font.H ../FL/Xutf8.h ../FL/fl_utf8.h
+gl_start.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
+gl_start.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+gl_start.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
+gl_start.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H ../FL/Fl_Window.H
+gl_start.o: ../FL/fl_draw.H Fl_Gl_Choice.H
+glut_compatability.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/glut.H
+glut_compatability.o: ../FL/gl.h ../FL/Enumerations.H ../FL/Fl_Export.H
+glut_compatability.o: ../FL/fl_types.h ../FL/Fl.H ../FL/fl_utf8.h
+glut_compatability.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Fl_Gl_Window.H
+glut_compatability.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Item.H
+glut_compatability.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H
+glut_font.o: ../config.h ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
+glut_font.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H ../FL/fl_utf8.h
+glut_font.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
+glut_font.o: ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
+fl_images_core.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H
+fl_images_core.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+fl_images_core.o: ../FL/Fl_BMP_Image.H ../FL/Fl_GIF_Image.H ../FL/Fl_Pixmap.H
+fl_images_core.o: ../FL/Fl_JPEG_Image.H ../FL/Fl_PNG_Image.H
+fl_images_core.o: ../FL/Fl_PNM_Image.H flstring.h ../FL/Fl_Export.H
+fl_images_core.o: ../config.h
+Fl_BMP_Image.o: ../FL/Fl_BMP_Image.H ../FL/Fl_Image.H ../FL/Enumerations.H
+Fl_BMP_Image.o: ../FL/Fl_Export.H ../FL/fl_types.h ../config.h
+Fl_File_Icon2.o: ../FL/fl_utf8.h flstring.h ../FL/Fl_Export.H ../config.h
+Fl_File_Icon2.o: ../FL/math.h ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/fl_utf8.h
+Fl_File_Icon2.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
+Fl_File_Icon2.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Shared_Image.H
+Fl_File_Icon2.o: ../FL/Fl_Image.H ../FL/Fl_Widget.H ../FL/fl_draw.H
+Fl_File_Icon2.o: ../FL/Fl_Window.H ../FL/filename.H
+Fl_GIF_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_GIF_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_GIF_Image.o: ../FL/fl_types.h ../FL/Fl_GIF_Image.H ../FL/Fl_Pixmap.H
+Fl_GIF_Image.o: ../FL/Fl_Image.H ../FL/fl_utf8.h flstring.h ../config.h
+Fl_Help_Dialog.o: ../FL/Fl_Help_Dialog.H ../FL/Fl.H ../FL/fl_utf8.h
+Fl_Help_Dialog.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
+Fl_Help_Dialog.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_Help_Dialog.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
+Fl_Help_Dialog.o: ../FL/Fl_Button.H ../FL/Fl_Widget.H ../FL/Fl_Input.H
+Fl_Help_Dialog.o: ../FL/Fl_Input_.H ../FL/Fl_Box.H ../FL/Fl_Help_View.H
+Fl_Help_Dialog.o: ../FL/Fl.H ../FL/Fl_Group.H ../FL/Fl_Scrollbar.H
+Fl_Help_Dialog.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
+Fl_Help_Dialog.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H flstring.h
+Fl_Help_Dialog.o: ../config.h ../FL/fl_ask.H
+Fl_JPEG_Image.o: ../FL/Fl_JPEG_Image.H ../FL/Fl_Image.H ../FL/Enumerations.H
+Fl_JPEG_Image.o: ../FL/Fl_Export.H ../FL/fl_types.h ../config.h
+Fl_PNG_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_PNG_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_PNG_Image.o: ../FL/fl_types.h ../FL/Fl_PNG_Image.H ../FL/Fl_Image.H
+Fl_PNG_Image.o: ../config.h ../FL/fl_utf8.h
+Fl_PNM_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
+Fl_PNM_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
+Fl_PNM_Image.o: ../FL/fl_types.h ../FL/Fl_PNM_Image.H ../FL/Fl_Image.H
+Fl_PNM_Image.o: ../FL/fl_utf8.h flstring.h ../config.h
+flstring.o: flstring.h ../FL/Fl_Export.H ../config.h
+scandir.o: flstring.h ../FL/Fl_Export.H ../config.h ../FL/fl_utf8.h
+numericsort.o: ../config.h ../FL/filename.H
+vsnprintf.o: flstring.h ../FL/Fl_Export.H ../config.h
+fl_utf.o: ../FL/fl_utf8.h
+xutf8/case.o: xutf8/headers/case.h
+xutf8/is_spacing.o: xutf8/headers/spacing.h
+xutf8/keysym2Ucs.o: ../FL/Xutf8.h xutf8/imKStoUCS.c xutf8/Xlibint.h
+xutf8/keysym2Ucs.o: xutf8/Ximint.h
+xutf8/utf8Input.o: ../config.h ../FL/Xutf8.h xutf8/lcUniConv/big5.h
+xutf8/utf8Input.o: xutf8/lcUniConv/gb2312.h xutf8/lcUniConv/jisx0201.h
+xutf8/utf8Input.o: xutf8/lcUniConv/jisx0208.h xutf8/lcUniConv/jisx0212.h
+xutf8/utf8Input.o: xutf8/lcUniConv/ksc5601.h
+xutf8/utf8Utils.o: ../FL/Xutf8.h
+xutf8/utf8Wrap.o: ../FL/Xutf8.h xutf8/ucs2fontmap.c xutf8/lcUniConv/big5.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/gb2312.h xutf8/lcUniConv/iso8859_10.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/iso8859_11.h xutf8/lcUniConv/iso8859_13.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/iso8859_14.h xutf8/lcUniConv/iso8859_15.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/iso8859_2.h xutf8/lcUniConv/iso8859_3.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/iso8859_4.h xutf8/lcUniConv/iso8859_5.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/iso8859_6.h xutf8/lcUniConv/iso8859_7.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/iso8859_8.h xutf8/lcUniConv/iso8859_9.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/jisx0201.h xutf8/lcUniConv/jisx0208.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/jisx0212.h xutf8/lcUniConv/koi8_r.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/koi8_u.h xutf8/lcUniConv/ksc5601.h
+xutf8/utf8Wrap.o: xutf8/lcUniConv/cp1251.h xutf8/headers/symbol_.h
+xutf8/utf8Wrap.o: xutf8/headers/dingbats_.h