|Last modified||2007-04-27 19:46:59|
FLTK (pronounced "fulltick") is a LGPL'd C++ graphical user interface toolkit for X (UNIX®), OpenGL®, Microsoft® Windows®, OS/X, and several other platforms. It was originally developed by Mr. Bill Spitzak.
FLTK was originally designed to be compatible with the Forms Library written for SGI machines (a derivative of this library called "XForms" is still used quite often). In that library all the functions and structures started with "fl_". This naming was extended to all new methods and widgets in the C++ library, and this prefix "FL" was taken as the name of the library.
After FL was released as open source, it was discovered it was impossible to search "FL" on the Internet, due to the fact that it is also the abbreviation for Florida. After much debating and searching for a new name for the toolkit, which was already in use by several people, Bill came up with "FLTK", with the bogus excuse that it stands for the "Fast Light Tool Kit".
FLTK was designed to be statically linked. This was done by splitting it into many small objects and designing it so that functions that are not used do not have pointers to them in the parts that are used, and thus do not get linked in. It is also designed so that all data used by the GUI, such as images and widget layout, can be inlined into source code.
This allows you to make an easy-to-install program, or to modify FLTK to the exact requirements of your application, without worrying about bloat.
However, FLTK works fine as a shared library. It is often included in this form on Linux distributions.
Here are some of the core features unique to FLTK:
sizeof(fltk:\:Widget) == 60.
The "core" (the "hello" program compiled & linked with a static FLTK library using gcc on a 486 and then stripped) is 82K.
The FLUID program (which includes every widget) is 352k.
Written directly atop Xlib (or WIN32) for maximum speed, and carefully optimized for code size and performance.
Precise low-level compatibility between the X11 and WIN32 version (only about 10% of the code is different).
Interactive user interface builder program. Output is human-readable and editable C++ source code.
Support for X11 overlay hardware (emulation if none and under WIN32.)
Very small & fast portable 2-D drawing library with PostScript style functions, to hide Xlib and WIN32.
OpenGL/Mesa drawing area widget.
Support for OpenGL overlay hardware on both X11 and WIN32. Emulation if none.
Text input fields with Emacs key bindings, X cut & paste, and foreign letter compose!
Compatibility header file for the GLUT library.
Compatibility header file for the XForms library.
Much too much to list here...
You can register yourself to be notified of the changes to this devpak if you log in.
Sorry, commenting disabled because of spam.