1 - Introduction to FLVW

The FLTK Virtual Widgets are a LGPL'd set C++ class widgets for FLTK.  

History of FLVW

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:


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.

Internet Resources

FLVW is available for download from:



(there are no ftp sites)

Reporting Bugs

To report a bug in FLVW, send an email to "lcharlto@mail.coin.missouri.edu". Please include the FLVW version, operating system & version, and compiler that you are using when describing the bug or problem.