From 74bff0b300b7a44b92d0c41792657e04fbeaee0c Mon Sep 17 00:00:00 2001
From: Michael R Sweet The Fast Light Tool Kit ("FLTK", pronounced
+"fulltick") is a LGPL'd C++ graphical user interface
+toolkit for X (UNIX®), OpenGL®, and Microsoft®
+Windows® NT 4.0, 95, or 98. It was originally developed by
+Mr. Bill Spitzak and is currently maintained by a small group
+of developers across the world with a central repository in the
+US. It has always been Bill's belief that the GUI API of all modern
+systems is much too high level. Toolkits (even FL) are not what
+should be provided and documented as part of an operating system. The
system only has to provide arbitrary shaped but featureless windows, a
powerful set of graphics drawing calls, and a simple unalterable
-method of delivering events to the owners of the windows. NeXT (if
+method of delivering events to the owners of the windows. NeXT (if
you ignored NextStep) provided this, but they chose to hide it and
-tried to push their own baroque toolkit instead...
- Many of the ideas in FLTK were developed on a NeXT (but not
-using NextStep) in 1987 in a C toolkit Bill called "views". Here he
-came up with passing events downward in the tree and having the handle
-routine return a value indicating the used the event, and the
-table-driven menus. In general he was trying to prove that complex UI
-ideas could be entirely implemented in a user space toolkit, with no
-knowledge or support by the system. After going to film school for a few years, Bill worked at Sun
-Microsystems on the (doomed) NeWS project. Here he found an even
-better and cleaner windowing system, and he reimplemented "views" atop
-that. NeWS did have an unnecessarily complex method of delivering
-events which hurt it. But the designers did admit that perhaps the
-user could write just as good of a button as they could, and officially
-exposed the lower level interface. With the death of NeWS Bill realized that he would have to live with
-X. The biggest problem with X is the "window manager", which means
-that the toolkit can no longer control the window borders or drag the
-window around. At Digital Domain Bill discovered another toolkit, "Forms". Forms
-was similar to his work, but provided many more widgets, since it was
-used in many real applications, rather then as theoretical work. He
-decided to use Forms, except he integrated his table-driven menus into
-it. Several very large programs were created using this version of
-Forms. The need to switch to OpenGL and GLX, portability, and a desire to
-use C++ subclassing required a rewrite of Forms. This produced the
-first version of FLTK. The conversion to C++ required so many changes
-it made it impossible to recompile any Forms objects. Since it was
-incompatible anyway, Bill decided to incorporate his older ideas as
-much as possible by simplifying the lower level interface and the event
-passing mechanisim. Bill received permission to release it for free on the Internet,
-with the GNU general public license. Response from Internet users
-indicated that the Linux market dwarfed the SGI and high-speed GL
-market, so he rewrote it to use X for all drawing, greatly speeding it
-up on these machines. That is the version you have now. Digital Domain has since withdrawn support for FLTK. While Bill is
-no longer able to actively develop it, he still contributes to FLTK in
-his free time and is a part of the FLTK development team. 1 - Introduction to FLTK
-The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a LGPL'd
-C++ graphical user interface toolkit for X (UNIX®), OpenGL®, and
-Microsoft® Windows® NT 4.0, 95, or 98. It was originally developed by
-Mr. Bill Spitzak and is currently maintained by a small group of
-developers across the world with a central repository in the US.
+
+
+1 - Introduction to FLTK
+
+History of FLTK
-It has always been Bill's belief that the GUI API of all modern
-systems is much too high level. Toolkits (even FL) are not what
-should be provided and documented as part of an operating system. The
+
+
Many of the ideas in FLTK were developed on a NeXT (but +not using NextStep) in 1987 in a C toolkit Bill called +"views". Here he came up with passing events downward +in the tree and having the handle routine return a value +indicating the used the event, and the table-driven menus. In +general he was trying to prove that complex UI ideas could be +entirely implemented in a user space toolkit, with no knowledge +or support by the system.
+ +After going to film school for a few years, Bill worked at +Sun Microsystems on the (doomed) NeWS project. Here he found an +even better and cleaner windowing system, and he reimplemented +"views" atop that. NeWS did have an unnecessarily +complex method of delivering events which hurt it. But the +designers did admit that perhaps the user could write just as +good of a button as they could, and officially exposed the +lower level interface.
+ +With the death of NeWS Bill realized that he would have to +live with X. The biggest problem with X is the "window +manager", which means that the toolkit can no longer +control the window borders or drag the window around.
+ +At Digital Domain Bill discovered another toolkit, +"Forms". Forms was similar to his work, but provided +many more widgets, since it was used in many real applications, +rather then as theoretical work. He decided to use Forms, except +he integrated his table-driven menus into it. Several very large +programs were created using this version of Forms.
+ +The need to switch to OpenGL and GLX, portability, and a +desire to use C++ subclassing required a rewrite of Forms. +This produced the first version of FLTK. The conversion to C++ +required so many changes it made it impossible to recompile any +Forms objects. Since it was incompatible anyway, Bill decided +to incorporate his older ideas as much as possible by +simplifying the lower level interface and the event passing +mechanisim.
+ +Bill received permission to release it for free on the +Internet, with the GNU general public license. Response from +Internet users indicated that the Linux market dwarfed the SGI +and high-speed GL market, so he rewrote it to use X for all +drawing, greatly speeding it up on these machines. That is the +version you have now.
+ +Digital Domain has since withdrawn support for FLTK. While +Bill is no longer able to actively develop it, he still +contributes to FLTK in his free time and is a part of the FLTK +development team.
+Here are some of the core features unique to FLTK:
+ +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. 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. FLTK works fine as a shared library, though, and +is now included with several Linux distributions.
+ +Here are some of the core features unique to FLTK:
+FLTK comes with complete free source code. FLTK is available +under the terms of the GNU Library +General Public License with ammendments that allow for +static linking. Contrary to popular belief, it can be used in +commercial software - even Bill Gates could use it!
+FLTK was originally designed to be compatible with the Forms +Library written for SGI machines. 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 was taken as the name of the library. +It is almost impossible to search for "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", including a bogus excuse that it +stands for "The Fast Light Toolkit".
+FLTK uses GNU autoconf to configure itself for your UNIX platform. -The main things that the configure script will look for are the X11 and -OpenGL (or Mesa) header and library files. If these cannot be -found in the standard include/library locations you'll need to define the -CFLAGS, CXXFLAGS, and LDFLAGS environment -variables. For the Bourne and Korn shells you'd use:
+ +In most cases you can just type "make". This will +run configure with the default of no options and then compile +everything.
+ +FLTK uses GNU autoconf to configure itself for your UNIX +platform. The main things that the configure script will look +for are the X11 and OpenGL (or Mesa) header and library files. +If these cannot be found in the standard include/library +locations you'll need to define the CFLAGS, +CXXFLAGS, and LDFLAGS environment variables. +For the Bourne and Korn shells you'd use:
+CFLAGS=-Iincludedir; export CFLAGS CXXFLAGS=-Iincludedir; export CXXFLAGS LDFLAGS=-Llibdir; export LDFLAGS-For C shell and tcsh, use: + +
For C shell and tcsh, use:
+setenv CFLAGS "-Iincludedir" setenv CXXFLAGS "-Iincludedir" setenv LDFLAGS "-Llibdir"-By default configure will look for a C++ compiler named CC, c++, -g++, or gcc in that order. To use another compiler you need -to set the CXX environment variable: + +
By default configure will look for a C++ compiler named +CC, c++, g++, or gcc in that +order. To use another compiler you need to set the CXX +environment variable:
+-CXX=xlC; export xlC +CXX=xlC; export CXX setenv CXX "xlC"-The CC environment variable can also be used to override the -default C compiler (cc or gcc), which is used for a -few FLTK source files. -
You can run configure yourself to get the exact setup you need. Type -"./configure <options>", where options are:
+ +The CC environment variable can also be used to +override the default C compiler (cc or gcc), +which is used for a few FLTK source files.
+ +You can run configure yourself to get the exact setup you +need. Type "./configure <options>", where +options are:
+To install the library, become root and type "make install". This -will copy the "fluid" executable to "bindir", the header files to -"includedir", and the library files to "libdir".
+ +When the configure script is done you can just run the +"make" command. This will build the library, FLUID +tool, and all of the test programs.
+ +To install the library, become root and type "make +install". This will copy the "fluid" executable +to "bindir", the header files to +"includedir", and the library files to +"libdir".
+The second method is to use a GNU-based development tool with the -files in the "makefiles" directory. To build using one of these tools -simply copy the appropriate makeinclude and config files to the main -directory and do a make:
-+ +There are two ways to build FLTK under Microsoft Windows. +The first is to use the Visual C++ 5.0 project files under the +"visualc" directory. Just open (or double-click on) +the "fltk.dsw" file to get the whole shebang.
+ +The second method is to use a GNU-based development tool with +the files in the "makefiles" directory. To build +using one of these tools simply copy the appropriate +makeinclude and config files to the main directory and do a +make:
+ +
copy makefiles\Makefile.<env> Makefile make -- + +