Added Fl_Tree source code, demo files, and documentation. Thanks, Greg!

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6934 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Matthias Melcher 2009-11-14 15:49:12 +00:00
parent 69601a6d58
commit 07a18370ad
24 changed files with 6116 additions and 2105 deletions

View File

@ -52,24 +52,24 @@
Normally applications use widgets derived from this widget, and do not use this
widget directly; this widget is usually too low level to be used directly by
applications.
This widget does \em not handle the data in the table. The draw_cell()
method must be overridden by a subclass to manage drawing the contents of
the cells.
This widget can be used in several ways:
- As a custom widget; see test/testtablerow.cxx. Very optimal for even
extremely large tables.
- As a table made up of a single FLTK widget instanced all over the table;
see test/singleinput.cxx. Very optimal for even extremely large tables;
- As a regular container of FLTK widgets, one widget per cell.
See test/widgettable.cxx. \em Not recommended for large tables.
- As a custom widget; see test/testtablerow.cxx. Very optimal for even
extremely large tables.
- As a table made up of a single FLTK widget instanced all over the table;
see test/singleinput.cxx. Very optimal for even extremely large tables;
- As a regular container of FLTK widgets, one widget per cell.
See test/widgettable.cxx. \em Not recommended for large tables.
When acting as part of a custom widget, events on the cells and/or headings
generate callbacks when they are clicked by the user. You control when events
are generated based on the setting for Fl_Table::when().
When acting as a container for FLTK widgets, the FLTK widgets maintain
themselves. Although the draw_cell() method must be overridden, its contents
can be very simple. See the draw_cell() code in test/widgettable.cxx.
@ -77,7 +77,7 @@
The following variables are available to classes deriving from Fl_Table:
\image html table-dimensions.gif
<table border=0>
<tr><td>x()/y()/w()/h()</td>
<td>Fl_Table widget's outer dimension. The outer edge of the border of the
@ -178,21 +178,21 @@ public:
CONTEXT_TABLE = 0x20, // in the table
CONTEXT_RC_RESIZE = 0x40 // column or row being resized
};
private:
int _rows, _cols; // total rows/cols
int _row_header_w; // width of row header
int _col_header_h; // height of column header
int _row_position; // last row_position set (not necessarily == toprow!)
int _col_position; // last col_position set (not necessarily == leftcol!)
char _row_header; // row header enabled?
char _col_header; // col header enabled?
char _row_resize; // row resizing enabled?
char _col_resize; // col resizing enabled?
int _row_resize_min; // row minimum resizing height (default=1)
int _col_resize_min; // col minimum resizing width (default=1)
// OPTIMIZATION: partial row/column redraw variables
int _redraw_toprow;
int _redraw_botrow;
@ -200,10 +200,10 @@ private:
int _redraw_rightcol;
Fl_Color _row_header_color;
Fl_Color _col_header_color;
int _auto_drag;
int _selecting;
// An STL-ish vector without templates
class IntVector {
int *arr;
@ -231,23 +231,23 @@ private:
void size(unsigned int count) {
if ( count != _size ) {
arr = (int*)realloc(arr, count * sizeof(int));
_size = count;
_size = count;
}
}
int pop_back() { int tmp = arr[_size-1]; _size--; return(tmp); }
void push_back(int val) { unsigned int x = _size; size(_size+1); arr[x] = val; }
int back() { return(arr[_size-1]); }
};
IntVector _colwidths; // column widths in pixels
IntVector _rowheights; // row heights in pixels
Fl_Cursor _last_cursor; // last mouse cursor before changed to 'resize' cursor
// EVENT CALLBACK DATA
TableContext _callback_context; // event context
int _callback_row, _callback_col; // event row/col
// handle() state variables.
// Put here instead of local statics in handle(), so more
// than one Fl_Table can exist without crosstalk between them.
@ -257,15 +257,15 @@ private:
int _dragging_x; // starting x position for horiz drag
int _dragging_y; // starting y position for vert drag
int _last_row; // last row we FL_PUSH'ed
// Redraw single cell
void _redraw_cell(TableContext context, int R, int C);
void _start_auto_drag();
void _stop_auto_drag();
void _auto_drag_cb();
static void _auto_drag_cb2(void *d);
protected:
enum ResizeFlag {
RESIZE_NONE = 0,
@ -274,51 +274,51 @@ protected:
RESIZE_ROW_ABOVE = 3,
RESIZE_ROW_BELOW = 4
};
int table_w, table_h; // table's virtual size (in pixels)
int toprow, botrow, leftcol, rightcol; // four corners of viewable table
// selection
int current_row, current_col;
int select_row, select_col;
// OPTIMIZATION: Precomputed scroll positions for the toprow/leftcol
int toprow_scrollpos;
int leftcol_scrollpos;
// Dimensions
int tix, tiy, tiw, tih; // data table inner dimension xywh
int tox, toy, tow, toh; // data table outer dimension xywh
int wix, wiy, wiw, wih; // widget inner dimension xywh
Fl_Scroll *table; // container for child fltk widgets (if any)
Fl_Scrollbar *vscrollbar; // vertical scrollbar
Fl_Scrollbar *hscrollbar; // horizontal scrollbar
// Fltk
int handle(int e); // fltk handle() override
// Class maintenance
void recalc_dimensions();
void table_resized(); // table resized; recalc
void table_scrolled(); // table scrolled; recalc
void get_bounds(TableContext context, // return x/y/w/h bounds for context
int &X, int &Y, int &W, int &H);
int &X, int &Y, int &W, int &H);
void change_cursor(Fl_Cursor newcursor); // change mouse cursor to some other shape
TableContext cursor2rowcol(int &R, int &C, ResizeFlag &resizeflag);
// find r/c given current x/y event
// find r/c given current x/y event
int find_cell(TableContext context, // find cell's x/y/w/h given r/c
int R, int C, int &X, int &Y, int &W, int &H);
int R, int C, int &X, int &Y, int &W, int &H);
int row_col_clamp(TableContext context, int &R, int &C);
// clamp r/c to known universe
// clamp r/c to known universe
/**
Subclass should override this method to handle drawing the cells.
This method will be called whenever the table is redrawn, once per cell.
Only cells that are completely (or partially) visible will be told to draw.
\p context will be one of the following:
<table border=1>
@ -371,65 +371,65 @@ protected:
// This is called whenever Fl_Table wants you to draw a cell
void MyTable::draw_cell(TableContext context, int R=0, int C=0, int X=0, int Y=0, int W=0, int H=0)
{
static char s[40];
sprintf(s, "%d/%d", R, C); // text for each cell
switch ( context )
{
case CONTEXT_STARTPAGE: // Fl_Table telling us its starting to draw page
fl_font(FL_HELVETICA, 16);
return;
case CONTEXT_ROW_HEADER: // Fl_Table telling us it's draw row/col headers
case CONTEXT_COL_HEADER:
fl_push_clip(X, Y, W, H);
{
fl_draw_box(FL_THIN_UP_BOX, X, Y, W, H, color());
fl_color(FL_BLACK);
fl_draw(s, X, Y, W, H, FL_ALIGN_CENTER);
}
fl_pop_clip();
return;
case CONTEXT_CELL: // Fl_Table telling us to draw cells
fl_push_clip(X, Y, W, H);
{
// BG COLOR
fl_color( row_selected(R) ? selection_color() : FL_WHITE);
fl_rectf(X, Y, W, H);
// TEXT
fl_color(FL_BLACK);
fl_draw(s, X, Y, W, H, FL_ALIGN_CENTER);
// BORDER
fl_color(FL_LIGHT2);
fl_rect(X, Y, W, H);
}
fl_pop_clip();
return;
default:
return;
}
//NOTREACHED
static char s[40];
sprintf(s, "%d/%d", R, C); // text for each cell
switch ( context )
{
case CONTEXT_STARTPAGE: // Fl_Table telling us its starting to draw page
fl_font(FL_HELVETICA, 16);
return;
case CONTEXT_ROW_HEADER: // Fl_Table telling us it's draw row/col headers
case CONTEXT_COL_HEADER:
fl_push_clip(X, Y, W, H);
{
fl_draw_box(FL_THIN_UP_BOX, X, Y, W, H, color());
fl_color(FL_BLACK);
fl_draw(s, X, Y, W, H, FL_ALIGN_CENTER);
}
fl_pop_clip();
return;
case CONTEXT_CELL: // Fl_Table telling us to draw cells
fl_push_clip(X, Y, W, H);
{
// BG COLOR
fl_color( row_selected(R) ? selection_color() : FL_WHITE);
fl_rectf(X, Y, W, H);
// TEXT
fl_color(FL_BLACK);
fl_draw(s, X, Y, W, H, FL_ALIGN_CENTER);
// BORDER
fl_color(FL_LIGHT2);
fl_rect(X, Y, W, H);
}
fl_pop_clip();
return;
default:
return;
}
//NOTREACHED
}
\endcode
*/
virtual void draw_cell(TableContext context, int R=0, int C=0,
int X=0, int Y=0, int W=0, int H=0)
{ } // overridden by deriving class
int X=0, int Y=0, int W=0, int H=0)
{ } // overridden by deriving class
long row_scroll_position(int row); // find scroll position of row (in pixels)
long col_scroll_position(int col); // find scroll position of col (in pixels)
int is_fltk_container() { // does table contain fltk widgets?
return( Fl_Group::children() > 3 ); // (ie. more than box and 2 scrollbars?)
}
static void scroll_cb(Fl_Widget*,void*); // h/v scrollbar callback
void damage_zone(int r1, int c1, int r2, int c2, int r3 = 0, int c3 = 0);
void redraw_range(int toprow, int botrow, int leftcol, int rightcol) {
if ( _redraw_toprow == -1 ) {
// Initialize redraw range
@ -444,11 +444,11 @@ protected:
if ( leftcol < _redraw_leftcol ) _redraw_leftcol = leftcol;
if ( rightcol > _redraw_rightcol ) _redraw_rightcol = rightcol;
}
// Indicate partial redraw needed of some cells
damage(FL_DAMAGE_CHILD);
}
public:
/**
The constructor for the Fl_Table.
@ -456,24 +456,24 @@ public:
with headers and row/column resize behavior disabled.
*/
Fl_Table(int X, int Y, int W, int H, const char *l=0);
/**
The destructor for the Fl_Table.
Destroys the table and its associated widgets.
*/
~Fl_Table();
/**
Clears the table to zero rows, zero columns.
Same as rows(0); cols(0);
\see rows(int), cols(int)
*/
virtual void clear() { rows(0); cols(0); }
// topline()
// middleline()
// bottomline()
/**
Sets the kind of box drawn around the data table,
the default being FL_NO_BOX. Changing this value will cause the table
@ -518,30 +518,30 @@ public:
/**
Returns the range of row and column numbers for all the
visible (and partially visible) cells in the table.
These values can be used e.g. by your draw_cell() routine during
CONTEXT_STARTPAGE to figure out what cells are about to be redrawn,
for the purposes of locking the data from a database before it's drawn.
\code
leftcol rightcol
: :
leftcol rightcol
: :
toprow .. .-------------------.
| |
| V I S I B L E |
| |
| T A B L E |
| |
| |
| V I S I B L E |
| |
| T A B L E |
| |
botrow .. '-------------------`
\endcode
e.g. in a table where the visible rows are 5-20, and the
visible columns are 100-120, then those variables would be:
- toprow = 5
- botrow = 20
- leftcol = 100
- rightcol = 120
- toprow = 5
- botrow = 20
- leftcol = 100
- rightcol = 120
*/
inline void visible_cells(int& r1, int& r2, int& c1, int& c2) {
r1 = toprow;
@ -733,7 +733,7 @@ public:
inline int row_height(int row) {
return((row<0 || row>=(int)_rowheights.size()) ? 0 : _rowheights[row]);
}
/**
Sets the width of the specified column in pixels, and the table is redrawn.
callback() will be invoked with CONTEXT_RC_RESIZE
@ -812,24 +812,24 @@ public:
void get_selection(int& s_top, int& s_left, int& s_bottom, int& s_right);
void set_selection(int s_top, int s_left, int s_bottom, int s_right);
int move_cursor(int R, int C);
/**
Changes the size of the Fl_Table, causing it to redraw.
*/
void resize(int X, int Y, int W, int H); // fltk resize() override
void draw(void); // fltk draw() override
// This crashes sortapp() during init.
// void box(Fl_Boxtype val) {
// Fl_Group::box(val);
// if ( table ) {
// resize(x(), y(), w(), h());
// }
// }
// Fl_Boxtype box(void) const {
// return(Fl_Group::box());
// }
// This crashes sortapp() during init.
// void box(Fl_Boxtype val) {
// Fl_Group::box(val);
// if ( table ) {
// resize(x(), y(), w(), h());
// }
// }
// Fl_Boxtype box(void) const {
// return(Fl_Group::box());
// }
// Child group
void init_sizes() {
table->init_sizes();
@ -879,8 +879,8 @@ public:
\code
for ( int i=0; i<children(); i++ )
{
Fl_Widget *w = child(i);
[..]
Fl_Widget *w = child(i);
[..]
}
\endcode
*/
@ -975,85 +975,85 @@ public:
#if DOXYGEN
/**
Callbacks will be called depending on the setting of Fl_Widget::when().
Callback functions should use the following functions to determine the
context/row/column:
* Fl_Table::callback_row() returns current row
* Fl_Table::callback_col() returns current column
* Fl_Table::callback_context() returns current table context
callback_row() and callback_col() will be set to the row and column number the
event occurred on. If someone clicked on a row header, \p col will be \a 0.
If someone clicked on a column header, \p row will be \a 0.
callback_context() will return one of the following:
<table border=1>
<tr><td><tt>Fl_Table::CONTEXT_ROW_HEADER</tt></td>
<td>Someone clicked on a row header. Excludes resizing.</td>
</tr><tr>
<td><tt>Fl_Table::CONTEXT_COL_HEADER</tt></td>
<td>Someone clicked on a column header. Excludes resizing.</td>
</tr><tr>
<td><tt>Fl_Table::CONTEXT_CELL</tt></td>
<td>
Someone clicked on a cell.
To receive callbacks for FL_RELEASE events, you must set
when(FL_WHEN_RELEASE).
</td>
</tr><tr>
<td><tt>Fl_Table::CONTEXT_RC_RESIZE</tt></td>
<td>
Someone is resizing rows/columns either interactively,
or via the col_width() or row_height() API.
Use is_interactive_resize()
to determine interactive resizing.
If resizing a column, R=0 and C=column being resized.
If resizing a row, C=0 and R=row being resized.
NOTE: To receive resize events, you must set when(FL_WHEN_CHANGED).
</td>
</tr>
</table>
\code
class MyTable
{
[..]
private:
// Handle events that happen on the table
void event_callback2()
{
int R = callback_row(), // row where event occurred
C = callback_col(); // column where event occurred
TableContext context = callback_context(); // which part of table
fprintf(stderr, "callback: Row=%d Col=%d Context=%d Event=%d\n",
R, C, (int)context, (int)Fl::event());
}
// Actual static callback
static void event_callback(Fl_Widget*, void* data)
{
MyTable *o = (MyTable*)data;
o-&gt;event_callback2();
}
public:
MyTable() // Constructor
{
[..]
table.callback(&event_callback, (void*)this); // setup callback
table.when(FL_WHEN_CHANGED|FL_WHEN_RELEASE); // when to call it
}
};
\endcode
*/
Callbacks will be called depending on the setting of Fl_Widget::when().
Callback functions should use the following functions to determine the
context/row/column:
* Fl_Table::callback_row() returns current row
* Fl_Table::callback_col() returns current column
* Fl_Table::callback_context() returns current table context
callback_row() and callback_col() will be set to the row and column number the
event occurred on. If someone clicked on a row header, \p col will be \a 0.
If someone clicked on a column header, \p row will be \a 0.
callback_context() will return one of the following:
<table border=1>
<tr><td><tt>Fl_Table::CONTEXT_ROW_HEADER</tt></td>
<td>Someone clicked on a row header. Excludes resizing.</td>
</tr><tr>
<td><tt>Fl_Table::CONTEXT_COL_HEADER</tt></td>
<td>Someone clicked on a column header. Excludes resizing.</td>
</tr><tr>
<td><tt>Fl_Table::CONTEXT_CELL</tt></td>
<td>
Someone clicked on a cell.
To receive callbacks for FL_RELEASE events, you must set
when(FL_WHEN_RELEASE).
</td>
</tr><tr>
<td><tt>Fl_Table::CONTEXT_RC_RESIZE</tt></td>
<td>
Someone is resizing rows/columns either interactively,
or via the col_width() or row_height() API.
Use is_interactive_resize()
to determine interactive resizing.
If resizing a column, R=0 and C=column being resized.
If resizing a row, C=0 and R=row being resized.
NOTE: To receive resize events, you must set when(FL_WHEN_CHANGED).
</td>
</tr>
</table>
\code
class MyTable
{
[..]
private:
// Handle events that happen on the table
void event_callback2()
{
int R = callback_row(), // row where event occurred
C = callback_col(); // column where event occurred
TableContext context = callback_context(); // which part of table
fprintf(stderr, "callback: Row=%d Col=%d Context=%d Event=%d\n",
R, C, (int)context, (int)Fl::event());
}
// Actual static callback
static void event_callback(Fl_Widget*, void* data)
{
MyTable *o = (MyTable*)data;
o-&gt;event_callback2();
}
public:
MyTable() // Constructor
{
[..]
table.callback(&event_callback, (void*)this); // setup callback
table.when(FL_WHEN_CHANGED|FL_WHEN_RELEASE); // when to call it
}
};
\endcode
*/
void callback(Fl_Widget*, void*);
#endif
};

View File

@ -98,7 +98,7 @@ private:
void size(int count) {
if ( count != _size ) {
arr = (char*)realloc(arr, count * sizeof(char));
_size = count;
_size = count;
}
}
char pop_back() {
@ -116,7 +116,7 @@ private:
}
};
CharVector _rowselect; // selection flag for each row
// handle() state variables.
// Put here instead of local statics in handle(), so more
// than one instance can exist without crosstalk between.
@ -126,22 +126,22 @@ private:
int _last_y; // last event's Y position
int _last_push_x; // last PUSH event's X position
int _last_push_y; // last PUSH event's Y position
TableRowSelectMode _selectmode;
protected:
int handle(int event);
int find_cell(TableContext context, // find cell's x/y/w/h given r/c
int R, int C, int &X, int &Y, int &W, int &H) {
int R, int C, int &X, int &Y, int &W, int &H) {
return(Fl_Table::find_cell(context, R, C, X, Y, W, H));
}
public:
/**
The constructor for the Fl_Table_Row.
This creates an empty table with no rows or columns,
with headers and row/column resize behavior disabled.
*/
*/
Fl_Table_Row(int X, int Y, int W, int H, const char *l=0) : Fl_Table(X,Y,W,H,l) {
_dragging_select = 0;
_last_row = -1;
@ -168,7 +168,7 @@ public:
- \p Fl_Table_Row::SELECT_NONE - No selection allowed
- \p Fl_Table_Row::SELECT_SINGLE - Only single rows can be selected
- \p Fl_Table_Row::SELECT_MULTI - Multiple rows can be selected
*/
*/
void type(TableRowSelectMode val); // set selection mode
TableRowSelectMode type() const { // get selection mode
@ -187,7 +187,7 @@ public:
of 'flag'. 0=deselected, 1=select, 2=toggle existing state.
*/
int select_row(int row, int flag=1); // select state for row: flag:0=off, 1=on, 2=toggle
// returns: 0=no change, 1=changed, -1=range err
// returns: 0=no change, 1=changed, -1=range err
/**
This convenience function changes the selection state

647
FL/Fl_Tree.H Normal file
View File

@ -0,0 +1,647 @@
#ifndef FL_TREE_H
#define FL_TREE_H
#include <FL/Fl.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Scrollbar.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Tree_Item.H>
#include <FL/Fl_Tree_Prefs.H>
//////////////////////
// FL/Fl_Tree.H
//////////////////////
//
// 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.
//
///
/// \file
/// \brief This file contains the definitions of the Fl_Tree class
///
/// \class Fl_Tree
///
/// \brief Tree widget.
///
/// \code
/// Fl_Tree // Top level widget
/// |--- Fl_Tree_Item // Items in the tree
/// |--- Fl_Tree_Prefs // Preferences for the tree
/// |--- Fl_Tree_Connector (enum) // Connection modes
/// |--- Fl_Tree_Select (enum) // Selection modes
/// |--- Fl_Tree_Sort (enum) // Sort behavior
/// \endcode
///
/// An expandable tree widget.
///
/// Similar to Fl_Browser, Fl_Tree is browser of Fl_Tree_Item's, which can be
/// in a parented hierarchy. Subtrees can be expanded or closed. Items can be
/// added, deleted, inserted, sorted and re-ordered.
///
/// The tree items may also contain other FLTK widgets, like buttons, input fields,
/// or even "custom" widgets.
///
/// The simple way to define a tree:
/// \code
/// Fl_Tree tree(X,Y,W,H);
/// tree.begin();
/// tree.add("Flintstones/Fred");
/// tree.add("Flintstones/Wilma");
/// tree.add("Flintstones/Pebbles");
/// tree.add("Simpsons/Homer");
/// tree.add("Simpsons/Marge");
/// tree.add("Simpsons/Bart");
/// tree.add("Simpsons/Lisa");
/// tree.end();
/// \endcode
///
/// Items can be added with Fl_Tree::add(),
/// removed with Fl_Tree::remove(),
/// inserted with Fl_Tree::insert_above(),
/// selected/deselected with Fl_Tree::select() and Fl_Tree::deselect().
/// Items can be swapped with Fl_Tree_Item::swap_children(), sorting control via
/// Fl_Tree::sortorder().
///
/// The tree can have different selection behaviors controlled by Fl_Tree::selectmode().
///
/// FLTK and custom FLTK widgets can be assigned to tree items via Fl_Tree_Item::widget().
///
/// Parent nodes can be open/closed with open() and close(), icons can be assigned
/// or redefined with some or all items via
/// Fl_Tree_Item::openicon(),
/// Fl_Tree_Item::closeicon(),
/// Fl_Tree_Item::usericon().
///
/// Various default preferences can be manipulated vi Fl_Tree_Prefs, including
/// colors, margins, connection lines.
///
/// \image html tree-elements.png
///
class Fl_Tree : public Fl_Group {
Fl_Tree_Item *_root; // can be null!
Fl_Tree_Item *_item_clicked;
Fl_Tree_Prefs _prefs; // all the tree's settings
Fl_Scrollbar *_vscroll;
protected:
/// Find the item that was clicked.
/// You probably want to use item_clicked() instead, which is fast.
///
/// This method walks the entire tree looking for the first item that is
/// under the mouse (ie. at Fl::event_x()/Fl:event_y().
///
/// Use this method /only/ if you've subclassed Fl_Tree, and are receiving
/// events before Fl_Tree has been able to process and update item_clicked().
///
/// \returns the item clicked, or 0 if no item was under the current event.
///
const Fl_Tree_Item *find_clicked() const {
if ( ! _root ) return(0);
return(_root->find_clicked(_prefs));
}
/// Set the item that was last clicked.
/// Should only be used by subclasses needing to change this value.
/// Normally Fl_Tree manages this value.
///
void item_clicked(Fl_Tree_Item* val) {
_item_clicked = val;
}
public:
Fl_Tree(int X, int Y, int W, int H, const char *L=0);
~Fl_Tree();
int handle(int e);
void draw();
///////////////////////
// root methods
///////////////////////
/// Set the label for the root item.
///
/// Makes an internally managed copy of 'new_label'.
///
void root_label(const char *new_label) {
if ( ! _root ) return;
_root->label(new_label);
}
/// Returns the root item.
Fl_Tree_Item* root() {
return(_root);
}
////////////////////////////////
// Item creation/removal methods
////////////////////////////////
Fl_Tree_Item *add(const char *path);
Fl_Tree_Item *insert_above(Fl_Tree_Item *above, const char *name);
/// Remove the specified 'item' from the tree.
/// If it has children, all those are removed too.
/// \returns 0 if done, -1 if 'item' not found.
///
int remove(Fl_Tree_Item *item) {
if ( !item ) return(0);
if ( item == _root ) {
clear();
} else {
Fl_Tree_Item *parent = item->parent(); // find item's parent
if ( ! parent ) return(-1);
parent->remove_child(item); // remove child + children
}
return(0);
}
/// Clear all children from the tree.
/// The tree will be left completely empty.
///
void clear() {
if ( ! _root ) return;
_root->clear_children();
delete _root; _root = 0;
}
/// Clear all the children of a particular node in the tree.
void clear_children(Fl_Tree_Item *item) {
if ( item->has_children() ) {
item->clear_children();
redraw(); // redraw only if there were children to clear
}
}
////////////////////////
// Item lookup methods
////////////////////////
Fl_Tree_Item *find_item(const char *path);
const Fl_Tree_Item *find_item(const char *path) const;
/// Return the parent for specified 'item'.
///
/// \returns item's parent, or 0 if none (root).
///
Fl_Tree_Item *parent(Fl_Tree_Item *item) {
return(item->parent());
}
/// Return the item that was last clicked.
///
/// Valid only from within an Fl_Tree::callback().
///
/// \returns the item clicked, or 0 if none.
///
Fl_Tree_Item *item_clicked() {
return(_item_clicked);
}
/// Returns the first item in the tree.
///
/// Use this to walk the tree in the forward direction, eg:
/// \code
/// for ( Fl_Tree_Item *item = tree->first(); item; item = item->next() ) {
/// printf("Item: %s\n", item->label());
/// }
/// \endcode
///
/// \returns first item in tree, or 0 if none (tree empty).
///
Fl_Tree_Item *first() {
return(_root); // first item always root
}
/// Returns the last item in the tree.
///
/// Use this to walk the tree in reverse, eg:
///
/// \code
/// for ( Fl_Tree_Item *item = tree->last(); item; item = item->prev() ) {
/// printf("Item: %s\n", item->label());
/// }
/// \endcode
///
/// \returns last item in the tree, or 0 if none (tree empty).
///
Fl_Tree_Item *last() {
if ( ! _root ) return(0);
Fl_Tree_Item *item = _root;
while ( item->has_children() ) {
item = item->child(item->children()-1);
}
return(item);
}
//////////////////////////
// Item open/close methods
//////////////////////////
/// Open the specified 'item'.
/// This causes the item's children (if any) to be shown.
/// Handles redrawing if anything was actually changed.
///
void open(Fl_Tree_Item *item) {
if ( ! item->is_open() ) {
item->open();
redraw();
}
}
/// Opens the item specified by a 'menu item' style pathname (eg: "Parent/child/item").
/// This causes the item's children (if any) to be shown.
/// Handles redrawing if anything was actually changed.
///
/// \returns
/// - 0 : OK
/// - -1 : item was not found
///
int open(const char *path) {
Fl_Tree_Item *item = find_item(path);
if ( item ) {
open(item);
return(0);
}
return(-1);
}
/// Closes the 'item'.
/// Handles redrawing if anything was actually changed.
///
void close(Fl_Tree_Item *item) {
if ( ! item->is_close() ) {
item->close();
redraw();
}
}
/// Closes the item specified by 'path', eg: "Parent/child/item".
///
/// Handles redrawing if anything was actually changed.
///
/// \returns
/// - 0 -- OK
/// - -1 -- item was not found
///
int close(const char *path) {
Fl_Tree_Item *item = find_item(path);
if ( item ) {
close(item);
return(0);
}
return(-1);
}
/// See if item is open.
///
/// Items that are 'open' are themselves not necessarily visible;
/// one of the item's parents might be closed.
///
/// \returns
/// - 1 : item is open
/// - 0 : item is closed
///
int is_open(Fl_Tree_Item *item) const {
return(item->is_open()?1:0);
}
/// See if item specified by 'path' (eg: "Parent/child/item") is open.
///
/// Items that are 'open' are themselves not necessarily visible;
/// one of the item's parents might be closed.
///
/// \returns
/// - 1 : item is open
/// - 0 : item is closed
/// - -1 : item was not found
///
int is_open(const char *path) const {
const Fl_Tree_Item *item = find_item(path);
if ( item ) return(item->is_open()?1:0);
return(-1);
}
/// See if item is closed.
/// \returns
/// - 1 : item is open
/// - 0 : item is closed
///
int is_close(Fl_Tree_Item *item) const {
return(item->is_close());
}
/// See if item specified by 'path' (eg: "Parent/child/item") is closed.
///
/// \returns
/// - 1 : item is closed
/// - 0 : item is open
/// - -1 : item was not found
///
int is_close(const char *path) const {
const Fl_Tree_Item *item = find_item(path);
if ( item ) return(item->is_close()?1:0);
return(-1);
}
/////////////////////////
// Item selection methods
/////////////////////////
/// Select the specified item. Use 'deselect()' to de-select it.
/// Handles redrawing if anything was actually changed.
///
void select(Fl_Tree_Item *item) {
if ( ! item->is_selected() ) {
item->select();
redraw();
}
}
/// Select an item specified by 'path' (eg: "Parent/child/item").
/// Handles redrawing if anything was actually changed.
///
/// \returns
/// - 0 : OK
/// - -1 : item was not found
///
int select(const char *path) {
Fl_Tree_Item *item = find_item(path);
if ( item ) {
select(item);
return(0);
}
return(-1);
}
/// Toggle item's select state.
/// Handles redrawing.
///
void select_toggle(Fl_Tree_Item *item) {
item->select_toggle();
redraw();
}
/// De-select the specified item.
/// Handles redrawing if anything was actually changed.
///
void deselect(Fl_Tree_Item *item) {
if ( item->is_selected() ) {
item->deselect();
redraw();
}
}
/// De-select an item specified by 'path' (eg: "Parent/child/item").
/// Handles redrawing if anything was actually changed.
///
/// \returns
/// - 0 : OK
/// - -1 : item was not found
///
int deselect(const char *path) {
Fl_Tree_Item *item = find_item(path);
if ( item ) {
deselect(item);
return(0);
}
return(-1);
}
int deselect_all(Fl_Tree_Item *item=0);
int select_only(Fl_Tree_Item *selitem);
/// See if the specified item is selected.
/// \return
/// - 1 : item selected
/// - 0 : item deselected
///
int is_selected(Fl_Tree_Item *item) const {
return(item->is_selected()?1:0);
}
/// See if item specified by 'path' (eg: "Parent/child/item") is selected.
///
/// \returns
/// - 1 : item selected
/// - 0 : item deselected
/// - -1 : item was not found
///
int is_selected(const char *path) {
Fl_Tree_Item *item = find_item(path);
if ( item ) return(is_selected(item));
return(-1);
}
/// Print the tree as 'ascii art' to stdout.
/// Used mainly for debugging.
///
void show_self() {
if ( ! _root ) return;
_root->show_self();
}
/////////////////////////////////
// Item attribute related methods
/////////////////////////////////
/// Get the default label fontsize used for creating new items.
int labelsize() const {
return(_prefs.labelsize());
}
/// Set the default label font size used for creating new items.
/// To change the font size on a per-item basis, use Fl_Tree_Item::labelsize(int)
///
void labelsize(int val) {
_prefs.labelsize(val);
}
/// Get the default font face used for item's labels when new items are created.
///
/// Don't use this if you want to change an existing label() size; use
/// item->labelfont() instead.
///
int labelfont() const {
return(_prefs.labelfont());
}
/// Set the default font face used for item's labels when new items are created.
///
/// Don't use this if you want to change an existing label() size; use
/// item->labelfont(int) instead.
///
void labelfont(int val) {
_prefs.labelfont(val);
}
/// Get the amount of white space (in pixels) that should appear
/// between the widget's left border and the tree's contents.
///
int marginleft() const {
return(_prefs.marginleft());
}
/// Set the amount of white space (in pixels) that should appear
/// between the widget's left border and the left side of the tree's contents.
///
void marginleft(int val) {
_prefs.marginleft(val);
redraw();
}
/// Get the amount of white space (in pixels) that should appear
/// between the widget's top border and the top of the tree's contents.
///
int margintop() const {
return(_prefs.margintop());
}
/// Sets the amount of white space (in pixels) that should appear
/// between the widget's top border and the top of the tree's contents.
///
void margintop(int val) {
_prefs.margintop(val);
redraw();
}
/// Get the amount of white space (in pixels) that should appear
/// below an open child tree's contents.
///
int openchild_marginbottom() const {
return(_prefs.openchild_marginbottom());
}
/// Set the amount of white space (in pixels) that should appear
/// below an open child tree's contents.
///
void openchild_marginbottom(int val) {
_prefs.openchild_marginbottom(val);
redraw();
}
/// Gets the width of the horizontal connection lines (in pixels)
/// that appear to the left of each tree item's label.
///
int connectorwidth() const {
return(_prefs.connectorwidth());
}
/// Sets the width of the horizontal connection lines (in pixels)
/// that appear to the left of each tree item's label.
///
void connectorwidth(int val) {
_prefs.connectorwidth(val);
redraw();
}
/// Returns the Fl_Pixmap being used as the default user icon for newly created items.
/// Returns zero if no icon has been set, which is the default.
///
Fl_Pixmap *usericon() const {
return(_prefs.usericon());
}
/// Sets the Fl_Pixmap to be used as the default user icon for all
/// newly created items.
///
/// If you want to specify user icons on a per-item basis,
/// use Fl_Tree_Item::usericon() instead.
///
/// \param[in] val -- The new pixmap to be used, or
/// zero to disable user icons.
///
void usericon(Fl_Pixmap *val) {
_prefs.usericon(val);
redraw();
}
/// Returns the icon to be used as the 'open' icon.
/// If none was set, the internal default is returned,
/// a simple '[+]' icon.
///
Fl_Pixmap *openicon() const {
return(_prefs.openicon());
}
/// Sets the icon to be used as the 'open' icon.
/// This overrides the built in default '[+]' icon.
///
/// \param[in] val -- The new pixmap, or zero to use the default [+] icon.
///
void openicon(Fl_Pixmap *val) {
_prefs.openicon(val);
redraw();
}
/// Returns the icon to be used as the 'close' icon.
/// If none was set, the internal default is returned,
/// a simple '[-]' icon.
///
Fl_Pixmap *closeicon() const {
return(_prefs.closeicon());
}
/// 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 closeicon(Fl_Pixmap *val) {
_prefs.closeicon(val);
redraw();
}
/// Returns 1 if the collapse icon is enabled, 0 if not.
int showcollapse() const {
return(_prefs.showcollapse());
}
/// Set if we should show the collapse icon or not.
/// If collapse icons are disabled, the user will not be able
/// to interactively collapse items in the tree, unless the application
/// provides some other means via open() and close().
///
/// \param[in] val 1: shows collapse icons (default),\n
/// 0: hides collapse icons.
///
void showcollapse(int val) {
_prefs.showcollapse(val);
redraw();
}
/// Returns 1 if the root item is to be shown, or 0 if not.
int showroot() const {
return(_prefs.showroot());
}
/// Set if the root item should be shown or not.
/// \param[in] val 1 -- show the root item (default)\n
/// 0 -- hide the root item.
///
void showroot(int val) {
_prefs.showroot(val);
redraw();
}
/// Returns the line drawing style for inter-connecting items.
Fl_Tree_Connector connectorstyle() const {
return(_prefs.connectorstyle());
}
/// Sets the line drawing style for inter-connecting items.
void connectorstyle(Fl_Tree_Connector val) {
_prefs.connectorstyle(val);
redraw();
}
/// Set the default sort order used when items are added to the tree.
/// See Fl_Tree_Sort for possible values.
///
Fl_Tree_Sort sortorder() const {
return(_prefs.sortorder());
}
/// Gets the sort order used to add items to the tree.
void sortorder(Fl_Tree_Sort val) {
_prefs.sortorder(val);
// no redraw().. only affects new add()itions
}
/// Sets the style of box used to draw selected items.
/// This is an fltk Fl_Boxtype.
/// The default is influenced by FLTK's current Fl::scheme()
///
Fl_Boxtype selectbox() const {
return(_prefs.selectbox());
}
/// Gets the style of box used to draw selected items.
/// This is an fltk Fl_Boxtype.
/// The default is influenced by FLTK's current Fl::scheme()
///
void selectbox(Fl_Boxtype val) {
_prefs.selectbox(val);
redraw();
}
/// Gets the tree's current selection mode.
Fl_Tree_Select selectmode() const {
return(_prefs.selectmode());
}
/// Sets the tree's selection mode.
void selectmode(Fl_Tree_Select val) {
_prefs.selectmode(val);
}
};
#endif /*FL_TREE_H*/

291
FL/Fl_Tree_Item.H Normal file
View File

@ -0,0 +1,291 @@
#ifndef FL_TREE_ITEM_H
#define FL_TREE_ITEM_H
#include <FL/Fl.H>
#include <FL/Fl_Widget.H>
#include <FL/Fl_Pixmap.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Tree_Item_Array.H>
#include <FL/Fl_Tree_Prefs.H>
//////////////////////
// FL/Fl_Tree_Item.H
//////////////////////
//
// 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.
//
///
/// \file
/// \brief This file contains the definitions for Fl_Tree_Item
///
/// \brief Tree item
///
/// This class is a single tree item, and manages all of the item's attributes.
/// Fl_Tree_Item is used by Fl_Tree, which is comprised of many instances of Fl_Tree_Item.
///
/// Fl_Tree_Item is hierarchical; it dynamically manages an Fl_Tree_Item_Array of children
/// that are themselves instances of Fl_Tree_Item. Each item can have zero or more children.
/// When an item has children, close() and open() can be used to hide or show them.
///
/// Items have their own attributes; font size, face, color.
/// Items maintain their own hierarchy of children.
///
/// When you make changes to items, you'll need to tell the tree to redraw()
/// for the changes to show up.
///
class Fl_Tree_Item {
const char *_label; // label (memory managed)
int _labelfont; // label's font face
int _labelsize; // label's font size
Fl_Color _labelfgcolor; // label's fg color
Fl_Color _labelbgcolor; // label's bg color
char _open; // item is open?
char _visible; // item is visible?
char _active; // item activated?
char _selected; // item selected?
int _xywh[4]; // xywh of this widget (if visible)
int _collapse_xywh[4]; // xywh of collapse icon (if any)
int _label_xywh[4]; // xywh of label
Fl_Widget *_widget; // item's label widget (optional)
Fl_Pixmap *_usericon; // item's user-specific icon (optional)
Fl_Tree_Item_Array _children; // array of child items
Fl_Tree_Item *_parent; // parent item (=0 if root)
protected:
void show_widgets();
void hide_widgets();
void draw_vertical_connector(int x, int y1, int y2, const Fl_Tree_Prefs &prefs);
void draw_horizontal_connector(int x1, int x2, int y, const Fl_Tree_Prefs &prefs);
public:
Fl_Tree_Item(const Fl_Tree_Prefs &prefs); // CTOR
~Fl_Tree_Item(); // DTOR
Fl_Tree_Item(const Fl_Tree_Item *o); // COPY CTOR
void draw(int X, int &Y, int W, Fl_Widget *tree, const Fl_Tree_Prefs &prefs, int lastchild=1);
void show_self(const char *indent = "") const;
void label(const char *val);
const char *label() const;
/// Set item's label font face.
void labelfont(int val) {
_labelfont = val;
}
/// Get item's label font face.
int labelfont() const {
return(_labelfont);
}
/// Set item's label font size.
void labelsize(int val) {
_labelsize = val;
}
/// Get item's label font size.
int labelsize() const {
return(_labelsize);
}
/// Set item's label foreground text color.
void labelfgcolor(Fl_Color val) {
_labelfgcolor = val;
}
/// Set item's label text color.
void labelcolor(Fl_Color val) {
_labelfgcolor = val;
}
/// Return item's label text color.
Fl_Color labelcolor() const {
return(_labelfgcolor);
}
/// Return item's label foreground text color.
Fl_Color labelfgcolor() const {
return(_labelfgcolor);
}
/// Set item's label background color.
void labelbgcolor(Fl_Color val) {
_labelbgcolor = val;
}
/// Return item's background text color.
Fl_Color labelbgcolor() const {
return(_labelbgcolor);
}
/// Assign an FLTK widget to this item.
void widget(Fl_Widget *val) {
_widget = val;
}
/// Return FLTK widget assigned to this item.
Fl_Widget *widget() const {
return(_widget);
}
/// Return the number of children this item has.
int children() const {
return(_children.total());
}
/// Return the child item for the given 'index'.
Fl_Tree_Item *child(int index) {
return(_children[index]);
}
/// Return the const child item for the given 'index'.
const Fl_Tree_Item *child(int t) const;
/// See if this item has children.
int has_children() const {
return(children());
}
int find_child(const char *name);
int find_child(Fl_Tree_Item *item);
int remove_child(Fl_Tree_Item *item);
int remove_child(const char *new_label);
void clear_children();
void swap_children(int ax, int bx);
int swap_children(Fl_Tree_Item *a, Fl_Tree_Item *b);
const Fl_Tree_Item *find_item(char **arr) const;
Fl_Tree_Item *find_item(char **arr);
//////////////////
// Adding items
//////////////////
Fl_Tree_Item *add(const Fl_Tree_Prefs &prefs, const char *new_label);
Fl_Tree_Item *add(const Fl_Tree_Prefs &prefs, char **arr);
Fl_Tree_Item *insert(const Fl_Tree_Prefs &prefs, const char *new_label, int pos=0);
Fl_Tree_Item *insert_above(const Fl_Tree_Prefs &prefs, const char *new_label);
int depth() const;
Fl_Tree_Item *prev();
Fl_Tree_Item *next();
/// Return the parent for this item.
Fl_Tree_Item *parent() {
return(_parent);
}
/// Return the const parent for this item.
const Fl_Tree_Item *parent() const {
return(_parent);
}
/// Set the parent for this item.
/// Should only be used by Fl_Tree's internals.
///
void parent(Fl_Tree_Item *val) {
_parent = val;
}
//////////////////
// State
//////////////////
void open();
void close();
/// See if the item is 'open'.
int is_open() const {
return(_open?1:0);
}
/// See if the item is 'closed'.
int is_close() const {
return(_open?0:1);
}
/// Toggle the item's open/closed state.
void open_toggle() {
_open?close():open();
}
/// Change the item's selection state to the optionally specified 'val'.
/// If 'val' is not specified, the item will be selected.
///
void select(int val=1) {
_selected = val;
}
/// Toggle the item's selection state.
void select_toggle() {
if ( is_selected() ) {
deselect(); // deselect if selected
} else {
select(); // select if deselected
}
}
/// Disable the item's selection state.
void deselect() {
_selected = 0;
}
/// Deselect self and all children
/// Returns count of how many items were in the 'selected' state,
/// ie. how many items were "changed".
///
int deselect_all() {
int count = 0;
if ( is_selected() ) {
deselect();
++count;
}
for ( int t=0; t<children(); t++ ) {
count += child(t)->deselect_all();
}
return(count);
}
/// See if the item is selected.
char is_selected() const {
return(_selected);
}
/// Change the item's activation state to the optionally specified 'val'.
///
/// When deactivated, the item will be 'grayed out'; the callback()
/// won't be invoked if the user clicks on the label. If the item
/// has a widget() associated with the item, its activation state
/// will be changed as well.
///
/// If 'val' is not specified, the item will be activated.
///
void activate(int val=1) {
_active = val;
if ( _widget && val != (int)_widget->active() ) {
if ( val ) {
_widget->activate();
} else {
_widget->deactivate();
}
_widget->redraw();
}
}
/// Deactivate the item; the callback() won't be invoked when clicked.
/// Same as activate(0)
///
void deactivate() {
activate(0);
}
/// See if the item is activated.
char is_activated() const {
return(_active);
}
/// See if the item is activated.
char is_active() const {
return(_active);
}
/// Set the user icon's pixmap. '0' will disable.
void usericon(Fl_Pixmap *val) {
_usericon = val;
}
/// Get the user icon. Returns '0' if disabled.
Fl_Pixmap *usericon() const {
return(_usericon);
}
//////////////////
// Events
//////////////////
const Fl_Tree_Item *find_clicked(const Fl_Tree_Prefs &prefs) const;
Fl_Tree_Item *find_clicked(const Fl_Tree_Prefs &prefs);
int event_on_collapse_icon(const Fl_Tree_Prefs &prefs) const;
int event_on_label(const Fl_Tree_Prefs &prefs) const;
/// Is this item the root of the tree?
int is_root() const {
return(_parent==0?1:0);
}
};
#endif /*FL_TREE_ITEM_H*/

80
FL/Fl_Tree_Item_Array.H Normal file
View File

@ -0,0 +1,80 @@
#ifndef _FL_TREE_ITEM_ARRAY_H
#define _FL_TREE_ITEM_ARRAY_H
class Fl_Tree_Item; // forward decl must *precede* first doxygen comment block
// or doxygen will not document our class..
//////////////////////
// FL/Fl_Tree_Item_Array.H
//////////////////////
//
// 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.
//
///
/// \file
/// \brief This file defines a class that manages an array of Fl_Tree_Item pointers.
///
/// \brief Manages an array of Fl_Tree_Item pointers.
///
/// Because FLTK 1.x.x. has mandated that templates and STL not be used,
/// we use this class to dynamically manage the arrays.
///
/// None of the methods do range checking on index values; the caller
/// must be sure that index values are within the range 0<index<total()
/// (unless otherwise noted).
///
class Fl_Tree_Item_Array {
Fl_Tree_Item **_items; // items array
int _total; // #items in array
int _size; // #items *allocated* for array
int _chunksize; // #items to enlarge mem allocation
void enlarge(int count);
public:
Fl_Tree_Item_Array(int new_chunksize = 10); // CTOR
~Fl_Tree_Item_Array(); // DTOR
Fl_Tree_Item_Array(const Fl_Tree_Item_Array *o); // COPY CTOR
/// Return the item and index \p i.
Fl_Tree_Item *operator[](int i) {
return(_items[i]);
}
/// Const version of operator[](int i)
const Fl_Tree_Item *operator[](int i) const {
return(_items[i]);
}
/// Return the total items in the array, or 0 if empty.
int total() const {
return(_total);
}
/// Swap the two items at index positions \p ax and \p bx.
void swap(int ax, int bx) {
Fl_Tree_Item *asave = _items[ax];
_items[ax] = _items[bx];
_items[bx] = asave;
}
void clear();
void add(Fl_Tree_Item *val);
void insert(int pos, Fl_Tree_Item *new_item);
void remove(int index);
int remove(Fl_Tree_Item *item);
};
#endif /*_FL_TREE_ITEM_ARRAY_H*/

353
FL/Fl_Tree_Prefs.H Normal file
View File

@ -0,0 +1,353 @@
#ifndef FL_TREE_PREFS_H
#define FL_TREE_PREFS_H
//////////////////////
// FL/Fl_Tree_Prefs.H
//////////////////////
//
// 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.
//
///
/// \file
/// \brief This file contains the definitions for Fl_Tree's preferences.
///
/// \code
/// Fl_Tree_Prefs
/// :
/// .....:.......
/// : :
/// Fl_Tree :
/// |_____ Fl_Tree_Item
///
/// \endcode
///
/// \class Fl_Tree_Prefs
/// \brief Tree widget's preferences.
/// \enum Fl_Tree_Sort
/// Sort order options for items added to the tree
///
enum Fl_Tree_Sort {
FL_TREE_SORT_NONE=0, ///< No sorting; items are added in the order defined (default).
FL_TREE_SORT_ASCENDING=1, ///< Add items in ascending sort order.
FL_TREE_SORT_DESCENDING=2 ///< Add items in descending sort order.
};
/// \enum Fl_Tree_Connector
/// Defines the style of connection lines between items.
///
enum Fl_Tree_Connector {
FL_TREE_CONNECTOR_NONE=0, ///< Use no lines connecting items
FL_TREE_CONNECTOR_DOTTED=1, ///< Use dotted lines connecting items (default)
FL_TREE_CONNECTOR_SOLID=2 ///< Use solid lines connecting items
};
/// \enum Fl_Tree_Select
/// Tree selection style.
///
enum Fl_Tree_Select {
FL_TREE_SELECT_NONE=0, ///< Nothing selected when items are clicked
FL_TREE_SELECT_SINGLE, ///< Single item selected when item is clicked (default)
FL_TREE_SELECT_MULTI ///< Multiple items can be selected by clicking with
///< SHIFT or CTRL or mouse drags.
};
/// \class Fl_Tree_Prefs
///
/// \brief Fl_Tree's Preferences class.
///
/// This class manages the Fl_Tree's defaults.
/// You should probably be using the methods in Fl_Tree
/// instead of trying to accessing tree's preferences settings directly.
///
class Fl_Tree_Prefs {
int _labelfont; // label's font face
int _labelsize; // label's font size
int _margintop; // --
int _marginleft; // |- tree's margins
//int _marginright; // |
//int _marginbottom; // --
int _openchild_marginbottom; // extra space below an open child tree
int _usericonmarginleft; // space to left of user icon (if any)
int _labelmarginleft; // space to left of label
int _connectorwidth; // connector width (right of open/close icon)
int _linespacing; // vertical space between lines
// Colors
Fl_Color _fgcolor; // label's foreground color
Fl_Color _bgcolor; // background color
Fl_Color _selectcolor; // selection color
Fl_Color _inactivecolor; // inactive color
Fl_Color _connectorcolor; // connector dotted line color
Fl_Tree_Connector _connectorstyle; // connector line style
Fl_Pixmap *_openpixmap; // the 'open' icon [+]
Fl_Pixmap *_closepixmap; // the 'close' icon [-]
Fl_Pixmap *_userpixmap; // user's own icon
char _showcollapse; // 1=show collapse icons, 0=don't
char _showroot; // show the root item as part of the tree
Fl_Tree_Sort _sortorder; // none, ascening, descending, etc.
Fl_Boxtype _selectbox; // selection box type
Fl_Tree_Select _selectmode; // selection mode
public:
Fl_Tree_Prefs();
////////////////////////////
// Labels
////////////////////////////
/// Return the label's font.
inline int labelfont() const {
return(_labelfont);
}
/// Set the label's font to \p val.
inline void labelfont(int val) {
_labelfont = val;
}
/// Return the label's size in pixels.
inline int labelsize() const {
return(_labelsize);
}
/// Set the label's size in pixels to \p val.
inline void labelsize(int val) {
_labelsize = val;
}
////////////////////////////
// Margins
////////////////////////////
/// Get the left margin's value in pixels
inline int marginleft() const {
return(_marginleft);
}
/// Set the left margin's value in pixels
inline void marginleft(int val) {
_marginleft = val;
}
/// Get the top margin's value in pixels
inline int margintop() const {
return(_margintop);
}
/// Set the top margin's value in pixels
inline void margintop(int val) {
_margintop = val;
}
/// Get the margin below an open child in pixels
inline int openchild_marginbottom() const {
return(_openchild_marginbottom);
}
/// Set the margin below an open child in pixels
inline void openchild_marginbottom(int val) {
_openchild_marginbottom = val;
}
/****** NOT IMPLEMENTED
inline int marginright() const {
return(_marginright);
}
inline void marginright(int val) {
_marginright = val;
}
inline int marginbottom() const {
return(_marginbottom);
}
inline void marginbottom(int val) {
_marginbottom = val;
}
*******/
/// Get the user icon's left margin value in pixels
inline int usericonmarginleft() const {
return(_usericonmarginleft);
}
/// Set the user icon's left margin value in pixels
inline void usericonmarginleft(int val) {
_usericonmarginleft = val;
}
/// Get the label's left margin value in pixels
inline int labelmarginleft() const {
return(_labelmarginleft);
}
/// Set the label's left margin value in pixels
inline void labelmarginleft(int val) {
_labelmarginleft = val;
}
/// Get the line spacing value in pixels
inline int linespacing() const {
return(_linespacing);
}
/// Set the line spacing value in pixels
inline void linespacing(int val) {
_linespacing = val;
}
////////////////////////////
// Colors and Styles
////////////////////////////
/// Get the default label foreground color
inline Fl_Color fgcolor() const {
return(_fgcolor);
}
/// Set the default label foreground color
inline void fgcolor(Fl_Color val) {
_fgcolor = val;
}
/// Get the default label background color
inline Fl_Color bgcolor() const {
return(_bgcolor);
}
/// Set the default label background color
inline void bgcolor(Fl_Color val) {
_bgcolor = val;
}
/// Get the default selection color
inline Fl_Color selectcolor() const {
return(_selectcolor);
}
/// Set the default selection color
inline void selectcolor(Fl_Color val) {
_selectcolor = val;
}
/// Get the default inactive color
inline Fl_Color inactivecolor() const {
return(_inactivecolor);
}
/// Set the default inactive color
inline void inactivecolor(Fl_Color val) {
_inactivecolor = val;
}
/// Get the connector color; the color used for tree connection lines
inline Fl_Color connectorcolor() const {
return(_connectorcolor);
}
/// Set the connector color; the color used for tree connection lines
inline void connectorcolor(Fl_Color val) {
_connectorcolor = val;
}
/// Get the connector style
inline Fl_Tree_Connector connectorstyle() const {
return(_connectorstyle);
}
/// Set the connector style
inline void connectorstyle(Fl_Tree_Connector val) {
_connectorstyle = val;
}
/// Set the connector style [integer].
inline void connectorstyle(int val) {
_connectorstyle = Fl_Tree_Connector(val);
}
/// Get the tree connection line's width
inline int connectorwidth() const {
return(_connectorwidth);
}
/// Set the tree connection line's width
inline void connectorwidth(int val) {
_connectorwidth = val;
}
////////////////////////////
// Icons
////////////////////////////
/// Get the current default 'open' icon.
/// Returns the Fl_Pixmap* of the icon, or 0 if none.
///
inline Fl_Pixmap *openicon() const {
return(_openpixmap);
}
void openicon(Fl_Pixmap *val);
/// Gets the default 'close' icon
/// Returns the Fl_Pixmap* of the icon, or 0 if none.
///
inline Fl_Pixmap *closeicon() const {
return(_closepixmap);
}
void closeicon(Fl_Pixmap *val);
/// Gets the default 'user icon' (default is 0)
inline Fl_Pixmap *usericon() const {
return(_userpixmap);
}
/// Sets the default 'user icon'
/// Returns the Fl_Pixmap* of the icon, or 0 if none (default).
///
inline void usericon(Fl_Pixmap *val) {
_userpixmap = val;
}
////////////////////////////
// Options
////////////////////////////
/// Returns 1 if the collapse icon is enabled, 0 if not.
inline char showcollapse() const {
return(_showcollapse);
}
/// Set if we should show the collapse icon or not.
/// If collapse icons are disabled, the user will not be able
/// to interactively collapse items in the tree, unless the application
/// provides some other means via open() and close().
///
/// \param[in] val 1: shows collapse icons (default),\n
/// 0: hides collapse icons.
///
inline void showcollapse(int val) {
_showcollapse = val;
}
/// Get the default sort order value
inline Fl_Tree_Sort sortorder() const {
return(_sortorder);
}
/// Set the default sort order value.
/// Defines the order new items appear when add()ed to the tree.
/// See Fl_Tree_Sort for possible values.
///
inline void sortorder(Fl_Tree_Sort val) {
_sortorder = val;
}
/// Get the default selection box's box drawing style as an Fl_Boxtype.
inline Fl_Boxtype selectbox() const {
return(_selectbox);
}
/// Set the default selection box's box drawing style to \p val.
inline void selectbox(Fl_Boxtype val) {
_selectbox = val;
}
/// Returns 1 if the root item is to be shown, or 0 if not.
inline int showroot() const {
return(int(_showroot));
}
/// Set if the root item should be shown or not.
/// \param[in] val 1 -- show the root item (default)\n
/// 0 -- hide the root item.
///
inline void showroot(int val) {
_showroot = char(val);
}
/// Get the selection mode used for the tree
inline Fl_Tree_Select selectmode() const {
return(_selectmode);
}
/// Set the selection mode used for the tree to \p val.
/// This affects how items in the tree are selected
/// when clicked on and dragged over by the mouse.
/// See Fl_Tree_Select for possible values.
///
inline void selectmode(Fl_Tree_Select val) {
_selectmode = val;
}
};
#endif /*FL_TREE_PREFS_H*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@ -1,294 +1,356 @@
# DO NOT DELETE THIS LINE -- make depend depends on it.
CodeEditor.o: CodeEditor.cxx CodeEditor.h ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.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_Function_Type.o: Fl_Function_Type.cxx ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H ../FL/Fl_Preferences.H ../FL/Fl_File_Chooser.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_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_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H \
Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H \
../FL/fl_show_input.H ../FL/fl_ask.H ../src/flstring.h \
../FL/Fl_Export.H ../config.h function_panel.h ../FL/Fl_Light_Button.H \
CodeEditor.h ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.H \
../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Text_Buffer.H \
comments.h
Fl_Group_Type.o: Fl_Group_Type.cxx ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_message.H \
../FL/fl_ask.H Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H \
../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H ../src/flstring.h \
../FL/Fl_Export.H ../config.h ../FL/Fl_Scroll.H ../FL/Fl_Scrollbar.H \
../FL/Fl_Slider.H ../FL/Fl_Valuator.H
Fl_Menu_Type.o: Fl_Menu_Type.cxx ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H \
../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H \
Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H \
../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H \
../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H \
alignment_panel.h ../FL/Fl_Text_Buffer.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_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H \
../FL/Fl_Button.H ../FL/Fl_Box.H ../FL/Fl_Light_Button.H \
../FL/Fl_Button.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H \
../FL/Fl_Spinner.H ../FL/Enumerations.H ../FL/Fl_Repeat_Button.H \
../FL/Fl.H ../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H \
../FL/fl_message.H ../FL/fl_ask.H ../src/flstring.h ../FL/Fl_Export.H \
../config.h ../FL/Fl_Output.H ../FL/Fl_Input.H Shortcut_Button.h
Fl_Type.o: Fl_Type.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.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 ../src/flstring.h ../FL/Fl_Export.H ../config.h \
Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Image.H Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/Fl_Tabs.H \
../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h ../FL/Fl_Pixmap.H \
pixmaps/lock.xpm pixmaps/flWindow.xpm pixmaps/flButton.xpm \
pixmaps/flCheckButton.xpm pixmaps/flRoundButton.xpm pixmaps/flBox.xpm \
pixmaps/flGroup.xpm pixmaps/flFunction.xpm pixmaps/flCode.xpm \
pixmaps/flCodeBlock.xpm pixmaps/flComment.xpm pixmaps/flDeclaration.xpm \
pixmaps/flDeclarationBlock.xpm pixmaps/flClass.xpm pixmaps/flTabs.xpm \
pixmaps/flInput.xpm pixmaps/flChoice.xpm pixmaps/flMenuitem.xpm \
pixmaps/flMenubar.xpm pixmaps/flSubmenu.xpm pixmaps/flScroll.xpm \
pixmaps/flTile.xpm pixmaps/flWizard.xpm pixmaps/flPack.xpm \
pixmaps/flReturnButton.xpm pixmaps/flLightButton.xpm \
pixmaps/flRepeatButton.xpm pixmaps/flMenuButton.xpm \
pixmaps/flOutput.xpm pixmaps/flTextDisplay.xpm pixmaps/flTextEdit.xpm \
pixmaps/flFileInput.xpm pixmaps/flBrowser.xpm \
pixmaps/flCheckBrowser.xpm pixmaps/flFileBrowser.xpm \
pixmaps/flClock.xpm pixmaps/flHelp.xpm pixmaps/flProgress.xpm \
pixmaps/flSlider.xpm pixmaps/flScrollBar.xpm pixmaps/flValueSlider.xpm \
pixmaps/flAdjuster.xpm pixmaps/flCounter.xpm pixmaps/flDial.xpm \
pixmaps/flRoller.xpm pixmaps/flValueInput.xpm pixmaps/flValueOutput.xpm \
pixmaps/flSpinner.xpm pixmaps/flWidgetClass.xpm
Fl_Widget_Type.o: Fl_Widget_Type.cxx ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H \
../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H \
alignment_panel.h ../FL/Fl_Text_Buffer.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_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H \
../FL/Fl_Button.H ../FL/Fl_Box.H ../FL/Fl_Light_Button.H \
../FL/Fl_Button.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H \
../FL/Fl_Spinner.H ../FL/Enumerations.H ../FL/Fl_Repeat_Button.H \
../FL/Fl.H ../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H \
../FL/fl_message.H ../FL/fl_ask.H ../FL/Fl_Slider.H ../src/flstring.h \
../FL/Fl_Export.H ../config.h widget_panel.h ../FL/Fl_Value_Input.H \
../FL/Fl_Input.H Shortcut_Button.h CodeEditor.h ../FL/Fl_Text_Editor.H \
../FL/Fl_Text_Display.H ../FL/fl_show_colormap.H
Fl_Window_Type.o: Fl_Window_Type.cxx ../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_message.H \
../FL/fl_ask.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Image.H ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H \
../FL/Fl_Button.H Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H \
../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H \
../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h alignment_panel.h \
../FL/Fl_Text_Buffer.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_Double_Window.H ../FL/Fl_Preferences.H \
../FL/Fl_Tooltip.H ../FL/Fl_Button.H ../FL/Fl_Box.H \
../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H ../FL/Fl_Spinner.H \
../FL/Enumerations.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H \
../FL/Fl_Return_Button.H widget_panel.h ../FL/Fl_Value_Input.H \
../FL/Fl_Input.H Shortcut_Button.h CodeEditor.h ../FL/Fl_Text_Editor.H \
../FL/Fl_Text_Display.H ../src/flstring.h ../FL/Fl_Export.H ../config.h
Fluid_Image.o: Fluid_Image.cxx ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H ../FL/Fl_Widget.H Fl_Type.h ../FL/Fl_Menu.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H \
../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H \
../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H \
../src/flstring.h ../FL/Fl_Export.H ../config.h ../FL/filename.H \
../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.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_Return_Button.H ../FL/fl_ask.H
about_panel.o: about_panel.cxx about_panel.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_Box.H \
../FL/Fl_Button.H ../FL/Fl_Return_Button.H ../FL/Fl_Button.H \
../FL/Fl_Pixmap.H ../FL/Fl_Image.H
align_widget.o: align_widget.cxx ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H \
Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Image.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H \
../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Menu_Bar.H undo.h
alignment_panel.o: alignment_panel.cxx alignment_panel.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_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H \
../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H \
../FL/Fl_Box.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Light_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_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Spinner.H \
../FL/Enumerations.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H \
../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H
code.o: code.cxx ../src/flstring.h ../FL/Fl_Export.H ../config.h \
../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Type.h \
../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H \
../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H \
../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H \
alignment_panel.h ../FL/Fl_Text_Buffer.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_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H \
../FL/Fl_Button.H ../FL/Fl_Box.H ../FL/Fl_Light_Button.H \
../FL/Fl_Button.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H \
../FL/Fl_Spinner.H ../FL/Enumerations.H ../FL/Fl_Repeat_Button.H \
../FL/Fl.H ../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H \
../FL/filename.H
factory.o: factory.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Image.H ../FL/Fl_Pixmap.H ../src/flstring.h ../FL/Fl_Export.H \
../config.h undo.h Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H \
../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Box.H ../FL/Fl_Button.H \
../FL/Fl_Return_Button.H ../FL/Fl_Button.H ../FL/Fl_Repeat_Button.H \
../FL/Fl.H ../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H \
../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Browser.H \
../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Check_Browser.H ../FL/Fl_File_Browser.H \
../FL/Fl_Browser.H ../FL/Fl_File_Icon.H ../FL/filename.H \
../FL/Fl_Counter.H ../FL/Fl_Spinner.H ../FL/Enumerations.H \
../FL/Fl_File_Input.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H \
../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H \
../FL/Fl_Clock.H ../FL/Fl_Help_View.H ../FL/Fl_Shared_Image.H \
../FL/Fl_Progress.H ../FL/Fl_Adjuster.H ../FL/Fl_Dial.H \
../FL/Fl_Roller.H ../FL/Fl_Scrollbar.H ../FL/Fl_Output.H \
../FL/Fl_Input.H ../FL/Fl_Value_Input.H ../FL/Fl_Value_Output.H \
../FL/Fl_Value_Slider.H ../FL/Fl_Multi_Label.H
file.o: file.cxx ../src/flstring.h ../FL/Fl_Export.H ../config.h \
alignment_panel.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_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Preferences.H \
../FL/Fl_Tooltip.H ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Box.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Light_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_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Spinner.H \
../FL/Enumerations.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H \
../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H ../FL/fl_message.H \
../FL/fl_ask.H Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Menu.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Pack.H \
../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
fluid.o: fluid.cxx ../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_Box.H ../FL/Fl_Button.H ../FL/Fl_File_Icon.H \
../FL/Fl.H ../FL/Fl_Help_Dialog.H ../FL/Fl_Group.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Help_View.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_Hold_Browser.H \
../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Menu_Bar.H \
../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/fl_ask.H ../FL/fl_draw.H \
../FL/Fl_File_Chooser.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H \
../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H \
../FL/Fl_File_Icon.H ../FL/filename.H ../FL/Fl_Check_Button.H \
../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_File_Input.H \
../FL/Fl_Return_Button.H ../FL/fl_message.H ../FL/fl_ask.H \
../FL/filename.H ../src/flstring.h ../FL/Fl_Export.H ../config.h \
alignment_panel.h ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H \
../FL/Fl_Text_Buffer.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H \
../FL/Fl_Tabs.H ../FL/Fl_Light_Button.H ../FL/Fl_Spinner.H \
../FL/Enumerations.H ../FL/Fl_Repeat_Button.H ../FL/Fl_Round_Button.H \
function_panel.h CodeEditor.h ../FL/Fl_Text_Editor.H \
../FL/Fl_Text_Display.H ../FL/Fl_Window.H template_panel.h \
../FL/Fl_Browser.H print_panel.cxx print_panel.h ../FL/Fl_Progress.H \
../FL/Fl_Pixmap.H about_panel.h undo.h Fl_Type.h ../FL/Fl_Menu.H \
Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H \
../FL/Fl_Menu_.H ../FL/Fl_Input_Choice.H
function_panel.o: function_panel.cxx function_panel.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_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Box.H \
../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H \
../FL/Fl_Button.H CodeEditor.h ../FL/Fl_Text_Buffer.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_Menu_Button.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Window.H ../FL/Fl_Tabs.H \
../FL/Fl_Pixmap.H Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H \
Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Pack.H \
../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H \
../FL/Fl_Input_Choice.H ../FL/Fl_Menu_Bar.H undo.h
template_panel.o: template_panel.cxx template_panel.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_Browser.H \
../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Box.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Group.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H \
../FL/Fl_Button.H ../src/flstring.h ../FL/Fl_Export.H ../config.h \
../FL/filename.H ../FL/fl_ask.H ../FL/Fl_Shared_Image.H \
../FL/Fl_Image.H ../FL/Fl_Preferences.H
undo.o: undo.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h \
../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H \
../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H \
../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h \
../FL/Fl_Preferences.H ../src/flstring.h ../FL/Fl_Export.H ../config.h
widget_panel.o: widget_panel.cxx widget_panel.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_Tabs.H \
../FL/Fl_Group.H ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Choice.H \
../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H \
../FL/Fl_Button.H ../FL/Fl_Box.H ../FL/Fl_Value_Input.H \
../FL/Fl_Valuator.H ../FL/Fl_Input.H ../FL/Fl_Light_Button.H \
../FL/Fl_Button.H Shortcut_Button.h CodeEditor.h ../FL/Fl_Text_Buffer.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_Text_Buffer.H \
../FL/Fl_Return_Button.H
CodeEditor.o: CodeEditor.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
CodeEditor.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
CodeEditor.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Text_Buffer.H
CodeEditor.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
CodeEditor.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
CodeEditor.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
CodeEditor.o: ../FL/Fl_Text_Buffer.H
Fl_Function_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
Fl_Function_Type.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
Fl_Function_Type.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Preferences.H
Fl_Function_Type.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
Fl_Function_Type.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
Fl_Function_Type.o: ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
Fl_Function_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
Fl_Function_Type.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Tile.H
Fl_Function_Type.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H
Fl_Function_Type.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
Fl_Function_Type.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
Fl_Function_Type.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
Fl_Function_Type.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H
Fl_Function_Type.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
Fl_Function_Type.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
Fl_Function_Type.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H Fl_Type.h
Fl_Function_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H Fluid_Image.h
Fl_Function_Type.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Tabs.H
Fl_Function_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
Fl_Function_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H
Fl_Function_Type.o: ../FL/Fl_Menu_Bar.H ../FL/fl_show_input.H ../FL/fl_ask.H
Fl_Function_Type.o: ../src/flstring.h ../config.h function_panel.h
Fl_Function_Type.o: ../FL/Fl_Light_Button.H ../FL/Fl_Text_Editor.H
Fl_Function_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H
Fl_Function_Type.o: ../FL/Fl_Text_Buffer.H CodeEditor.h
Fl_Function_Type.o: ../FL/Fl_Text_Buffer.H comments.h
Fl_Group_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
Fl_Group_Type.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
Fl_Group_Type.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
Fl_Group_Type.o: ../FL/fl_message.H ../FL/fl_ask.H Fl_Widget_Type.h Fl_Type.h
Fl_Group_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
Fl_Group_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h
Fl_Group_Type.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
Fl_Group_Type.o: ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
Fl_Group_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
Fl_Group_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
Fl_Group_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
Fl_Group_Type.o: ../FL/Fl_Menu_Bar.H ../src/flstring.h ../config.h
Fl_Group_Type.o: ../FL/Fl_Scroll.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
Fl_Group_Type.o: ../FL/Fl_Valuator.H
Fl_Menu_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
Fl_Menu_Type.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_Menu_Type.o: ../FL/fl_types.h Fl_Widget_Type.h Fl_Type.h ../FL/Fl_Widget.H
Fl_Menu_Type.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
Fl_Menu_Type.o: ../FL/Fl_Image.H Fluid_Image.h ../FL/Fl_Shared_Image.H
Fl_Menu_Type.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H
Fl_Menu_Type.o: ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H
Fl_Menu_Type.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
Fl_Menu_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
Fl_Menu_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
Fl_Menu_Type.o: ../FL/Fl_Menu_Bar.H alignment_panel.h ../FL/Fl_Text_Buffer.H
Fl_Menu_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Scrollbar.H
Fl_Menu_Type.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
Fl_Menu_Type.o: ../FL/Fl_Double_Window.H ../FL/Fl_Preferences.H
Fl_Menu_Type.o: ../FL/Fl_Tooltip.H ../FL/Fl_Button.H ../FL/Fl_Box.H
Fl_Menu_Type.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
Fl_Menu_Type.o: ../FL/Fl_Button.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
Fl_Menu_Type.o: ../FL/Fl_Repeat_Button.H ../FL/Fl.H ../FL/Fl_Return_Button.H
Fl_Menu_Type.o: ../FL/Fl_Round_Button.H ../FL/fl_message.H ../FL/fl_ask.H
Fl_Menu_Type.o: ../FL/Fl_Value_Input.H ../FL/Fl_Input.H ../src/flstring.h
Fl_Menu_Type.o: ../config.h ../FL/Fl_Output.H Shortcut_Button.h
Fl_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
Fl_Type.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_Type.o: ../FL/fl_types.h ../FL/Fl_Browser_.H ../FL/Fl_Group.H
Fl_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
Fl_Type.o: ../FL/Fl_Valuator.H ../FL/fl_draw.H ../FL/Fl_Window.H
Fl_Type.o: ../src/flstring.h ../config.h Fl_Type.h ../FL/Fl_Widget.H
Fl_Type.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
Fl_Type.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/Fl_Tabs.H
Fl_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H
Fl_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
Fl_Type.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
Fl_Type.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H undo.h
Fl_Type.o: ../FL/Fl_Pixmap.H pixmaps/lock.xpm pixmaps/protected.xpm
Fl_Type.o: pixmaps/flWindow.xpm pixmaps/flButton.xpm
Fl_Type.o: pixmaps/flCheckButton.xpm pixmaps/flRoundButton.xpm
Fl_Type.o: pixmaps/flBox.xpm pixmaps/flGroup.xpm pixmaps/flFunction.xpm
Fl_Type.o: pixmaps/flCode.xpm pixmaps/flCodeBlock.xpm pixmaps/flComment.xpm
Fl_Type.o: pixmaps/flDeclaration.xpm pixmaps/flDeclarationBlock.xpm
Fl_Type.o: pixmaps/flClass.xpm pixmaps/flTabs.xpm pixmaps/flInput.xpm
Fl_Type.o: pixmaps/flChoice.xpm pixmaps/flMenuitem.xpm pixmaps/flMenubar.xpm
Fl_Type.o: pixmaps/flSubmenu.xpm pixmaps/flScroll.xpm pixmaps/flTile.xpm
Fl_Type.o: pixmaps/flWizard.xpm pixmaps/flPack.xpm pixmaps/flReturnButton.xpm
Fl_Type.o: pixmaps/flLightButton.xpm pixmaps/flRepeatButton.xpm
Fl_Type.o: pixmaps/flMenuButton.xpm pixmaps/flOutput.xpm
Fl_Type.o: pixmaps/flTextDisplay.xpm pixmaps/flTextEdit.xpm
Fl_Type.o: pixmaps/flFileInput.xpm pixmaps/flBrowser.xpm
Fl_Type.o: pixmaps/flCheckBrowser.xpm pixmaps/flFileBrowser.xpm
Fl_Type.o: pixmaps/flClock.xpm pixmaps/flHelp.xpm pixmaps/flProgress.xpm
Fl_Type.o: pixmaps/flSlider.xpm pixmaps/flScrollBar.xpm
Fl_Type.o: pixmaps/flValueSlider.xpm pixmaps/flAdjuster.xpm
Fl_Type.o: pixmaps/flCounter.xpm pixmaps/flDial.xpm pixmaps/flRoller.xpm
Fl_Type.o: pixmaps/flValueInput.xpm pixmaps/flValueOutput.xpm
Fl_Type.o: pixmaps/flSpinner.xpm pixmaps/flWidgetClass.xpm
Fl_Widget_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
Fl_Widget_Type.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
Fl_Widget_Type.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Group.H
Fl_Widget_Type.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H Fl_Widget_Type.h
Fl_Widget_Type.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H
Fl_Widget_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
Fl_Widget_Type.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H
Fl_Widget_Type.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Tabs.H
Fl_Widget_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
Fl_Widget_Type.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
Fl_Widget_Type.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H
Fl_Widget_Type.o: ../FL/Fl_Menu_Bar.H alignment_panel.h
Fl_Widget_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
Fl_Widget_Type.o: ../FL/fl_draw.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
Fl_Widget_Type.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
Fl_Widget_Type.o: ../FL/Fl_Double_Window.H ../FL/Fl_Preferences.H
Fl_Widget_Type.o: ../FL/Fl_Tooltip.H ../FL/Fl_Button.H ../FL/Fl_Box.H
Fl_Widget_Type.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
Fl_Widget_Type.o: ../FL/Fl_Button.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
Fl_Widget_Type.o: ../FL/Fl_Repeat_Button.H ../FL/Fl.H
Fl_Widget_Type.o: ../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H
Fl_Widget_Type.o: ../FL/fl_message.H ../FL/fl_ask.H ../FL/Fl_Slider.H
Fl_Widget_Type.o: ../src/flstring.h ../config.h widget_panel.h
Fl_Widget_Type.o: ../FL/Fl_Value_Input.H ../FL/Fl_Input.H
Fl_Widget_Type.o: ../FL/Fl_Light_Button.H Shortcut_Button.h CodeEditor.h
Fl_Widget_Type.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H
Fl_Widget_Type.o: ../FL/fl_show_colormap.H
Fl_Window_Type.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
Fl_Window_Type.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
Fl_Window_Type.o: ../FL/Fl_Export.H ../FL/fl_types.h
Fl_Window_Type.o: ../FL/Fl_Overlay_Window.H ../FL/Fl_Double_Window.H
Fl_Window_Type.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
Fl_Window_Type.o: ../FL/fl_message.H ../FL/fl_ask.H ../FL/fl_draw.H ../FL/x.H
Fl_Window_Type.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
Fl_Window_Type.o: ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H
Fl_Window_Type.o: ../FL/Fl_Button.H Fl_Widget_Type.h Fl_Type.h
Fl_Window_Type.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
Fl_Window_Type.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/Fl_Tabs.H
Fl_Window_Type.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H
Fl_Window_Type.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
Fl_Window_Type.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
Fl_Window_Type.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
Fl_Window_Type.o: undo.h alignment_panel.h ../FL/Fl_Text_Buffer.H
Fl_Window_Type.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H
Fl_Window_Type.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
Fl_Window_Type.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
Fl_Window_Type.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Button.H
Fl_Window_Type.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_Spinner.H
Fl_Window_Type.o: ../FL/Enumerations.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H
Fl_Window_Type.o: ../FL/Fl_Return_Button.H widget_panel.h
Fl_Window_Type.o: ../FL/Fl_Value_Input.H ../FL/Fl_Input.H
Fl_Window_Type.o: ../FL/Fl_Light_Button.H Shortcut_Button.h CodeEditor.h
Fl_Window_Type.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H
Fl_Window_Type.o: ../src/flstring.h ../config.h
Fluid_Image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
Fluid_Image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
Fluid_Image.o: ../FL/fl_types.h ../FL/Fl_Widget.H Fl_Type.h ../FL/Fl_Menu.H
Fluid_Image.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H ../FL/Fl_Image.H
Fluid_Image.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H
Fluid_Image.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Tabs.H
Fluid_Image.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H
Fluid_Image.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
Fluid_Image.o: ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H
Fluid_Image.o: ../FL/Fl_Input_.H ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H
Fluid_Image.o: ../src/flstring.h ../config.h ../FL/filename.H
Fluid_Image.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H
Fluid_Image.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
Fluid_Image.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
Fluid_Image.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
Fluid_Image.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
Fluid_Image.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
Fluid_Image.o: ../FL/Fl_Button.H ../FL/Fl_File_Input.H
Fluid_Image.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H
about_panel.o: about_panel.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
about_panel.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
about_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
about_panel.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
about_panel.o: ../FL/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H
about_panel.o: ../FL/Fl_Button.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
align_widget.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
align_widget.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
align_widget.o: ../FL/fl_types.h ../FL/Fl_Window.H Fl_Widget_Type.h Fl_Type.h
align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
align_widget.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h
align_widget.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
align_widget.o: ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
align_widget.o: ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
align_widget.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
align_widget.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
align_widget.o: ../FL/Fl_Menu_Bar.H undo.h
alignment_panel.o: alignment_panel.h ../FL/Fl.H ../FL/fl_utf8.h
alignment_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
alignment_panel.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
alignment_panel.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
alignment_panel.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H
alignment_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
alignment_panel.o: ../FL/Fl_Valuator.H ../FL/Fl_Text_Buffer.H
alignment_panel.o: ../FL/Fl_Double_Window.H ../FL/Fl_Preferences.H
alignment_panel.o: ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
alignment_panel.o: ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Box.H
alignment_panel.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Check_Button.H
alignment_panel.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
alignment_panel.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
alignment_panel.o: ../FL/Fl_Image.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
alignment_panel.o: ../FL/Fl_Repeat_Button.H ../FL/Fl.H
alignment_panel.o: ../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H
code.o: ../src/flstring.h ../FL/Fl_Export.H ../config.h ../FL/Fl.H
code.o: ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
code.o: ../FL/Fl_Export.H ../FL/fl_types.h Fl_Type.h ../FL/Fl_Widget.H
code.o: ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H ../FL/Fl_Widget.H
code.o: ../FL/Fl_Image.H Fluid_Image.h ../FL/Fl_Shared_Image.H
code.o: ../FL/fl_draw.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Tabs.H
code.o: ../FL/Fl_Pack.H ../FL/Fl_Group.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
code.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Choice.H
code.o: ../FL/Fl_Input_Choice.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
code.o: ../FL/Fl_Window.H ../FL/Fl_Menu_Bar.H alignment_panel.h
code.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
code.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
code.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
code.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Button.H
code.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
code.o: ../FL/Fl_Button.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
code.o: ../FL/Fl_Repeat_Button.H ../FL/Fl.H ../FL/Fl_Return_Button.H
code.o: ../FL/Fl_Round_Button.H ../FL/filename.H
factory.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
factory.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
factory.o: ../FL/fl_types.h ../FL/Fl_Group.H ../FL/Fl_Menu_Item.H
factory.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H ../FL/Fl_Pixmap.H
factory.o: ../src/flstring.h ../config.h undo.h Fl_Widget_Type.h Fl_Type.h
factory.o: ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
factory.o: Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H
factory.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H
factory.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
factory.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
factory.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
factory.o: ../FL/Fl_Menu_Bar.H ../FL/Fl_Box.H ../FL/Fl_Button.H
factory.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
factory.o: ../FL/Fl_Repeat_Button.H ../FL/Fl.H ../FL/Fl_Light_Button.H
factory.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
factory.o: ../FL/Fl_Round_Button.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
factory.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
factory.o: ../FL/Fl_Check_Browser.H ../FL/Fl_File_Browser.H
factory.o: ../FL/Fl_Browser.H ../FL/Fl_File_Icon.H ../FL/filename.H
factory.o: ../FL/Fl_Counter.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
factory.o: ../FL/Fl_File_Input.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
factory.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.H
factory.o: ../FL/Fl_Text_Display.H ../FL/Fl_Clock.H ../FL/Fl_Help_View.H
factory.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Progress.H ../FL/Fl_Adjuster.H
factory.o: ../FL/Fl_Dial.H ../FL/Fl_Roller.H ../FL/Fl_Scrollbar.H
factory.o: ../FL/Fl_Output.H ../FL/Fl_Input.H ../FL/Fl_Value_Input.H
factory.o: ../FL/Fl_Value_Output.H ../FL/Fl_Value_Slider.H
factory.o: ../FL/Fl_Multi_Label.H
file.o: ../src/flstring.h ../FL/Fl_Export.H ../config.h alignment_panel.h
file.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/fl_types.h ../FL/Xutf8.h
file.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
file.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
file.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
file.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
file.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Double_Window.H
file.o: ../FL/Fl_Preferences.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
file.o: ../FL/Fl_Button.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Box.H
file.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Check_Button.H
file.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Choice.H
file.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
file.o: ../FL/Fl_Spinner.H ../FL/Enumerations.H ../FL/Fl_Repeat_Button.H
file.o: ../FL/Fl.H ../FL/Fl_Return_Button.H ../FL/Fl_Round_Button.H
file.o: ../FL/fl_message.H ../FL/fl_ask.H Fl_Widget_Type.h Fl_Type.h
file.o: ../FL/Fl_Menu.H Fluid_Image.h ../FL/Fl_Shared_Image.H ../FL/fl_draw.H
file.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
file.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Input_Choice.H ../FL/Fl_Window.H
file.o: ../FL/Fl_Menu_Bar.H
fluid.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
fluid.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
fluid.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
fluid.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Button.H
fluid.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/Fl_Help_Dialog.H
fluid.o: ../FL/Fl_Group.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
fluid.o: ../FL/Fl_Help_View.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
fluid.o: ../FL/Fl_Valuator.H ../FL/fl_draw.H ../FL/Fl_Shared_Image.H
fluid.o: ../FL/Fl_Hold_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
fluid.o: ../FL/Fl_Image.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
fluid.o: ../FL/Fl_Menu_Item.H ../FL/fl_ask.H ../FL/fl_draw.H
fluid.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Choice.H ../FL/Fl_Menu_Button.H
fluid.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H
fluid.o: ../FL/Fl_File_Icon.H ../FL/filename.H ../FL/Fl_Check_Button.H
fluid.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_File_Input.H
fluid.o: ../FL/Fl_Return_Button.H ../FL/fl_message.H ../FL/fl_ask.H
fluid.o: ../FL/filename.H ../src/flstring.h ../config.h alignment_panel.h
fluid.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Display.H
fluid.o: ../FL/Fl_Text_Buffer.H ../FL/Fl_Tooltip.H ../FL/Fl_Widget.H
fluid.o: ../FL/Fl_Tabs.H ../FL/Fl_Spinner.H ../FL/Enumerations.H
fluid.o: ../FL/Fl_Repeat_Button.H ../FL/Fl_Round_Button.H function_panel.h
fluid.o: ../FL/Fl_Light_Button.H ../FL/Fl_Text_Editor.H
fluid.o: ../FL/Fl_Text_Display.H CodeEditor.h ../FL/Fl_Window.H
fluid.o: template_panel.h ../FL/Fl_Browser.H print_panel.cxx print_panel.h
fluid.o: ../FL/Fl_Progress.H ../FL/Fl_Pixmap.H about_panel.h undo.h Fl_Type.h
fluid.o: ../FL/Fl_Menu.H Fluid_Image.h ../FL/Fl_Shared_Image.H
fluid.o: ../FL/Fl_Pack.H ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H
fluid.o: ../FL/Fl_Input_Choice.H
function_panel.o: function_panel.h ../FL/Fl.H ../FL/fl_utf8.h
function_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
function_panel.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
function_panel.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
function_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Choice.H
function_panel.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
function_panel.o: ../FL/Fl_Light_Button.H ../FL/Fl_Box.H ../FL/Fl_Input.H
function_panel.o: ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H
function_panel.o: ../FL/Fl_Button.H ../FL/Fl_Button.H ../FL/Fl_Text_Editor.H
function_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H
function_panel.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
function_panel.o: ../FL/Fl_Text_Buffer.H CodeEditor.h ../FL/Fl_Text_Buffer.H
function_panel.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Window.H ../FL/Fl_Tabs.H
function_panel.o: ../FL/Fl_Pixmap.H Fl_Type.h ../FL/Fl_Widget.H
function_panel.o: ../FL/Fl_Menu.H Fluid_Image.h ../FL/Fl_Shared_Image.H
function_panel.o: ../FL/fl_draw.H ../FL/Fl_Pack.H ../FL/Fl_Wizard.H
function_panel.o: ../FL/Fl_Menu_.H ../FL/Fl_Input_Choice.H
function_panel.o: ../FL/Fl_Menu_Bar.H undo.h
template_panel.o: template_panel.h ../FL/Fl.H ../FL/fl_utf8.h
template_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
template_panel.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
template_panel.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
template_panel.o: ../FL/Fl_Widget.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
template_panel.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
template_panel.o: ../FL/Fl_Image.H ../FL/Fl_Box.H ../FL/Fl_Input.H
template_panel.o: ../FL/Fl_Input_.H ../FL/Fl_Group.H ../FL/Fl_Button.H
template_panel.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
template_panel.o: ../src/flstring.h ../config.h ../FL/filename.H
template_panel.o: ../FL/fl_ask.H ../FL/Fl_Shared_Image.H
template_panel.o: ../FL/Fl_Preferences.H
undo.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
undo.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
undo.o: Fl_Type.h ../FL/Fl_Widget.H ../FL/Fl_Menu.H ../FL/Fl_Menu_Item.H
undo.o: ../FL/Fl_Widget.H ../FL/Fl_Image.H Fluid_Image.h
undo.o: ../FL/Fl_Shared_Image.H ../FL/fl_draw.H ../FL/Fl_Window.H
undo.o: ../FL/Fl_Group.H ../FL/Fl_Tabs.H ../FL/Fl_Pack.H ../FL/Fl_Group.H
undo.o: ../FL/Fl_Wizard.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Button.H
undo.o: ../FL/Fl_Menu_.H ../FL/Fl_Choice.H ../FL/Fl_Input_Choice.H
undo.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Window.H
undo.o: ../FL/Fl_Menu_Bar.H undo.h ../FL/Fl_Preferences.H ../src/flstring.h
undo.o: ../config.h
widget_panel.o: widget_panel.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
widget_panel.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
widget_panel.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
widget_panel.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
widget_panel.o: ../FL/Fl_Tabs.H ../FL/Fl_Group.H ../FL/Fl_Input.H
widget_panel.o: ../FL/Fl_Input_.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
widget_panel.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Button.H
widget_panel.o: ../FL/Fl_Box.H ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H
widget_panel.o: ../FL/Fl_Input.H ../FL/Fl_Light_Button.H Shortcut_Button.h
widget_panel.o: CodeEditor.h ../FL/Fl_Text_Buffer.H ../FL/Fl_Text_Editor.H
widget_panel.o: ../FL/Fl_Text_Display.H ../FL/fl_draw.H ../FL/Fl_Scrollbar.H
widget_panel.o: ../FL/Fl_Slider.H ../FL/Fl_Text_Buffer.H
widget_panel.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H

View File

@ -12,6 +12,13 @@
C904DE7910AEDD3700266003 /* table.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C918E1410DDA11BA00167E99 /* table.cxx */; };
C904DE7B10AEDD3700266003 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9A3E9510DD6336500486E4F /* fltk.framework */; };
C904DE7D10AEDD3700266003 /* fltk.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = C9A3E9510DD6336500486E4F /* fltk.framework */; };
C904DF2610AEFF3E00266003 /* Fl_Tree_Item_Array.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C904DF2210AEFF3E00266003 /* Fl_Tree_Item_Array.cxx */; };
C904DF2710AEFF3E00266003 /* Fl_Tree_Item.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C904DF2310AEFF3E00266003 /* Fl_Tree_Item.cxx */; };
C904DF2810AEFF3E00266003 /* Fl_Tree_Prefs.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C904DF2410AEFF3E00266003 /* Fl_Tree_Prefs.cxx */; };
C904DF2910AEFF3E00266003 /* Fl_Tree.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C904DF2510AEFF3E00266003 /* Fl_Tree.cxx */; };
C904DF3210AEFF4A00266003 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9A3E9510DD6336500486E4F /* fltk.framework */; };
C904DF3410AEFF4A00266003 /* fltk.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = C9A3E9510DD6336500486E4F /* fltk.framework */; };
C904DF5A10AF003400266003 /* tree.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C904DF5910AF003400266003 /* tree.cxx */; };
C918DB410DD9EE7500167E99 /* editor.cxx in Sources */ = {isa = PBXBuildFile; fileRef = C918DB400DD9EE7500167E99 /* editor.cxx */; };
C918DB4D0DD9EE8F00167E99 /* fltk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9A3E9510DD6336500486E4F /* fltk.framework */; };
C918DB5F0DD9EED100167E99 /* fast_slow.fl in Resources */ = {isa = PBXBuildFile; fileRef = C918DB5E0DD9EED100167E99 /* fast_slow.fl */; };
@ -579,6 +586,18 @@
);
script = "export DYLD_FRAMEWORK_PATH=${TARGET_BUILD_DIR} && cd ../../test && ${TARGET_BUILD_DIR}/Fluid.app/Contents/MacOS/Fluid -c ${INPUT_FILE_NAME}";
};
C904DF3510AEFF4A00266003 /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.proxy.script;
filePatterns = "*.fl";
fileType = pattern.proxy;
isEditable = 1;
outputFiles = (
"${INPUT_FILE_DIR}/${INPUT_FILE_BASE}.cxx",
"${INPUT_FILE_DIR}/${INPUT_FILE_BASE}.h",
);
script = "export DYLD_FRAMEWORK_PATH=${TARGET_BUILD_DIR} && cd ../../test && ${TARGET_BUILD_DIR}/Fluid.app/Contents/MacOS/Fluid -c ${INPUT_FILE_NAME}";
};
C918DB780DD9EF6800167E99 /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.proxy.script;
@ -730,6 +749,20 @@
remoteGlobalIDString = C904DE7110AEDD3700266003 /* table */;
remoteInfo = table;
};
C904DF2D10AEFF4A00266003 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = C9A3E93C0DD6332D00486E4F /* Project object */;
proxyType = 1;
remoteGlobalIDString = C9A3E9500DD6336500486E4F;
remoteInfo = fltk;
};
C904DF4A10AEFFB900266003 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = C9A3E93C0DD6332D00486E4F /* Project object */;
proxyType = 1;
remoteGlobalIDString = C904DF2B10AEFF4A00266003 /* tree */;
remoteInfo = tree;
};
C918DB3D0DD9EE4600167E99 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = C9A3E93C0DD6332D00486E4F /* Project object */;
@ -1968,6 +2001,16 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C904DF3310AEFF4A00266003 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
C904DF3410AEFF4A00266003 /* fltk.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
C94A76BC0E76D4A800AAA38E /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@ -2666,6 +2709,13 @@
C904DE6D10AEDD2A00266003 /* Fl_Table.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Table.cxx; path = ../../src/Fl_Table.cxx; sourceTree = SOURCE_ROOT; };
C904DE8210AEDD3700266003 /* table.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = table.app; sourceTree = BUILT_PRODUCTS_DIR; };
C904DE8F10AEDD3800266003 /* tabs-Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "tabs-Info copy.plist"; path = "plists/tabs-Info copy.plist"; sourceTree = "<group>"; };
C904DF2210AEFF3E00266003 /* Fl_Tree_Item_Array.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Tree_Item_Array.cxx; path = ../../src/Fl_Tree_Item_Array.cxx; sourceTree = SOURCE_ROOT; };
C904DF2310AEFF3E00266003 /* Fl_Tree_Item.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Tree_Item.cxx; path = ../../src/Fl_Tree_Item.cxx; sourceTree = SOURCE_ROOT; };
C904DF2410AEFF3E00266003 /* Fl_Tree_Prefs.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Tree_Prefs.cxx; path = ../../src/Fl_Tree_Prefs.cxx; sourceTree = SOURCE_ROOT; };
C904DF2510AEFF3E00266003 /* Fl_Tree.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fl_Tree.cxx; path = ../../src/Fl_Tree.cxx; sourceTree = SOURCE_ROOT; };
C904DF3910AEFF4A00266003 /* tree.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tree.app; sourceTree = BUILT_PRODUCTS_DIR; };
C904DF4010AEFF4A00266003 /* table-Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "table-Info copy.plist"; path = "plists/table-Info copy.plist"; sourceTree = "<group>"; };
C904DF5910AF003400266003 /* tree.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tree.cxx; path = ../../test/tree.cxx; sourceTree = SOURCE_ROOT; };
C918DB370DD9EE4100167E99 /* editor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = editor.app; sourceTree = BUILT_PRODUCTS_DIR; };
C918DB390DD9EE4100167E99 /* editor-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "editor-Info.plist"; path = "plists/editor-Info.plist"; sourceTree = "<group>"; };
C918DB400DD9EE7500167E99 /* editor.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = editor.cxx; path = ../../test/editor.cxx; sourceTree = SOURCE_ROOT; };
@ -3174,6 +3224,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C904DF3110AEFF4A00266003 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
C904DF3210AEFF4A00266003 /* fltk.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
C918DB350DD9EE4100167E99 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -3819,6 +3877,7 @@
C9DD58060DD7834400A896B4 /* libs */,
C9A3E9520DD6336500486E4F /* Products */,
C9A3EE790DD64B0200486E4F /* TODO */,
C904DF4010AEFF4A00266003 /* table-Info copy.plist */,
);
sourceTree = "<group>";
};
@ -3897,6 +3956,7 @@
C99E1EAE0E78628600AECCF6 /* curve.app */,
C9EAC2DC0E786725004F64F7 /* colbrowser.app */,
C904DE8210AEDD3700266003 /* table.app */,
C904DF3910AEFF4A00266003 /* tree.app */,
);
name = Products;
sourceTree = "<group>";
@ -3983,6 +4043,10 @@
C9A3E9590DD6338B00486E4F /* Library Sources */ = {
isa = PBXGroup;
children = (
C904DF2210AEFF3E00266003 /* Fl_Tree_Item_Array.cxx */,
C904DF2310AEFF3E00266003 /* Fl_Tree_Item.cxx */,
C904DF2410AEFF3E00266003 /* Fl_Tree_Prefs.cxx */,
C904DF2510AEFF3E00266003 /* Fl_Tree.cxx */,
C904DE6C10AEDD2A00266003 /* Fl_Table_Row.cxx */,
C904DE6D10AEDD2A00266003 /* Fl_Table.cxx */,
C9A3EAD80DD634CC00486E4F /* Fl_get_key_mac.cxx */,
@ -4257,6 +4321,7 @@
C918E15B0DDA11FE00167E99 /* threads.cxx */,
C918E17B0DDA124500167E99 /* tile.cxx */,
C918E1A10DDA128900167E99 /* tiled_image.cxx */,
C904DF5910AF003400266003 /* tree.cxx */,
C918E1CB0DDA132100167E99 /* valuators.fl */,
C918E1DA0DDA133400167E99 /* valuators.cxx */,
);
@ -4451,6 +4516,26 @@
productReference = C904DE8210AEDD3700266003 /* table.app */;
productType = "com.apple.product-type.application";
};
C904DF2B10AEFF4A00266003 /* tree */ = {
isa = PBXNativeTarget;
buildConfigurationList = C904DF3610AEFF4A00266003 /* Build configuration list for PBXNativeTarget "tree" */;
buildPhases = (
C904DF2E10AEFF4A00266003 /* Resources */,
C904DF2F10AEFF4A00266003 /* Sources */,
C904DF3110AEFF4A00266003 /* Frameworks */,
C904DF3310AEFF4A00266003 /* CopyFiles */,
);
buildRules = (
C904DF3510AEFF4A00266003 /* PBXBuildRule */,
);
dependencies = (
C904DF2C10AEFF4A00266003 /* PBXTargetDependency */,
);
name = tree;
productName = tabs;
productReference = C904DF3910AEFF4A00266003 /* tree.app */;
productType = "com.apple.product-type.application";
};
C918DB360DD9EE4100167E99 /* editor */ = {
isa = PBXNativeTarget;
buildConfigurationList = C918DB3C0DD9EE4100167E99 /* Build configuration list for PBXNativeTarget "editor" */;
@ -5426,6 +5511,7 @@
C918E2380DDA13BC00167E99 /* PBXTargetDependency */,
C918E23A0DDA13BC00167E99 /* PBXTargetDependency */,
C918E23C0DDA13BC00167E99 /* PBXTargetDependency */,
C904DF4B10AEFFB900266003 /* PBXTargetDependency */,
C9EAC41F0E78730F004F64F7 /* PBXTargetDependency */,
C918E23E0DDA13BC00167E99 /* PBXTargetDependency */,
C9FF1F9B0E7C48EE001149A6 /* PBXTargetDependency */,
@ -6002,6 +6088,7 @@
C918E1510DDA11E400167E99 /* threads */,
C918E1710DDA122D00167E99 /* tile */,
C918E1910DDA126E00167E99 /* tiled_image */,
C904DF2B10AEFF4A00266003 /* tree */,
C94A76CF0E77F59E00AAA38E /* utf8 */,
C918E1BD0DDA12CF00167E99 /* valuators */,
);
@ -6016,6 +6103,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C904DF2E10AEFF4A00266003 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
C918DB330DD9EE4100167E99 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@ -6535,6 +6629,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
C904DF2F10AEFF4A00266003 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C904DF5A10AF003400266003 /* tree.cxx in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
C918DB340DD9EE4100167E99 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -7077,6 +7179,10 @@
C99E1E9D0E78620B00AECCF6 /* is_spacing.c in Sources */,
C904DE6E10AEDD2A00266003 /* Fl_Table_Row.cxx in Sources */,
C904DE6F10AEDD2A00266003 /* Fl_Table.cxx in Sources */,
C904DF2610AEFF3E00266003 /* Fl_Tree_Item_Array.cxx in Sources */,
C904DF2710AEFF3E00266003 /* Fl_Tree_Item.cxx in Sources */,
C904DF2810AEFF3E00266003 /* Fl_Tree_Prefs.cxx in Sources */,
C904DF2910AEFF3E00266003 /* Fl_Tree.cxx in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -7369,6 +7475,16 @@
target = C904DE7110AEDD3700266003 /* table */;
targetProxy = C904DEB810AEE0BD00266003 /* PBXContainerItemProxy */;
};
C904DF2C10AEFF4A00266003 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = C9A3E9500DD6336500486E4F /* fltk */;
targetProxy = C904DF2D10AEFF4A00266003 /* PBXContainerItemProxy */;
};
C904DF4B10AEFFB900266003 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = C904DF2B10AEFF4A00266003 /* tree */;
targetProxy = C904DF4A10AEFFB900266003 /* PBXContainerItemProxy */;
};
C918DB3E0DD9EE4600167E99 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = C9A3E9500DD6336500486E4F /* fltk */;
@ -8294,6 +8410,53 @@
};
name = Release;
};
C904DF3710AEFF4A00266003 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
HEADER_SEARCH_PATHS = ../../;
INFOPLIST_FILE = "plists/tree-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
OTHER_LDFLAGS = (
"-framework",
Carbon,
);
PREBINDING = NO;
PRODUCT_NAME = tree;
WRAPPER_EXTENSION = app;
ZERO_LINK = YES;
};
name = Debug;
};
C904DF3810AEFF4A00266003 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_MODEL_TUNING = G5;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
HEADER_SEARCH_PATHS = ../../;
INFOPLIST_FILE = "plists/tree-Info.plist";
INSTALL_PATH = "$(HOME)/Applications";
OTHER_LDFLAGS = (
"-framework",
Carbon,
);
PREBINDING = NO;
PRODUCT_NAME = tree;
WRAPPER_EXTENSION = app;
ZERO_LINK = NO;
};
name = Release;
};
C918DB3A0DD9EE4100167E99 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -11747,6 +11910,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C904DF3610AEFF4A00266003 /* Build configuration list for PBXNativeTarget "tree" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C904DF3710AEFF4A00266003 /* Debug */,
C904DF3810AEFF4A00266003 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C918DB3C0DD9EE4100167E99 /* Build configuration list for PBXNativeTarget "editor" */ = {
isa = XCConfigurationList;
buildConfigurations = (

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>org.fltk.table</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>FLTK</string>
<key>CFBundleVersion</key>
<string>1.0</string>
</dict>
</plist>

View File

@ -1,94 +1,64 @@
# DO NOT DELETE
jmemnobs.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jmemnobs.o: jerror.h jmemsys.h
jcapimin.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcapimin.o: jerror.h
jcapistd.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcapistd.o: jerror.h
jccoefct.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jccoefct.o: jerror.h
jccolor.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jccolor.o: jerror.h
jcdctmgr.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcdctmgr.o: jerror.h jdct.h
jchuff.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jchuff.o: jerror.h jchuff.h
jcinit.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcinit.o: jerror.h
jcmainct.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcmainct.o: jerror.h
jcmarker.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcmarker.o: jerror.h
jcmaster.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcmaster.o: jerror.h
jcomapi.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcomapi.o: jerror.h
jcparam.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcparam.o: jerror.h
jcphuff.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcphuff.o: jerror.h jchuff.h
jcprepct.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcprepct.o: jerror.h
jcsample.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jcsample.o: jerror.h
jctrans.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jctrans.o: jerror.h
jdapimin.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdapimin.o: jerror.h
jdapistd.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdapistd.o: jerror.h
jdatadst.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdatadst.o: jerror.h
jdatasrc.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdatasrc.o: jerror.h
jdcoefct.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdcoefct.o: jerror.h
jdcolor.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdcolor.o: jerror.h
jddctmgr.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jddctmgr.o: jerror.h jdct.h
jdhuff.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdhuff.o: jerror.h jdhuff.h
jdinput.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdinput.o: jerror.h
jdmainct.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdmainct.o: jerror.h
jdmarker.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdmarker.o: jerror.h
jdmaster.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdmaster.o: jerror.h
jdmerge.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdmerge.o: jerror.h
jdphuff.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdphuff.o: jerror.h jdhuff.h
jdpostct.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdpostct.o: jerror.h
jdsample.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdsample.o: jerror.h
jdtrans.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jdtrans.o: jerror.h
jerror.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jerror.o: jerror.h jversion.h
jfdctflt.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jfdctflt.o: jerror.h jdct.h
jfdctfst.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jfdctfst.o: jerror.h jdct.h
jfdctint.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jfdctint.o: jerror.h jdct.h
jidctflt.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jidctflt.o: jerror.h jdct.h
jidctfst.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jidctfst.o: jerror.h jdct.h
jidctint.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jidctint.o: jerror.h jdct.h
jidctred.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jidctred.o: jerror.h jdct.h
jquant1.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jquant1.o: jerror.h
jquant2.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jquant2.o: jerror.h
jutils.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jutils.o: jerror.h
jmemmgr.o: jinclude.h jconfig.h ../config.h jpeglib.h jmorecfg.h jpegint.h
jmemmgr.o: jerror.h jmemsys.h
jmemnobs.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jmemnobs.o: jmemsys.h
jcapimin.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcapistd.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jccoefct.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jccolor.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcdctmgr.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcdctmgr.o: jdct.h
jchuff.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jchuff.o: jchuff.h
jcinit.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcmainct.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcmarker.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcmaster.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcomapi.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcparam.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcphuff.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcphuff.o: jchuff.h
jcprepct.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jcsample.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jctrans.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdapimin.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdapistd.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdatadst.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdatasrc.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdcoefct.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdcolor.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jddctmgr.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jddctmgr.o: jdct.h
jdhuff.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdhuff.o: jdhuff.h
jdinput.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdmainct.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdmarker.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdmaster.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdmerge.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdphuff.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdphuff.o: jdhuff.h
jdpostct.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdsample.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jdtrans.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jerror.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jerror.o: jversion.h
jfdctflt.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jfdctflt.o: jdct.h
jfdctfst.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jfdctfst.o: jdct.h
jfdctint.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jfdctint.o: jdct.h
jidctflt.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jidctflt.o: jdct.h
jidctfst.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jidctfst.o: jdct.h
jidctint.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jidctint.o: jdct.h
jidctred.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jidctred.o: jdct.h
jquant1.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jquant2.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jutils.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jmemmgr.o: jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
jmemmgr.o: jmemsys.h

File diff suppressed because it is too large Load Diff

View File

@ -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);

354
src/Fl_Tree.cxx Normal file
View File

@ -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);
}

707
src/Fl_Tree_Item.cxx Normal file
View File

@ -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);
}

149
src/Fl_Tree_Item_Array.cxx Normal file
View File

@ -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);
}

122
src/Fl_Tree_Prefs.cxx Normal file
View File

@ -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;
}
}
}

View File

@ -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 \

File diff suppressed because it is too large Load Diff

View File

@ -95,6 +95,7 @@ CPPFILES =\
threads.cxx \
tile.cxx \
tiled_image.cxx \
tree.cxx \
valuators.cxx \
utf8.cxx
@ -158,6 +159,7 @@ ALL = \
$(THREADS) \
tile$(EXEEXT) \
tiled_image$(EXEEXT) \
tree$(EXEEXT) \
valuators$(EXEEXT) \
cairotest$(EXEEXT) \
utf8$(EXEEXT)
@ -420,6 +422,8 @@ sudoku.exe: sudoku.o sudoku.rc
symbols$(EXEEXT): symbols.o
table$(EXEEXT): table.o
tabs$(EXEEXT): tabs.o
tabs.cxx: tabs.fl ../fluid/fluid$(EXEEXT)
@ -432,6 +436,8 @@ tile$(EXEEXT): tile.o
tiled_image$(EXEEXT): tiled_image.o
tree$(EXEEXT): tree.o
valuators$(EXEEXT): valuators.o
valuators.cxx: valuators.fl ../fluid/fluid$(EXEEXT)

View File

@ -21,6 +21,7 @@
@x:more...:@xm
@xm:Fl_Menu:menubar
@xm:Fl_Table:table
@xm:Fl_Tree:tree
@main:Window\nTests:@w
@w:overlay:overlay

View File

@ -1,388 +1,535 @@
# DO NOT DELETE THIS LINE -- make depend depends on it.
unittests.o: unittests.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_Button.H ../FL/Fl_Box.H \
../FL/fl_draw.H
adjuster.o: adjuster.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_Adjuster.H ../FL/Fl_Valuator.H ../FL/Fl_Box.H
arc.o: arc.cxx ../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_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H \
../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
ask.o: ask.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_Button.H ../FL/Fl_Return_Button.H \
../FL/Fl_Button.H ../FL/fl_ask.H
bitmap.o: bitmap.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_Button.H \
../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_Toggle_Button.H \
../FL/Fl_Button.H
blocks.o: blocks.cxx ../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_Button.H ../FL/Fl_Preferences.H \
../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H \
../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H ../FL/Fl_Tiled_Image.H \
../FL/fl_draw.H ../FL/x.H ../config.h pixmaps/blast.xpm pixmaps/red.xpm \
pixmaps/red_bomb.xpm pixmaps/green.xpm pixmaps/green_bomb.xpm \
pixmaps/blue.xpm pixmaps/blue_bomb.xpm pixmaps/yellow.xpm \
pixmaps/yellow_bomb.xpm pixmaps/cyan.xpm pixmaps/cyan_bomb.xpm \
pixmaps/magenta.xpm pixmaps/magenta_bomb.xpm pixmaps/gray.xpm \
pixmaps/gray_bomb.xpm
boxtype.o: boxtype.cxx ../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_Box.H
browser.o: browser.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
../FL/Fl_Select_Browser.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_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Button.H ../FL/Fl_Int_Input.H \
../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_ask.H
button.o: button.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_Button.H
buttons.o: buttons.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_Button.H \
../FL/Fl_Return_Button.H ../FL/Fl_Button.H ../FL/Fl_Repeat_Button.H \
../FL/Fl.H ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H \
../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Tooltip.H \
../FL/Fl_Widget.H
checkers.o: checkers.cxx ../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_Bitmap.H ../FL/Fl_Image.H \
../FL/fl_draw.H ../FL/Fl_Menu_Item.H ../FL/fl_ask.H pixmaps/black_1.xbm \
pixmaps/black_2.xbm pixmaps/black_3.xbm pixmaps/black_4.xbm \
pixmaps/white_1.xbm pixmaps/white_2.xbm pixmaps/white_3.xbm \
pixmaps/white_4.xbm pixmaps/blackking_1.xbm pixmaps/blackking_2.xbm \
pixmaps/blackking_3.xbm pixmaps/blackking_4.xbm pixmaps/whiteking_1.xbm \
pixmaps/whiteking_2.xbm pixmaps/whiteking_3.xbm pixmaps/whiteking_4.xbm \
../FL/Fl_Box.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/Fl_Value_Output.H
clock.o: clock.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_Clock.H \
../FL/Fl_Round_Clock.H ../FL/Fl_Clock.H
colbrowser.o: colbrowser.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
color_chooser.o: color_chooser.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_Box.H ../FL/Fl_Button.H ../FL/fl_show_colormap.H \
../FL/Fl_Color_Chooser.H ../FL/Fl_Group.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_Image.H \
../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H list_visuals.cxx \
../config.h
cube.o: cube.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/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Radio_Light_Button.H \
../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/gl.h
CubeMain.o: CubeMain.cxx ../config.h ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H CubeViewUI.h ../FL/Fl_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H \
../FL/Fl_Roller.H ../FL/Fl_Valuator.H ../FL/Fl_Slider.H ../FL/Fl_Box.H \
CubeView.h ../config.h ../FL/Fl_Gl_Window.H ../FL/gl.h \
../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H
CubeView.o: CubeView.cxx CubeView.h ../config.h ../FL/Fl.H \
../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Gl_Window.H \
../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/gl.h
cursor.o: 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/Fl_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Box.H
curve.o: curve.cxx ../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_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H \
../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H \
../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H
demo.o: demo.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_Box.H \
../FL/Fl_Button.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/filename.H ../FL/x.H \
../FL/Fl_Window.H
doublebuffer.o: doublebuffer.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_Double_Window.H \
../FL/Fl_Box.H ../FL/fl_draw.H ../FL/Fl_Hor_Slider.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/math.h
editor.o: editor.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/fl_ask.H \
../FL/Fl_File_Chooser.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_Menu_Bar.H ../FL/Fl_Text_Buffer.H \
../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H \
../FL/Fl_Text_Buffer.H
fast_slow.o: fast_slow.cxx fast_slow.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_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Box.H
file_chooser.o: 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_File_Icon.H ../FL/Fl_Shared_Image.H \
../FL/Fl_PNM_Image.H ../FL/Fl_Light_Button.H
fonts.o: fonts.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_Hold_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H \
../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/fl_draw.H ../FL/Fl_Box.H ../FL/fl_ask.H
forms.o: forms.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 \
pixmaps/srs.xbm
fractals.o: fractals.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/glu.h \
fracviewer.h ../FL/Fl_Button.H ../FL/Fl_Group.H ../FL/Fl_Window.H
fullscreen.o: fullscreen.cxx ../config.h ../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_Hor_Slider.H \
../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Toggle_Light_Button.H \
../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/math.h ../FL/gl.h \
../FL/Fl_Gl_Window.H
gl_overlay.o: gl_overlay.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/Fl_Hor_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H ../FL/math.h ../FL/gl.h \
../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
glpuzzle.o: glpuzzle.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/glu.h \
trackball.c trackball.h
hello.o: hello.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_Box.H \
../FL/filename.H
help.o: help.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
iconize.o: iconize.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_Button.H \
../FL/Fl_Box.H
image.o: image.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_Button.H \
../FL/Fl_Image.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H ../FL/x.H \
../FL/Fl_Window.H list_visuals.cxx ../config.h
inactive.o: inactive.cxx inactive.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_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Check_Button.H \
../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Image.H ../FL/Fl_Value_Output.H ../FL/Fl_Box.H \
../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Roller.H \
../FL/Fl_Dial.H ../FL/Fl_Clock.H
input.o: 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_Float_Input.H ../FL/Fl_Input.H \
../FL/Fl_Int_Input.H ../FL/Fl_Secret_Input.H ../FL/Fl_Multiline_Input.H \
../FL/Fl_Button.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H \
../FL/Fl_Color_Chooser.H ../FL/Fl_Group.H ../FL/Fl_Box.H \
../FL/Fl_Return_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
input_choice.o: input_choice.cxx ../FL/Fl_Button.H ../FL/Fl_Widget.H \
../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Window.H \
../FL/Fl_Group.H ../FL/Fl_Input_Choice.H ../FL/Fl.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H
keyboard.o: keyboard.cxx keyboard_ui.h ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H keyboard.h ../FL/Fl_Window.H ../FL/Fl_Group.H \
../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Output.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Box.H ../FL/Fl_Dial.H ../FL/Fl_Valuator.H
label.o: label.cxx ../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_Box.H ../FL/Fl_Hor_Value_Slider.H \
../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H
line_style.o: line_style.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_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/fl_draw.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Image.H
list_visuals.o: list_visuals.cxx ../config.h
mandelbrot.o: mandelbrot.cxx mandelbrot_ui.h ../FL/Fl.H \
../FL/Enumerations.H ../FL/Fl_Export.H mandelbrot.h ../FL/Fl_Box.H \
../FL/Fl_Widget.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/fl_draw.H
menubar.o: menubar.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
../FL/Fl_Box.H ../FL/Fl_Widget.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H \
../FL/Fl_Image.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H \
../FL/Fl_Menu_Button.H ../FL/Fl_Choice.H ../src/flstring.h \
../FL/Fl_Export.H ../config.h ../FL/fl_draw.H
message.o: message.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_ask.H
minimum.o: minimum.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_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Box.H ../FL/Fl_Return_Button.H \
../FL/Fl_Button.H
navigation.o: navigation.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
output.o: output.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_Window.H ../FL/Fl_Group.H \
../FL/Fl_Box.H ../FL/Fl_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H \
../FL/Fl_Slider.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H \
../FL/Fl_Input.H ../FL/fl_draw.H ../FL/Fl_Output.H \
../FL/Fl_Multiline_Output.H ../FL/Fl_Output.H
overlay.o: overlay.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_Overlay_Window.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.H \
../FL/Fl_Button.H ../FL/fl_draw.H
pack.o: pack.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
../FL/Fl_Button.H ../FL/Fl_Widget.H ../FL/Fl_Light_Button.H \
../FL/Fl_Button.H ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Scroll.H \
../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/Fl_Value_Slider.H ../FL/Fl_Pack.H ../FL/Fl_Group.H
pixmap_browser.o: pixmap_browser.cxx ../FL/Fl.H ../FL/Enumerations.H \
../FL/Fl_Export.H ../FL/Fl_Box.H ../FL/Fl_Widget.H ../FL/Fl_Window.H \
../FL/Fl_Group.H ../FL/Fl_Button.H ../FL/Fl_Shared_Image.H \
../FL/Fl_Image.H ../FL/Fl_File_Chooser.H ../FL/Fl_Double_Window.H \
../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Menu_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_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_message.H \
../FL/fl_ask.H
pixmap.o: pixmap.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_Button.H \
../FL/Fl_Pixmap.H ../FL/Fl_Image.H pixmaps/porsche.xpm \
../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H ../FL/Fl_Multi_Label.H
preferences.o: preferences.cxx preferences.h ../FL/Fl.H \
../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Preferences.H \
../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Group.H ../FL/Fl_Input.H \
../FL/Fl_Input_.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H \
../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Round_Button.H \
../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Box.H \
../FL/Fl_Check_Button.H ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/filename.H ../FL/fl_ask.H
radio.o: radio.cxx radio.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_Button.H \
../FL/Fl_Return_Button.H ../FL/Fl_Button.H ../FL/Fl_Light_Button.H \
../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H \
../FL/Fl_Group.H
resizebox.o: resizebox.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_Box.H \
../FL/Fl_Radio_Button.H ../FL/Fl_Button.H ../FL/fl_draw.H \
../FL/fl_message.H ../FL/fl_ask.H
resize.o: resize.cxx resize.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_Button.H ../FL/Fl_Box.H
scroll.o: scroll.cxx ../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_Scroll.H ../FL/Fl_Scrollbar.H \
../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Light_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_Box.H ../FL/fl_draw.H \
../FL/math.h
shape.o: shape.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/Fl_Hor_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H \
../FL/math.h ../FL/gl.h ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
subwindow.o: subwindow.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_Toggle_Button.H ../FL/Fl_Button.H ../FL/Fl_Menu_Button.H \
../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Box.H \
../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_draw.H
sudoku.o: sudoku.cxx ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H \
../FL/Enumerations.H ../FL/Fl_Window.H ../FL/Fl_Group.H \
../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Group.H ../FL/fl_ask.H \
../FL/fl_draw.H ../FL/Fl_Help_Dialog.H ../FL/Fl_Double_Window.H \
../FL/Fl_Window.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 ../FL/Fl_Preferences.H ../FL/Fl_Sys_Menu_Bar.H \
../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/x.H \
../FL/math.h pixmaps/sudoku.xbm ../config.h
symbols.o: symbols.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_Box.H ../FL/Fl_Value_Slider.H \
../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
tabs.o: tabs.cxx tabs.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_Box.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H \
../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Button.H ../FL/fl_ask.H \
../FL/Fl_Clock.H ../FL/Fl_Wizard.H ../FL/Fl_Return_Button.H \
../FL/Fl_Button.H
threads.o: threads.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/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H \
../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Value_Output.H threads.h
tile.o: tile.cxx ../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_Tile.H ../FL/Fl_Box.H
tiled_image.o: tiled_image.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_Button.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H \
../FL/Fl_Tiled_Image.H pixmaps/tile.xpm ../FL/x.H ../FL/Fl_Window.H \
list_visuals.cxx ../config.h
valuators.o: valuators.cxx valuators.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_Box.H ../FL/Fl_Slider.H \
../FL/Fl_Valuator.H ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H \
../FL/Fl_Value_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H \
../FL/Fl_Value_Output.H ../FL/Fl_Scrollbar.H ../FL/Fl_Adjuster.H \
../FL/Fl_Counter.H ../FL/Fl_Spinner.H ../FL/Enumerations.H \
../FL/Fl_Group.H ../FL/Fl_Input.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H \
../FL/Fl_Button.H ../FL/Fl_Dial.H ../FL/Fl_Roller.H
unittests.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
unittests.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
unittests.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
unittests.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Hold_Browser.H
unittests.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
unittests.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Image.H
unittests.o: ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/fl_draw.H
unittests.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Group.H ../FL/Fl_Box.H
unittests.o: ../FL/fl_draw.H unittest_about.cxx unittest_points.cxx
unittests.o: unittest_lines.cxx unittest_rects.cxx unittest_circles.cxx
unittests.o: unittest_text.cxx unittest_images.cxx unittest_viewport.cxx
unittests.o: unittest_scrollbarsize.cxx ../FL/Fl_Browser.H
unittests.o: ../FL/Fl_Value_Slider.H
adjuster.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
adjuster.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
adjuster.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
adjuster.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Adjuster.H
adjuster.o: ../FL/Fl_Valuator.H ../FL/Fl_Box.H
arc.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
arc.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
arc.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
arc.o: ../FL/Fl_Widget.H ../FL/Fl_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H
arc.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
ask.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
ask.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
ask.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
ask.o: ../FL/Fl_Widget.H ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Button.H
ask.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H ../FL/fl_ask.H
bitmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
bitmap.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
bitmap.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
bitmap.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
bitmap.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_Toggle_Button.H
bitmap.o: ../FL/Fl_Button.H
blocks.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
blocks.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
blocks.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
blocks.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
blocks.o: ../FL/Fl_Preferences.H ../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H
blocks.o: ../FL/Fl_Image.H ../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H
blocks.o: ../FL/Fl_Tiled_Image.H ../FL/fl_draw.H ../FL/x.H ../config.h
blocks.o: pixmaps/blast.xpm pixmaps/red.xpm pixmaps/red_bomb.xpm
blocks.o: pixmaps/green.xpm pixmaps/green_bomb.xpm pixmaps/blue.xpm
blocks.o: pixmaps/blue_bomb.xpm pixmaps/yellow.xpm pixmaps/yellow_bomb.xpm
blocks.o: pixmaps/cyan.xpm pixmaps/cyan_bomb.xpm pixmaps/magenta.xpm
blocks.o: pixmaps/magenta_bomb.xpm pixmaps/gray.xpm pixmaps/gray_bomb.xpm
boxtype.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
boxtype.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
boxtype.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
boxtype.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H
browser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
browser.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
browser.o: ../FL/fl_types.h ../FL/Fl_Select_Browser.H ../FL/Fl_Browser.H
browser.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
browser.o: ../FL/Fl_Valuator.H ../FL/Fl_Image.H ../FL/Fl_Double_Window.H
browser.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
browser.o: ../FL/Fl_Button.H ../FL/Fl_Int_Input.H ../FL/Fl_Input.H
browser.o: ../FL/Fl_Input_.H ../FL/fl_ask.H
button.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
button.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
button.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
button.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H
buttons.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
buttons.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
buttons.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
buttons.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Return_Button.H
buttons.o: ../FL/Fl_Button.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H
buttons.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H
buttons.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Tooltip.H
buttons.o: ../FL/Fl_Widget.H
cairo_test.o: ../config.h ../FL/fl_ask.H ../FL/Enumerations.H
cairo_test.o: ../FL/Fl_Export.H ../FL/fl_types.h
checkers.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
checkers.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
checkers.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
checkers.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Bitmap.H
checkers.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Menu_Item.H
checkers.o: ../FL/fl_ask.H pixmaps/black_1.xbm pixmaps/black_2.xbm
checkers.o: pixmaps/black_3.xbm pixmaps/black_4.xbm pixmaps/white_1.xbm
checkers.o: pixmaps/white_2.xbm pixmaps/white_3.xbm pixmaps/white_4.xbm
checkers.o: pixmaps/blackking_1.xbm pixmaps/blackking_2.xbm
checkers.o: pixmaps/blackking_3.xbm pixmaps/blackking_4.xbm
checkers.o: pixmaps/whiteking_1.xbm pixmaps/whiteking_2.xbm
checkers.o: pixmaps/whiteking_3.xbm pixmaps/whiteking_4.xbm ../FL/Fl_Box.H
checkers.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Value_Output.H
clock.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
clock.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
clock.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
clock.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Clock.H
clock.o: ../FL/Fl_Round_Clock.H ../FL/Fl_Clock.H
colbrowser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
colbrowser.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
colbrowser.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
colbrowser.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
colbrowser.o: ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
colbrowser.o: ../FL/Fl_Hold_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
colbrowser.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Image.H ../FL/Fl_Box.H
colbrowser.o: ../FL/fl_ask.H ../FL/filename.H
color_chooser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
color_chooser.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
color_chooser.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
color_chooser.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H
color_chooser.o: ../FL/Fl_Button.H ../FL/fl_show_colormap.H
color_chooser.o: ../FL/Fl_Color_Chooser.H ../FL/Fl_Group.H
color_chooser.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H ../FL/Fl_Choice.H
color_chooser.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
color_chooser.o: ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H ../FL/Fl_Input.H
color_chooser.o: ../FL/Fl_Input_.H ../FL/Fl_Image.H ../FL/x.H
color_chooser.o: ../FL/Fl_Window.H ../FL/fl_draw.H list_visuals.cxx
color_chooser.o: ../config.h
cube.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
cube.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
cube.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
cube.o: ../FL/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Radio_Light_Button.H
cube.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Slider.H
cube.o: ../FL/Fl_Valuator.H ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/gl.h
CubeMain.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
CubeMain.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
CubeMain.o: ../FL/Fl_Export.H ../FL/fl_types.h CubeViewUI.h
CubeMain.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
CubeMain.o: ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Roller.H
CubeMain.o: ../FL/Fl_Valuator.H ../FL/Fl_Slider.H ../FL/Fl_Box.H CubeView.h
CubeMain.o: ../FL/Fl_Gl_Window.H ../FL/gl.h ../FL/Fl_Value_Slider.H
CubeMain.o: ../FL/Fl_Slider.H
CubeView.o: CubeView.h ../config.h ../FL/Fl.H ../FL/fl_utf8.h
CubeView.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
CubeView.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
CubeView.o: ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
CubeView.o: ../FL/Fl_Widget.H ../FL/gl.h
cursor.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
cursor.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
cursor.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
cursor.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Hor_Value_Slider.H
cursor.o: ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
cursor.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
cursor.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/Fl_Box.H
curve.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
curve.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
curve.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
curve.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Hor_Value_Slider.H
curve.o: ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
curve.o: ../FL/fl_draw.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H
demo.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
demo.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
demo.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
demo.o: ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Button.H ../FL/Fl_Choice.H
demo.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
demo.o: ../FL/filename.H ../FL/x.H
doublebuffer.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
doublebuffer.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
doublebuffer.o: ../FL/fl_types.h ../FL/Fl_Single_Window.H ../FL/Fl_Window.H
doublebuffer.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Double_Window.H
doublebuffer.o: ../FL/Fl_Box.H ../FL/fl_draw.H ../FL/Fl_Hor_Slider.H
doublebuffer.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/math.h
editor.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
editor.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
editor.o: ../FL/fl_types.h ../FL/Fl_Group.H ../FL/Fl_Double_Window.H
editor.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/fl_ask.H
editor.o: ../FL/Fl_File_Chooser.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
editor.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Menu_Button.H
editor.o: ../FL/Fl_Button.H ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
editor.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
editor.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
editor.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H ../FL/Fl_Box.H
editor.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
editor.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
editor.o: ../FL/Fl_Return_Button.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Text_Buffer.H
editor.o: ../FL/Fl_Text_Editor.H ../FL/Fl_Text_Display.H ../FL/fl_draw.H
editor.o: ../FL/Fl_Text_Buffer.H
fast_slow.o: fast_slow.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
fast_slow.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
fast_slow.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
fast_slow.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
fast_slow.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Box.H
file_chooser.o: ../FL/Fl_File_Chooser.H ../FL/Fl.H ../FL/fl_utf8.h
file_chooser.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Xutf8.h
file_chooser.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
file_chooser.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
file_chooser.o: ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Choice.H
file_chooser.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
file_chooser.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H
file_chooser.o: ../FL/Fl_Preferences.H ../FL/Fl_Tile.H
file_chooser.o: ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H
file_chooser.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
file_chooser.o: ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H ../FL/Fl.H
file_chooser.o: ../FL/filename.H ../FL/Fl_Box.H ../FL/Fl_Check_Button.H
file_chooser.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
file_chooser.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
file_chooser.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H ../FL/Fl_File_Icon.H
file_chooser.o: ../FL/Fl_Shared_Image.H ../FL/Fl_PNM_Image.H
file_chooser.o: ../FL/Fl_Light_Button.H
fonts.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
fonts.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
fonts.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
fonts.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Hold_Browser.H
fonts.o: ../FL/Fl_Browser.H ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H
fonts.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Image.H
fonts.o: ../FL/fl_draw.H ../FL/Fl_Box.H ../FL/fl_ask.H
forms.o: ../FL/forms.H ../FL/Fl.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
forms.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
forms.o: ../FL/Fl_Window.H ../FL/fl_draw.H ../FL/Fl_FormsBitmap.H
forms.o: ../FL/Fl_Bitmap.H ../FL/Fl_Image.H ../FL/Fl_FormsPixmap.H
forms.o: ../FL/Fl_Pixmap.H ../FL/Fl_Box.H ../FL/Fl_Browser.H
forms.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
forms.o: ../FL/Fl_Valuator.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
forms.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Fl_Button.H
forms.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H
forms.o: ../FL/Fl_Check_Button.H ../FL/Fl_Chart.H ../FL/Fl_Choice.H
forms.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Clock.H
forms.o: ../FL/Fl_Counter.H ../FL/Fl_Dial.H ../FL/Fl_Free.H ../FL/fl_ask.H
forms.o: ../FL/fl_show_colormap.H ../FL/filename.H ../FL/Fl_File_Chooser.H
forms.o: ../FL/Fl_Double_Window.H ../FL/Fl_Group.H ../FL/Fl_Choice.H
forms.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Button.H ../FL/Fl_Preferences.H
forms.o: ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_File_Icon.H
forms.o: ../FL/Fl_Box.H ../FL/Fl_Check_Button.H ../FL/Fl_File_Input.H
forms.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Return_Button.H
forms.o: ../FL/fl_ask.H ../FL/Fl_Input.H ../FL/Fl_Menu_Button.H
forms.o: ../FL/Fl_Positioner.H ../FL/Fl_Value_Slider.H ../FL/Fl_Timer.H
forms.o: pixmaps/srs.xbm
fractals.o: ../config.h ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
fractals.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
fractals.o: ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
fractals.o: ../FL/Fl_Widget.H ../FL/glu.h fracviewer.h ../FL/Fl_Button.H
fractals.o: ../FL/Fl_Group.H ../FL/Fl_Window.H
fullscreen.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
fullscreen.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
fullscreen.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Single_Window.H
fullscreen.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
fullscreen.o: ../FL/Fl_Hor_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
fullscreen.o: ../FL/Fl_Toggle_Light_Button.H ../FL/Fl_Light_Button.H
fullscreen.o: ../FL/Fl_Button.H ../FL/math.h ../FL/gl.h ../FL/Fl_Gl_Window.H
gl_overlay.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
gl_overlay.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
gl_overlay.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
gl_overlay.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Hor_Slider.H
gl_overlay.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Toggle_Button.H
gl_overlay.o: ../FL/Fl_Button.H ../FL/math.h ../FL/gl.h ../FL/Fl_Gl_Window.H
gl_overlay.o: ../FL/Fl_Window.H
glpuzzle.o: ../config.h ../FL/glut.H ../FL/gl.h ../FL/Enumerations.H
glpuzzle.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl.H
glpuzzle.o: ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
glpuzzle.o: ../FL/Fl_Widget.H ../FL/glu.h trackball.c trackball.h
hello.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
hello.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
hello.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
hello.o: ../FL/Fl_Widget.H ../FL/Fl_Box.H
help.o: ../FL/Fl_Help_Dialog.H ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
help.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
help.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
help.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/Fl_Button.H
help.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Box.H
help.o: ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/Fl_Scrollbar.H
help.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
help.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H
iconize.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
iconize.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
iconize.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
iconize.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Box.H
image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
image.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
image.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
image.o: ../FL/Fl_Image.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H
image.o: ../FL/x.H list_visuals.cxx ../config.h
inactive.o: inactive.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
inactive.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
inactive.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
inactive.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
inactive.o: ../FL/Fl_Group.H ../FL/Fl_Button.H ../FL/Fl_Light_Button.H
inactive.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
inactive.o: ../FL/Fl_Round_Button.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
inactive.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Menu_Button.H
inactive.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
inactive.o: ../FL/Fl_Value_Output.H ../FL/Fl_Box.H ../FL/Fl_Scrollbar.H
inactive.o: ../FL/Fl_Slider.H ../FL/Fl_Roller.H ../FL/Fl_Dial.H
inactive.o: ../FL/Fl_Clock.H
input.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
input.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
input.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
input.o: ../FL/Fl_Widget.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
input.o: ../FL/Fl_Float_Input.H ../FL/Fl_Input.H ../FL/Fl_Int_Input.H
input.o: ../FL/Fl_Secret_Input.H ../FL/Fl_Multiline_Input.H ../FL/Fl_Button.H
input.o: ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H ../FL/Fl_Color_Chooser.H
input.o: ../FL/Fl_Group.H ../FL/Fl_Box.H ../FL/Fl_Return_Button.H
input.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
input.o: ../FL/Fl_Image.H ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H
input_choice.o: ../FL/Fl_Button.H ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
input_choice.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Enumerations.H
input_choice.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Input_Choice.H
input_choice.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
input_choice.o: ../FL/Xutf8.h ../FL/Fl_Group.H ../FL/Fl_Input.H
input_choice.o: ../FL/Fl_Input_.H ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H
input_choice.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H
keyboard.o: keyboard_ui.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
keyboard.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
keyboard.o: ../FL/Fl_Export.H ../FL/fl_types.h keyboard.h ../FL/Fl_Window.H
keyboard.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
keyboard.o: ../FL/Fl_Output.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
keyboard.o: ../FL/Fl_Box.H ../FL/Fl_Dial.H
label.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
label.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
label.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
label.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H
label.o: ../FL/Fl_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H
label.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Toggle_Button.H
label.o: ../FL/Fl_Button.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
label.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
label.o: ../FL/Fl_Image.H ../FL/fl_draw.H
line_style.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
line_style.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
line_style.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
line_style.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Value_Slider.H
line_style.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
line_style.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
line_style.o: ../FL/Fl_Image.H ../FL/Fl_Check_Button.H
line_style.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Box.H
list_visuals.o: ../config.h
mandelbrot.o: mandelbrot_ui.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
mandelbrot.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
mandelbrot.o: ../FL/Fl_Export.H ../FL/fl_types.h mandelbrot.h ../FL/Fl_Box.H
mandelbrot.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Double_Window.H
mandelbrot.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
mandelbrot.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/fl_draw.H
menubar.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
menubar.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
menubar.o: ../FL/fl_types.h ../FL/Fl_Box.H ../FL/Fl_Double_Window.H
menubar.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
menubar.o: ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
menubar.o: ../FL/Fl_Image.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H
menubar.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Choice.H ../src/flstring.h
menubar.o: ../config.h ../FL/fl_draw.H
message.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
message.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
message.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
message.o: ../FL/Fl_Widget.H ../FL/fl_ask.H
minimum.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
minimum.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
minimum.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
minimum.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Slider.H
minimum.o: ../FL/Fl_Valuator.H ../FL/Fl_Box.H ../FL/Fl_Return_Button.H
minimum.o: ../FL/Fl_Button.H
navigation.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
navigation.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
navigation.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
navigation.o: ../FL/Fl_Widget.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
output.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
output.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
output.o: ../FL/fl_types.h ../FL/Fl_Value_Input.H ../FL/Fl_Valuator.H
output.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Double_Window.H
output.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H
output.o: ../FL/Fl_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H
output.o: ../FL/Fl_Slider.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H
output.o: ../FL/Fl_Input.H ../FL/fl_draw.H ../FL/Fl_Output.H
output.o: ../FL/Fl_Multiline_Output.H ../FL/Fl_Output.H
overlay.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
overlay.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
overlay.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
overlay.o: ../FL/Fl_Widget.H ../FL/Fl_Overlay_Window.H
overlay.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Button.H
overlay.o: ../FL/fl_draw.H
pack.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
pack.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
pack.o: ../FL/Fl_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Double_Window.H
pack.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
pack.o: ../FL/Fl_Scroll.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
pack.o: ../FL/Fl_Valuator.H ../FL/Fl_Value_Slider.H ../FL/Fl_Pack.H
pack.o: ../FL/Fl_Group.H
pixmap_browser.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
pixmap_browser.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
pixmap_browser.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Box.H
pixmap_browser.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
pixmap_browser.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Shared_Image.H
pixmap_browser.o: ../FL/Fl_Image.H ../FL/Fl_File_Chooser.H ../FL/Fl_Group.H
pixmap_browser.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
pixmap_browser.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Preferences.H
pixmap_browser.o: ../FL/Fl_Tile.H ../FL/Fl_File_Browser.H ../FL/Fl_Browser.H
pixmap_browser.o: ../FL/Fl_Browser_.H ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H
pixmap_browser.o: ../FL/Fl_Valuator.H ../FL/Fl_File_Icon.H ../FL/Fl.H
pixmap_browser.o: ../FL/filename.H ../FL/Fl_Check_Button.H
pixmap_browser.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
pixmap_browser.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
pixmap_browser.o: ../FL/Fl_Return_Button.H ../FL/fl_ask.H ../FL/fl_message.H
pixmap_browser.o: ../FL/fl_ask.H
pixmap.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
pixmap.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
pixmap.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
pixmap.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
pixmap.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H pixmaps/porsche.xpm
pixmap.o: ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H ../FL/Fl_Multi_Label.H
preferences.o: preferences.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
preferences.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
preferences.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Preferences.H
preferences.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
preferences.o: ../FL/Fl_Widget.H ../FL/Fl_Button.H ../FL/Fl_Group.H
preferences.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Choice.H
preferences.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
preferences.o: ../FL/Fl_Round_Button.H ../FL/Fl_Light_Button.H
preferences.o: ../FL/Fl_Button.H ../FL/Fl_Box.H ../FL/Fl_Check_Button.H
preferences.o: ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
preferences.o: ../FL/filename.H ../FL/fl_ask.H
radio.o: radio.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
radio.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
radio.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
radio.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
radio.o: ../FL/Fl_Button.H ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
radio.o: ../FL/Fl_Light_Button.H ../FL/Fl_Check_Button.H
radio.o: ../FL/Fl_Light_Button.H ../FL/Fl_Round_Button.H ../FL/Fl_Group.H
radio.o: ../FL/Fl_Output.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
resizebox.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
resizebox.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
resizebox.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
resizebox.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H
resizebox.o: ../FL/Fl_Radio_Button.H ../FL/Fl_Button.H ../FL/fl_draw.H
resizebox.o: ../FL/fl_message.H ../FL/fl_ask.H
resize.o: resize.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
resize.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
resize.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
resize.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
resize.o: ../FL/Fl_Button.H ../FL/Fl_Box.H
rotated_text.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
rotated_text.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
rotated_text.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
rotated_text.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H
rotated_text.o: ../FL/Fl_Hor_Value_Slider.H ../FL/Fl_Value_Slider.H
rotated_text.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
rotated_text.o: ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H ../FL/Fl_Input.H
rotated_text.o: ../FL/Fl_Input_.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
rotated_text.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/fl_draw.H
scroll.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
scroll.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
scroll.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
scroll.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Scroll.H
scroll.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
scroll.o: ../FL/Fl_Light_Button.H ../FL/Fl_Choice.H ../FL/Fl_Menu_.H
scroll.o: ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H ../FL/Fl_Box.H
scroll.o: ../FL/fl_draw.H ../FL/math.h
shape.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
shape.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
shape.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Window.H
shape.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Hor_Slider.H
shape.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/math.h ../FL/gl.h
shape.o: ../FL/Fl_Gl_Window.H ../FL/Fl_Window.H
subwindow.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
subwindow.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
subwindow.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
subwindow.o: ../FL/Fl_Widget.H ../FL/Fl_Toggle_Button.H ../FL/Fl_Button.H
subwindow.o: ../FL/Fl_Menu_Button.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
subwindow.o: ../FL/Fl_Image.H ../FL/Fl_Box.H ../FL/Fl_Input.H
subwindow.o: ../FL/Fl_Input_.H
sudoku.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
sudoku.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
sudoku.o: ../FL/fl_types.h ../FL/Enumerations.H ../FL/Fl_Double_Window.H
sudoku.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
sudoku.o: ../FL/Fl_Button.H ../FL/Fl_Group.H ../FL/fl_ask.H ../FL/fl_draw.H
sudoku.o: ../FL/Fl_Help_Dialog.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
sudoku.o: ../FL/Fl_Box.H ../FL/Fl_Help_View.H ../FL/Fl.H ../FL/Fl_Scrollbar.H
sudoku.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/fl_draw.H
sudoku.o: ../FL/Fl_Shared_Image.H ../FL/Fl_Image.H ../FL/Fl_Preferences.H
sudoku.o: ../FL/Fl_Sys_Menu_Bar.H ../FL/Fl_Menu_Bar.H ../FL/Fl_Menu_.H
sudoku.o: ../FL/Fl_Menu_Item.H ../FL/x.H ../FL/math.h pixmaps/sudoku.xbm
sudoku.o: ../config.h
symbols.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
symbols.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
symbols.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
symbols.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Box.H
symbols.o: ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
symbols.o: ../FL/fl_draw.H
table.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
table.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
table.o: ../FL/fl_types.h ../FL/Fl_Window.H ../FL/Fl_Group.H
table.o: ../FL/Fl_Widget.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
table.o: ../FL/Fl_Check_Button.H ../FL/Fl_Light_Button.H ../FL/Fl_Button.H
table.o: ../FL/Fl_Choice.H ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H
table.o: ../FL/Fl_Image.H ../FL/fl_draw.H ../FL/fl_ask.H ../FL/Fl_Table_Row.H
table.o: ../FL/Fl_Table.H ../FL/Fl_Group.H ../FL/Fl_Scroll.H
table.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
table.o: ../FL/Fl_Box.H ../FL/Fl_Scrollbar.H
tabs.o: tabs.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
tabs.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
tabs.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
tabs.o: ../FL/Fl_Widget.H ../FL/Fl_Box.H ../FL/Fl_Tabs.H ../FL/Fl_Group.H
tabs.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Button.H ../FL/fl_ask.H
tabs.o: ../FL/Fl_Clock.H ../FL/Fl_Wizard.H ../FL/Fl_Return_Button.H
tabs.o: ../FL/Fl_Button.H
threads.o: ../config.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
threads.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
threads.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
threads.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
threads.o: ../FL/Fl_Browser.H ../FL/Fl_Value_Output.H ../FL/fl_ask.H
threads.o: threads.h
tile.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
tile.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
tile.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
tile.o: ../FL/Fl_Widget.H ../FL/Fl_Tile.H ../FL/Fl_Box.H
tiled_image.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
tiled_image.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H
tiled_image.o: ../FL/fl_types.h ../FL/Fl_Double_Window.H ../FL/Fl_Window.H
tiled_image.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Button.H
tiled_image.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H ../FL/Fl_Tiled_Image.H
tiled_image.o: pixmaps/tile.xpm ../FL/x.H list_visuals.cxx ../config.h
tree.o: tree.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
tree.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
tree.o: ../FL/Fl_Pixmap.H ../FL/Fl_Image.H ../FL/Fl_Group.H ../FL/Fl_Tree.H
tree.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
tree.o: ../FL/fl_draw.H ../FL/Fl_Tree_Item.H ../FL/Fl_Widget.H
tree.o: ../FL/Fl_Tree_Item_Array.H ../FL/Fl_Tree_Prefs.H ../FL/fl_ask.h
tree.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
tree.o: ../FL/Fl_Widget.H ../FL/Fl_Value_Slider.H ../FL/Fl_Check_Button.H
tree.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Choice.H
tree.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Button.H
tree.o: ../FL/Fl_Light_Button.H
valuators.o: valuators.h ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H
valuators.o: ../FL/fl_types.h ../FL/Xutf8.h ../FL/Enumerations.H
valuators.o: ../FL/Fl_Export.H ../FL/fl_types.h ../FL/Fl_Double_Window.H
valuators.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H
valuators.o: ../FL/Fl_Box.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
valuators.o: ../FL/Fl_Value_Slider.H ../FL/Fl_Slider.H ../FL/Fl_Value_Input.H
valuators.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Value_Output.H
valuators.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Adjuster.H ../FL/Fl_Counter.H
valuators.o: ../FL/Fl_Spinner.H ../FL/Enumerations.H ../FL/Fl_Group.H
valuators.o: ../FL/Fl_Input.H ../FL/Fl_Repeat_Button.H ../FL/Fl.H
valuators.o: ../FL/Fl_Button.H ../FL/Fl_Dial.H ../FL/Fl_Roller.H
utf8.o: ../FL/Fl.H ../FL/fl_utf8.h ../FL/Fl_Export.H ../FL/fl_types.h
utf8.o: ../FL/Xutf8.h ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/fl_types.h
utf8.o: ../FL/Fl_Double_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
utf8.o: ../FL/Fl_Widget.H ../FL/Fl_Scroll.H ../FL/Fl_Scrollbar.H
utf8.o: ../FL/Fl_Slider.H ../FL/Fl_Valuator.H ../FL/Fl_Choice.H
utf8.o: ../FL/Fl_Menu_.H ../FL/Fl_Menu_Item.H ../FL/Fl_Image.H
utf8.o: ../FL/Fl_Input.H ../FL/Fl_Input_.H ../FL/Fl_Box.H
utf8.o: ../FL/Fl_Hold_Browser.H ../FL/Fl_Browser.H ../FL/Fl_Browser_.H
utf8.o: ../FL/Fl_Value_Output.H ../FL/Fl_Button.H ../FL/Fl_Check_Button.H
utf8.o: ../FL/Fl_Light_Button.H ../FL/Fl_Button.H ../FL/Fl_Output.H
utf8.o: ../FL/Fl_Input.H ../FL/fl_draw.H ../FL/fl_utf8.h

642
test/tree.cxx Normal file
View File

@ -0,0 +1,642 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300
#include "tree.h"
void CccButton_CB(Fl_Widget*, void*data) {
fprintf(stderr, "ccc button pushed\n");
}
void RebuildTree() {
// REBUILD THE TREE TO MAKE CURRENT "DEFAULT" PREFS TAKE EFFECT
tree->clear();
tree->add("Aaa");
tree->add("Bbb");
tree->add("Ccc");
tree->add("Ddd");
tree->add("Bbb/child-01");
tree->add("Bbb/child-01/111");
tree->add("Bbb/child-01/222");
tree->add("Bbb/child-01/333");
tree->add("Bbb/child-02");
tree->add("Bbb/child-03");
tree->add("Bbb/child-04");
{
static Fl_Button *but = 0;
// Assign an FLTK widget to one of the items
Fl_Tree_Item *i;
if ( ( i = tree->find_item("Bbb/child-03") ) != NULL ) {
if ( !but ) { // only do this once at program startup
tree->begin();
but = new Fl_Button(1,1,140,1,"ccc button"); // we control w() only
but->labelsize(10);
}
i->widget(but);
tree->end();
}
}
{
// Assign an FLTK group to one of the items with widgets
Fl_Tree_Item *i;
if ( ( i = tree->find_item("Bbb/child-04") ) != NULL ) {
static Fl_Group *grp = 0;
if ( !grp ) { // only do this once at program startup
tree->begin();
grp = new Fl_Group(100,100,140,18); // build group.. tree handles position
grp->color(FL_WHITE);
grp->begin();
Fl_Button *abut = new Fl_Button(grp->x()+0 ,grp->y()+2,65,15,"D1");
abut->labelsize(10);
Fl_Button *bbut = new Fl_Button(grp->x()+75,grp->y()+2,65,15,"D2");
bbut->labelsize(10);
grp->end();
grp->resizable(grp);
tree->end();
}
i->widget(grp);
}
}
// Add an 'Ascending' node, and create it sorted
tree->sortorder(FL_TREE_SORT_NONE);
tree->add("Ascending")->close();
tree->sortorder(FL_TREE_SORT_ASCENDING);
tree->add("Ascending/Zzz");
tree->add("Ascending/Xxx");
tree->add("Ascending/Aaa");
tree->add("Ascending/Bbb");
tree->add("Ascending/Yyy");
tree->add("Ascending/Ccc");
// Add a 'Descending' node, and create it sorted
tree->sortorder(FL_TREE_SORT_NONE);
tree->add("Descending")->close();
tree->sortorder(FL_TREE_SORT_DESCENDING);
tree->add("Descending/Zzz");
tree->add("Descending/Xxx");
tree->add("Descending/Aaa");
tree->add("Descending/Bbb");
tree->add("Descending/Yyy");
tree->add("Descending/Ccc");
tree->redraw();
}
Fl_Double_Window *window=(Fl_Double_Window *)0;
Fl_Tree *tree=(Fl_Tree *)0;
static void cb_tree(Fl_Tree*, void*) {
Fl_Tree_Item *item = tree->item_clicked();
//item->select( item->is_selected() ? 0 : 1);
//tree->redraw();
fprintf(stderr, "TREE CALLBACK: label='%s' userdata=%d\n",
item->label(),
(int)tree->user_data());
}
Fl_Value_Slider *labelsize_slider=(Fl_Value_Slider *)0;
static void cb_labelsize_slider(Fl_Value_Slider*, void*) {
int size = (int)labelsize_slider->value();
// DO SELECTED ITEMS
int count = 0;
for ( Fl_Tree_Item *item=tree->first(); item; item = item->next() ) {
if ( item->is_selected() ) {
item->labelsize(size);
count++;
}
}
// NO ITEMS SELECTED? DO ALL
if ( ! count ) {
for ( Fl_Tree_Item *item=tree->first(); item; item = item->next() ) {
item->labelsize(size);
}
}
tree->redraw();
}
Fl_Value_Slider *connectorwidth_slider=(Fl_Value_Slider *)0;
static void cb_connectorwidth_slider(Fl_Value_Slider*, void*) {
tree->connectorwidth((int)connectorwidth_slider->value());
}
Fl_Check_Button *usericon_radio=(Fl_Check_Button *)0;
static void cb_usericon_radio(Fl_Check_Button*, void*) {
static const char *L_folder_xpm[] = {
"11 11 3 1",
". c None",
"x c #d8d833",
"@ c #808011",
"...........",
".....@@@@..",
"....@xxxx@.",
"@@@@@xxxx@@",
"@xxxxxxxxx@",
"@xxxxxxxxx@",
"@xxxxxxxxx@",
"@xxxxxxxxx@",
"@xxxxxxxxx@",
"@xxxxxxxxx@",
"@@@@@@@@@@@"};
static Fl_Pixmap L_folderpixmap(L_folder_xpm);
static const char *L_document_xpm[] = {
"11 11 3 1",
". c None",
"x c #d8d8f8",
"@ c #202060",
".@@@@@@@@@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@xxxxxxx@.",
".@@@@@@@@@."};
static Fl_Pixmap L_documentpixmap(L_document_xpm);
Fl_Tree_Item *i = 0;
if ( usericon_radio->value() ) {
tree->usericon(&L_folderpixmap);
if ( ( i = tree->find_item("Bbb/bgb/111") ) != NULL ) i->usericon(&L_documentpixmap);
if ( ( i = tree->find_item("Bbb/bgb/222") ) != NULL ) i->usericon(&L_documentpixmap);
if ( ( i = tree->find_item("Bbb/bgb/333") ) != NULL ) i->usericon(&L_documentpixmap);
} else {
tree->usericon(0);
if ( ( i = tree->find_item("Bbb/bgb/111") ) != NULL ) i->usericon(0);
if ( ( i = tree->find_item("Bbb/bgb/222") ) != NULL ) i->usericon(0);
if ( ( i = tree->find_item("Bbb/bgb/333") ) != NULL ) i->usericon(0);
};
}
Fl_Choice *collapseicons_chooser=(Fl_Choice *)0;
static void cb_collapseicons_chooser(Fl_Choice*, void*) {
static const char *L_open_xpm[] = {
"11 11 2 1",
". c None",
"@ c #000000",
"...@.......",
"...@@......",
"...@@@.....",
"...@@@@....",
"...@@@@@...",
"...@@@@@@..",
"...@@@@@...",
"...@@@@....",
"...@@@.....",
"...@@......",
"...@......."};
static Fl_Pixmap L_openpixmap(L_open_xpm);
static const char *L_close_xpm[] = {
"11 11 2 1",
". c None",
"@ c #000000",
"...........",
"...........",
"...........",
"...........",
"...........",
"@@@@@@@@@@@",
".@@@@@@@@@.",
"..@@@@@@@..",
"...@@@@@...",
"....@@@....",
".....@....."};
static Fl_Pixmap L_closepixmap(L_close_xpm);
switch ( collapseicons_chooser->value() ) {
case 0:
tree->showcollapse(1);
tree->openicon(0);
tree->closeicon(0);
break;
case 1:
tree->showcollapse(1);
tree->openicon(&L_openpixmap);
tree->closeicon(&L_closepixmap);
break;
case 2:
tree->showcollapse(0);
break;
};
}
Fl_Menu_Item menu_collapseicons_chooser[] = {
{"Normal", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Arrow", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Off", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{0,0,0,0,0,0,0,0,0}
};
Fl_Choice *connectorstyle_chooser=(Fl_Choice *)0;
static void cb_connectorstyle_chooser(Fl_Choice*, void*) {
// CHANGE COLLAPSESTYLE
switch ( connectorstyle_chooser->value() ) {
case 0: tree->connectorstyle(FL_TREE_CONNECTOR_NONE); break;
case 1: tree->connectorstyle(FL_TREE_CONNECTOR_DOTTED); break;
case 2: tree->connectorstyle(FL_TREE_CONNECTOR_SOLID); break;
};
}
Fl_Menu_Item menu_connectorstyle_chooser[] = {
{"None", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Dotted", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Solid", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{0,0,0,0,0,0,0,0,0}
};
Fl_Choice *labelcolor_chooser=(Fl_Choice *)0;
static void cb_labelcolor_chooser(Fl_Choice*, void*) {
// Set color..
Fl_Color c = Fl_Color(0x00000000);
switch ( labelcolor_chooser->value() ) {
case 0: c = Fl_Color(0x00000000); break; // black
case 1: c = Fl_Color(0xd0000000); break; // red
case 2: c = Fl_Color(0x00a00000); break; // green
case 3: c = Fl_Color(0x0000a000); break; // blue
default: c = Fl_Color(0x00000000); break; // black
}
// DO SELECTED ITEMS
int count = 0;
for ( Fl_Tree_Item *item=tree->first(); item; item = item->next() ) {
if ( item->is_selected() ) {
item->labelcolor(c);
count++;
}
}
// NO ITEMS SELECTED? DO ALL
if ( ! count ) {
for ( Fl_Tree_Item *item=tree->first(); item; item = item->next() ) {
item->labelcolor(c);
}
}
tree->redraw();
}
Fl_Menu_Item menu_labelcolor_chooser[] = {
{"Black", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Red", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Green", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Blue", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{0,0,0,0,0,0,0,0,0}
};
static void cb_Clear(Fl_Button*, void*) {
Fl_Tree_Item *item=tree->first();
while (item) {
if ( item->is_selected() ) {
if ( tree->remove(item) == -1 ) break;
item = tree->first();
} else {
item = item->next();
}
}
tree->redraw();
}
Fl_Light_Button *selectall_toggle=(Fl_Light_Button *)0;
static void cb_selectall_toggle(Fl_Light_Button*, void*) {
int onoff = selectall_toggle->value();
for (Fl_Tree_Item *item=tree->first(); item; item = item->next()) {
item->select(onoff);
}
tree->redraw();
}
Fl_Light_Button *bold_toggle=(Fl_Light_Button *)0;
static void cb_bold_toggle(Fl_Light_Button*, void*) {
int face = bold_toggle->value() ? FL_HELVETICA_BOLD : FL_HELVETICA;
// DO SELECTED ITEMS
int count = 0;
for ( Fl_Tree_Item *item=tree->first(); item; item = item->next() ) {
if ( item->is_selected() ) {
item->labelfont(face);
count++;
}
}
// NO ITEMS SELECTED? DO ALL
if ( ! count ) {
for ( Fl_Tree_Item *item=tree->first(); item; item = item->next() ) {
item->labelfont(face);
}
}
tree->redraw();
}
Fl_Light_Button *bbbselect_toggle=(Fl_Light_Button *)0;
static void cb_bbbselect_toggle(Fl_Light_Button*, void*) {
// Select just the Bbb item and its immediate children
Fl_Tree_Item *bbb = tree->find_item("/Bbb");
if ( !bbb) {
fl_alert("FAIL: Couldn't find item '/Bbb'???");
return;
}
int onoff = bbbselect_toggle->value();
bbb->select(onoff);
for ( int t=0; t<bbb->children(); t++ ) {
bbb->child(t)->select(onoff);
}
tree->redraw();
}
static void cb_Rebuild(Fl_Button*, void*) {
RebuildTree();
}
static void cb_Clear1(Fl_Button*, void*) {
tree->clear();
tree->redraw();
}
static void cb_Insert(Fl_Button*, void*) {
Fl_Tree_Item *item=tree->first();
while (item) {
if ( item->is_selected() ) {
tree->insert_above(item, "AaaAaa");
tree->insert_above(item, "BbbBbb");
tree->insert_above(item, "CccCcc");
}
item = item->next();
}
tree->redraw();
}
Fl_Value_Slider *margintop_slider=(Fl_Value_Slider *)0;
static void cb_margintop_slider(Fl_Value_Slider*, void*) {
int val = (int)margintop_slider->value();
tree->margintop(val);
tree->redraw();
}
Fl_Value_Slider *marginleft_slider=(Fl_Value_Slider *)0;
static void cb_marginleft_slider(Fl_Value_Slider*, void*) {
int val = (int)marginleft_slider->value();
tree->marginleft(val);
tree->redraw();
}
Fl_Light_Button *deactivate_toggle=(Fl_Light_Button *)0;
static void cb_deactivate_toggle(Fl_Light_Button*, void*) {
int onoff = deactivate_toggle->value() ? 0 : 1;
int count = 0;
for (Fl_Tree_Item *item=tree->first(); item; item = item->next()) {
if ( item->is_selected() ) {
item->activate(onoff);
++count;
}
}
if ( count == 0 ) {
for (Fl_Tree_Item *item=tree->first(); item; item = item->next()) {
item->activate(onoff);
}
}
tree->redraw();
}
Fl_Check_Button *showroot_radio=(Fl_Check_Button *)0;
static void cb_showroot_radio(Fl_Check_Button*, void*) {
int onoff = showroot_radio->value();
tree->showroot(onoff);
}
Fl_Choice *selectmode_chooser=(Fl_Choice *)0;
static void cb_selectmode_chooser(Fl_Choice*, void*) {
// Set selection mode
switch ( selectmode_chooser->value() ) {
case 0: tree->selectmode(FL_TREE_SELECT_NONE); break; // None
case 1: tree->selectmode(FL_TREE_SELECT_SINGLE); break; // Single
case 2: tree->selectmode(FL_TREE_SELECT_MULTI); break; // Multi
default: tree->selectmode(FL_TREE_SELECT_SINGLE); break; // Single
};
}
Fl_Menu_Item menu_selectmode_chooser[] = {
{"None", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Single", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{"Multi", 0, 0, 0, 0, FL_NORMAL_LABEL, 0, 11, 0},
{0,0,0,0,0,0,0,0,0}
};
Fl_Value_Slider *openchild_marginbottom_slider=(Fl_Value_Slider *)0;
static void cb_openchild_marginbottom_slider(Fl_Value_Slider*, void*) {
int val = (int)openchild_marginbottom_slider->value();
tree->openchild_marginbottom(val);
tree->redraw();
}
int main(int argc, char **argv) {
{ window = new Fl_Double_Window(580, 695, "test-Fl_Tree");
{ tree = new Fl_Tree(15, 15, 550, 390);
tree->box(FL_DOWN_BOX);
tree->color((Fl_Color)55);
tree->selection_color(FL_BACKGROUND_COLOR);
tree->labeltype(FL_NORMAL_LABEL);
tree->labelfont(0);
tree->labelsize(14);
tree->labelcolor(FL_FOREGROUND_COLOR);
tree->callback((Fl_Callback*)cb_tree, (void*)(1234));
tree->align(Fl_Align(FL_ALIGN_TOP));
tree->when(FL_WHEN_RELEASE);
tree->end();
} // Fl_Tree* tree
{ Fl_Value_Slider* o = labelsize_slider = new Fl_Value_Slider(190, 474, 240, 16, "Text size");
labelsize_slider->tooltip("Changes the font size of the selected items\nIf none selected, all are change\
d");
labelsize_slider->type(1);
labelsize_slider->labelsize(12);
labelsize_slider->step(0.01);
labelsize_slider->textsize(12);
labelsize_slider->callback((Fl_Callback*)cb_labelsize_slider, (void*)(tree));
labelsize_slider->align(Fl_Align(FL_ALIGN_LEFT));
o->value(tree->labelsize());
o->range(5.0, 200.0);
o->step(1.0);
o->color(46); o->selection_color(FL_RED);
} // Fl_Value_Slider* labelsize_slider
{ Fl_Value_Slider* o = connectorwidth_slider = new Fl_Value_Slider(190, 494, 240, 16, "Connector width");
connectorwidth_slider->tooltip("Tests Fl_Tree::connectorwidth()");
connectorwidth_slider->type(1);
connectorwidth_slider->labelsize(12);
connectorwidth_slider->step(0.01);
connectorwidth_slider->textsize(12);
connectorwidth_slider->callback((Fl_Callback*)cb_connectorwidth_slider, (void*)(tree));
connectorwidth_slider->align(Fl_Align(FL_ALIGN_LEFT));
o->value(tree->connectorwidth());
o->range(10.0, 100.0);
o->step(1.0);
o->color(46); o->selection_color(FL_RED);
} // Fl_Value_Slider* connectorwidth_slider
{ usericon_radio = new Fl_Check_Button(145, 520, 130, 16, "Enable user icons?");
usericon_radio->tooltip("Tests Fl_Tree_Item::usericon()");
usericon_radio->down_box(FL_DOWN_BOX);
usericon_radio->labelsize(11);
usericon_radio->callback((Fl_Callback*)cb_usericon_radio, (void*)(tree));
} // Fl_Check_Button* usericon_radio
{ collapseicons_chooser = new Fl_Choice(145, 564, 110, 16, "Collapse icons");
collapseicons_chooser->tooltip("Tests Fl_Tree::openicon() and Fl_Tree::closeicon()");
collapseicons_chooser->down_box(FL_BORDER_BOX);
collapseicons_chooser->labelsize(11);
collapseicons_chooser->textsize(11);
collapseicons_chooser->callback((Fl_Callback*)cb_collapseicons_chooser);
collapseicons_chooser->menu(menu_collapseicons_chooser);
} // Fl_Choice* collapseicons_chooser
{ connectorstyle_chooser = new Fl_Choice(145, 584, 110, 16, "Line style");
connectorstyle_chooser->tooltip("Tests connectorstyle() bit flags");
connectorstyle_chooser->down_box(FL_BORDER_BOX);
connectorstyle_chooser->labelsize(11);
connectorstyle_chooser->textsize(11);
connectorstyle_chooser->callback((Fl_Callback*)cb_connectorstyle_chooser);
connectorstyle_chooser->menu(menu_connectorstyle_chooser);
connectorstyle_chooser->value(1); // tree's default is 'dotted'
} // Fl_Choice* connectorstyle_chooser
{ labelcolor_chooser = new Fl_Choice(145, 604, 110, 16, "Item Text Color");
labelcolor_chooser->tooltip("Changes the label color for the selected items\nIf no items selected, all are\
changed");
labelcolor_chooser->down_box(FL_BORDER_BOX);
labelcolor_chooser->labelsize(11);
labelcolor_chooser->textsize(11);
labelcolor_chooser->callback((Fl_Callback*)cb_labelcolor_chooser);
labelcolor_chooser->menu(menu_labelcolor_chooser);
} // Fl_Choice* labelcolor_chooser
{ Fl_Button* o = new Fl_Button(450, 563, 100, 16, "Clear Selected");
o->tooltip("Clears the selected items\nIf no items are selected, all items are cleared");
o->labelsize(11);
o->callback((Fl_Callback*)cb_Clear);
} // Fl_Button* o
{ selectall_toggle = new Fl_Light_Button(325, 563, 100, 16, " Select All");
selectall_toggle->labelsize(11);
selectall_toggle->callback((Fl_Callback*)cb_selectall_toggle);
} // Fl_Light_Button* selectall_toggle
{ bold_toggle = new Fl_Light_Button(325, 623, 100, 17, " Bold Font");
bold_toggle->tooltip("Toggles bold font for selected items\nIf nothing selected, all are changed");
bold_toggle->labelsize(11);
bold_toggle->callback((Fl_Callback*)cb_bold_toggle);
} // Fl_Light_Button* bold_toggle
{ bbbselect_toggle = new Fl_Light_Button(325, 583, 100, 16, " Select Bbb");
bbbselect_toggle->tooltip("Toggles selecting the \'Bbb\' item and its immediate children");
bbbselect_toggle->labelsize(11);
bbbselect_toggle->callback((Fl_Callback*)cb_bbbselect_toggle);
} // Fl_Light_Button* bbbselect_toggle
{ Fl_Button* o = new Fl_Button(450, 623, 100, 17, "Rebuild Tree");
o->tooltip("Rebuilds the tree with defaults");
o->labelsize(11);
o->callback((Fl_Callback*)cb_Rebuild);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(450, 583, 100, 16, "Clear All");
o->tooltip("Clears all items\nTests Fl_Tree::clear()");
o->labelsize(11);
o->callback((Fl_Callback*)cb_Clear1);
} // Fl_Button* o
{ Fl_Button* o = new Fl_Button(450, 603, 100, 16, "Insert Above");
o->tooltip("Inserts three items above the selected items");
o->labelsize(11);
o->callback((Fl_Callback*)cb_Insert);
} // Fl_Button* o
{ Fl_Value_Slider* o = margintop_slider = new Fl_Value_Slider(190, 414, 240, 16, "margintop()");
margintop_slider->tooltip("Changes the top margin for the tree widget");
margintop_slider->type(1);
margintop_slider->labelsize(12);
margintop_slider->step(0.01);
margintop_slider->textsize(12);
margintop_slider->callback((Fl_Callback*)cb_margintop_slider, (void*)(tree));
margintop_slider->align(Fl_Align(FL_ALIGN_LEFT));
o->value(tree->margintop());
o->range(0.0, 100.0);
o->step(1.0);
o->color(46); o->selection_color(FL_RED);
} // Fl_Value_Slider* margintop_slider
{ Fl_Value_Slider* o = marginleft_slider = new Fl_Value_Slider(190, 434, 240, 16, "marginleft()");
marginleft_slider->tooltip("Changes the left margin for the tree widget");
marginleft_slider->type(1);
marginleft_slider->labelsize(12);
marginleft_slider->step(0.01);
marginleft_slider->textsize(12);
marginleft_slider->callback((Fl_Callback*)cb_marginleft_slider, (void*)(tree));
marginleft_slider->align(Fl_Align(FL_ALIGN_LEFT));
o->value(tree->marginleft());
o->range(0.0, 100.0);
o->step(1.0);
o->color(46); o->selection_color(FL_RED);
} // Fl_Value_Slider* marginleft_slider
{ deactivate_toggle = new Fl_Light_Button(325, 603, 100, 16, " Deactivate");
deactivate_toggle->tooltip("Toggle the deactivation state of the selected items.\nIf none are selected, a\
ll are set.");
deactivate_toggle->labelsize(11);
deactivate_toggle->callback((Fl_Callback*)cb_deactivate_toggle);
} // Fl_Light_Button* deactivate_toggle
{ showroot_radio = new Fl_Check_Button(145, 539, 130, 16, "Show root?");
showroot_radio->tooltip("Tests Fl_Tree_Item::usericon()");
showroot_radio->down_box(FL_DOWN_BOX);
showroot_radio->labelsize(11);
showroot_radio->callback((Fl_Callback*)cb_showroot_radio, (void*)(tree));
int onoff = tree->showroot(); showroot_radio->value(onoff);
} // Fl_Check_Button* showroot_radio
{ selectmode_chooser = new Fl_Choice(145, 624, 110, 16, "Selection Mode");
selectmode_chooser->tooltip("Sets how Fl_Tree handles mouse selection of tree items");
selectmode_chooser->down_box(FL_BORDER_BOX);
selectmode_chooser->labelsize(11);
selectmode_chooser->textsize(11);
selectmode_chooser->callback((Fl_Callback*)cb_selectmode_chooser);
selectmode_chooser->menu(menu_selectmode_chooser);
selectmode_chooser->value(1);
cb_selectmode_chooser(selectmode_chooser, (void*)0);
} // Fl_Choice* selectmode_chooser
{ Fl_Value_Slider* o = openchild_marginbottom_slider = new Fl_Value_Slider(190, 454, 240, 16, "openchild_marginbottom()");
openchild_marginbottom_slider->tooltip("Changes the vertical space below an open child tree");
openchild_marginbottom_slider->type(1);
openchild_marginbottom_slider->labelsize(12);
openchild_marginbottom_slider->step(0.01);
openchild_marginbottom_slider->textsize(12);
openchild_marginbottom_slider->callback((Fl_Callback*)cb_openchild_marginbottom_slider, (void*)(tree));
openchild_marginbottom_slider->align(Fl_Align(FL_ALIGN_LEFT));
o->value(tree->openchild_marginbottom());
o->range(0.0, 100.0);
o->step(1.0);
o->color(46); o->selection_color(FL_RED);
} // Fl_Value_Slider* openchild_marginbottom_slider
window->end();
} // Fl_Double_Window* window
// Initialize Tree
tree->root_label("ROOT");
RebuildTree();
tree->show_self();
// FLTK stuff
// Fl::scheme("gtk+");
window->resizable(window);
window->size_range(window->w(), window->h(), 0, 0);
window->show(argc, argv);
return Fl::run();
}

41
test/tree.h Normal file
View File

@ -0,0 +1,41 @@
// generated by Fast Light User Interface Designer (fluid) version 1.0300
#ifndef test_Fl_Tree_H
#define test_Fl_Tree_H
#include <FL/Fl.H>
#include <stdio.h>
#include <FL/Fl.H>
#include <FL/Fl_Pixmap.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Tree.H>
#include <FL/fl_ask.h>
void CccButton_CB(Fl_Widget*, void*data);
void RebuildTree();
#include <FL/Fl_Double_Window.H>
extern Fl_Double_Window *window;
extern Fl_Tree *tree;
#include <FL/Fl_Value_Slider.H>
extern Fl_Value_Slider *labelsize_slider;
extern Fl_Value_Slider *connectorwidth_slider;
#include <FL/Fl_Check_Button.H>
extern Fl_Check_Button *usericon_radio;
#include <FL/Fl_Choice.H>
extern Fl_Choice *collapseicons_chooser;
extern Fl_Choice *connectorstyle_chooser;
extern Fl_Choice *labelcolor_chooser;
#include <FL/Fl_Button.H>
#include <FL/Fl_Light_Button.H>
extern Fl_Light_Button *selectall_toggle;
extern Fl_Light_Button *bold_toggle;
extern Fl_Light_Button *bbbselect_toggle;
extern Fl_Value_Slider *margintop_slider;
extern Fl_Value_Slider *marginleft_slider;
extern Fl_Light_Button *deactivate_toggle;
extern Fl_Check_Button *showroot_radio;
extern Fl_Choice *selectmode_chooser;
extern Fl_Value_Slider *openchild_marginbottom_slider;
extern Fl_Menu_Item menu_collapseicons_chooser[];
extern Fl_Menu_Item menu_connectorstyle_chooser[];
extern Fl_Menu_Item menu_labelcolor_chooser[];
extern Fl_Menu_Item menu_selectmode_chooser[];
#endif