From 87dd7f0d23eba5c09e71ec6efeb34c6844f5e95f Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Tue, 29 Dec 1998 14:21:17 +0000 Subject: Revised documentation files. git-svn-id: file:///fltk/svn/fltk/trunk@177 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- documentation/intro.html | 260 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 260 insertions(+) create mode 100644 documentation/intro.html (limited to 'documentation/intro.html') diff --git a/documentation/intro.html b/documentation/intro.html new file mode 100644 index 000000000..39b73c225 --- /dev/null +++ b/documentation/intro.html @@ -0,0 +1,260 @@ + + + +

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 is currently +maintained by a small group of developers across the world with a +central repository in the US. + +

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 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 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 my 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 +incompatable anyway, Bill decided to incorporate as much as possible my +older ideas on 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. + +

Features

+ +FLTK was designed to be statically linked. This was done by splitting it +into many small objects and desigining 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 +has started being included on Linux distributions. + +

Here are some of the core features unique to FLTK: + +

+ +

Licensing

+ +FLTK comes with complete free source code. FLTK is available under the +terms of the GNU Library General Public +License. Contrary to popular belief, it can be used in commercial +software! (Even Bill Gates could use it.) + +

What Does "FLTK" Mean?

+ +FLTK was originally designed to be compatable 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", and even a bogus excuse that +it stands for "The Fast Light Tool Kit". + +

Building and Installing FLTK Under UNIX

+ +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, OpenGL +(or Mesa), and JPEG header and library files. Make sure that they +are in the standard include/library locations. + +

You can run configure yourself to get the exact setup you need. Type +"./configure <options>", where options are: + +

+
--enable-debug
+ +
Enable debugging code & symbols
+ +
--enable-shared
+ +
Enable generation of shared libraries
+ +
--bindir=/path
+ +
Set the location for executables [default = /usr/local/bin]
+ +
--libdir=/path
+ +
Set the location for libraries [default = /usr/local/lib]
+ +
--includedir=/path
+ +
Set the location for include files. [default = /usr/local/include]
+ +
--prefix=/dir
+ +
Set the directory prefix for files [default = /usr/local]
+
+ +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". + +

Building FLTK Under Micrsoft Windows

+ +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: + +

+ +

Building FLTK Under OS/2

+ +The current OS/2 build requires XFree86 for OS/2 to work. A native +Presentation Manager version has not been implemented yet (volunteers are +welcome!). + +

To build the XFree86 version of FLTK for OS/2, copy the appropriate +makeinclude and config files to the main directory and do a make: + +

+ +

Internet Resources

+ +FLTK is available on the 'net in a bunch of locations: + +
+
WWW
+ +
http://fltk.easysw.com
+ +
FTP
+ +
ftp://ftp.easysw.com/pub/fltk
+ftp://ftp.funet.fi/mirrors/ftp.easysw.com/pub/fltk
+ftp.northamerica.net/pub/ESP/fltk
+ +
EMail
+ +
fltk@easysw.com [see instructions below]
+ +
fltk-bugs@easysw.com [for reporting bugs]
+
+ +To send a message to the FLTK mailing list ("fltk@easysw.com") you must +first join the list. Non-member submissions are blocked to avoid +problems with SPAM... + +

To join the FLTK mailing list, send a message to "majordomo@easysw.com" +with "subscribe fltk" in the message body. A digest of this list is available +by subscribing to the "fltk-digest" mailing list. + +

Reporting Bugs

+ +To report a bug in FLTK, send an email to "fltk-bugs@easysw.com". Please +include the FLTK version, operating system & version, and compiler +that you are using when describing the bug or problem. + +

For general support and questions, please use the FLTK mailing list +at "fltk@easysw.com". + + + -- cgit v1.2.3