Fl_Table -- FLTK Table Widget
-----------------------------

WHAT IS Fl_Table?

    Fl_Table is a low level widget intended to help people
    design higher level widgets, and is aimed at becoming
    part of FLTK's core.

    Fl_Table is a low level widget that helps widget designers
    (or self motivated app designers) derive their own higher
    level widgets to do what they need.

    Fl_Table can be used to implement many table-like widgets; 
    a 'spreadsheet', a two dimensional table browser, an
    invoice generator.

    Anything where resizable rows and columns with optional
    row/column headers are desireable.

LICENSING

    Fl_Table comes with complete free source code. 
    Fl_Table is available under the terms of the GNU Library 
    General Public License. See COPYING for more info.

    Contrary to popular belief, it can be used in commercial
    software!

BUILD INSTRUCTIONS

    Tested under Linux, Mac OSX and Windows with fltk 1.3.x.

    To build the test programs and related Fl_Table object files:

	make

   These test programs are created:

       	testtablerow     -- Simple row/column test. 
			    Scroll around, resize the columns.

	exercisetablerow -- Exercises widget options to check for bugs.

	sortapp          -- Sample app that loads output of an 'ls' listing, and
			    lets you toggle-sort the columns by clicking on the 
			    column headings.

	widgettable      -- Exercises ability to embed fltk widgets in table

	singleinput      -- Shows Mr. Satan's trick to use Fl_Input effectively
			    in Fl_Table, with only a single instance of the widget.

UTF8 SUPPORT

    FLTK officially started supporting UTF8 in 1.3.0, and the default
    Makefile should work with that OK.

    For some years before 1.3.x, there was an FLTK utf8 'patch' that
    was used quite a bit.. to make that work you may need to manually
    add the -lXutf8 link option, as there was a separate Xutf8 lib.


WHERE'S THE DOCUMENTATION?

    See documentation/index.html.

FEATURES

    Currently the lib supports:

	    o A full on X/Y table
	    o Column headers (that can be resized, and disabled)
	    o An Fl_Table_Row widget that specializes in row selection behavior
	    o Complete custom drawing behavior in cells
	    o Ctrl-selection and Shift-selection, and drag selection
	    o Callback mechanism for when mouse events occur in table
	      (sortapp uses this to do sorting when column header clicked)
	    o No limit on table size (or well, there 'shouldn't' be one)
	    o Can act as a container for fltk widgets or custom widgets

RELEASE NOTES/VERSION INFORMATION
    
    See ./CHANGES.

LIMITATIONS

    Known bugs:

	    o 'sortapp' is not sorting the selection states.
	      Probably move this into the 'Row' class somehow?
	      Problem in demo only, not the core lib.

    Currently *lacks* the following, but will be in there RSN:

	    o User control of scrollbar visibility and selection behavior

    Not sure when I'll get to these:

	    o No concept of a 'current cell' or 'cell cursor'
	    o Keyboard navigation of cell selection
	    o Footers (row or column)

BUGS?
    
    Send them to erco at seriss dot com
