The FLTK Virtual Widgets are a LGPL'd set C++ class widgets for FLTK.
I'd been using FLTK off an on for about a year, and often found the need for a
table style widget. The first example was a program name FMan that allows
searching Unix manpages. I'd written a poor version based on the
Fl_Browser classes that I was never really happy with. After writing FMan
I seemed to get busy doing other things and didn't do a lot of FLTK
programming. About a year later I noticed on the FLTK lists one day some
references to FLTK 2.0 cvs being available for download in the bazar. I
downloaded it, fired up the essai style and got all warm and fuzzy. At
that point I decided I wanted to fix FMan to use 2.0 with styles and
schemes. After getting it to compile, I just wasn't happy with the
"table" widgets I had thrown together. Instead of fixing those,
I decided I could really use a full blown widget for other projects as
well. One of my primary concerns from the beginning was how I could
display spreadsheet data and database data and still have a functional
widget. The storage behind the two types of widgets seemed so different
and yet they looked almost identical. I also used on a fairly regular
basis True Grid under the Windows platform, and the panel widget under Borland
C++ Builder. I really wanted something that could provide a credible
substitute for all of those. A light went on, and I started writing the
FLTK Virtual Widgets.
Virtual Widgets in a nutshell are widgets where absolutely NO application
data is stored in the widget. This means as a user of the Virtual Widgets
you MUST create a child class and write your own function(s). After the
initial release it became apparent that for basic drawing I could make the
function you had to write very trivial. The fact that no data is stored in
the widgets is actually crucial to success for database and spreadsheet widgets
where the amount of data being managed is often much larger than available
memory. For instance a virtual widget will happily handle a 2 row table or
a 2 billion row table with no increase in memory required for the widget!
FLVW was designed to dynamically or statically linked. It's a relatively
light widget (at least for what it does). Here are some of the core
features that FLVW has:
- No data are stored in the widgets
- Support for "Trickle Down Virtual Styles"
(These are not 2.0 styles)
- Support for dynamic row (and column where applicable) sizes
- Support for fixed headers and footers in rows (and columns where
- Other features...
FLVW comes with complete free source code. FLVW is available under the
terms of the GNU Library General Public License.
Building and Installing
FLVW Under UNIX
In most cases you can just type "make". This will run configure with
the default of no options and then compile everything.
FLVW is available for download from:
- (there are no ftp sites)
To report a bug in FLVW, send an email to "firstname.lastname@example.org".
Please include the FLVW version, operating system & version, and
compiler that you are using when describing the bug or problem.