Documentation update.

Changed documentation makefiles so docos aren't built by default.


git-svn-id: file:///fltk/svn/fltk/trunk@216 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet 1999-01-13 16:25:17 +00:00
parent 1341e2a429
commit d448f9a9cc
8 changed files with 148 additions and 843 deletions

View File

@ -1,5 +1,5 @@
#
# "$Id: Makefile,v 1.10 1999/01/07 19:16:47 mike Exp $"
# "$Id: Makefile,v 1.11 1999/01/13 16:25:14 mike Exp $"
#
# Top-level makefile for the Fast Light Tool Kit (FLTK).
#
@ -25,7 +25,7 @@
SHELL=/bin/sh
DIRS = src fluid test documentation
DIRS = src fluid test
all: makeinclude
@for dir in $(DIRS); do\
@ -71,5 +71,5 @@ makeinclude: configure configh.in makeinclude.in
./configure
#
# End of "$Id: Makefile,v 1.10 1999/01/07 19:16:47 mike Exp $".
# End of "$Id: Makefile,v 1.11 1999/01/13 16:25:14 mike Exp $".
#

150
README
View File

@ -3,75 +3,12 @@ README - Fast Light Tool Kit (FLTK) Version 1.0
WHAT IS FLTK?
FLTK (pronounced "fulltick") is a LGPL'd C++ graphical user
interface toolkit for X (UNIX(r)), OpenGL, and Microsoft(r)
Windows(r) 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.
FLTK was originally created to build in-house applications at
Digital Domain for image processing and 3D graphics. The original
author, Bill Spitzak, received permission from Digital Domain to
release it to the public domain in the hopes that it could be used
to make better, faster, and nicer-looking UNIX programs. Digital
Domain has since withdrawn support for FLTK, and Bill is no longer
able to actively develop it.
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 appli- cation, without worrying about bloat.
FLTK works fine as a shared library, though, and has started being
included on Linux distribu- tions.
Here are some of the core features unique to FLTK:
- sizeof(Fl_Widget) == 48.
- The "core" (the "hello" program compiled & linked with a
static FLTK library using gcc on a 486 and then stripped) is
39.5K.
- A program including every widget is less than 108K. Does not
use macros, templates, multiple inheritance, or exceptions.
- Written directly atop Xlib (or the WIN32 API) for maximum
speed, and carefully optimized for code size and
performance.
- Precise low-level compatability between the X and Windows
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 the X double buffering extension (emulation if
not available and under Windows.)
- Support for X overlay hardware (emulation if none and under
Windows.)
- Very small & fast portable 2-D drawing library to hide Xlib
and WIN32.
- OpenGL/Mesa drawing area widget.
- Support for OpenGL overlay hardware on both X and Windows.
Emulation if none.
- Text input fields with Emacs key bindings, X cut & paste, and
foreign letter compose!
- Compatability header file for the Glut library.
- Compatability header file for the XForms library.
- Much too much to list here...
The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a LGPL'd
C++ graphical user interface toolkit for X (UNIX(r)), OpenGL(r),
and Microsoft(r) Windows(r) 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.
LICENSING
@ -82,24 +19,20 @@ LICENSING
Gates could use it.)
WHAT DOES "FLTK" MEAN?
ON-LINE DOCUMENTATION
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".
All of the documentation is in HTML in the subdirectory
"documentation". The "index.html" file should be your starting
point. PostScript(tm) and PDF versions of this documentation is
also available from the FLTK web site at:
http://fltk.easysw.com/documentation
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.
with the default (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
@ -164,13 +97,6 @@ BUILDING FLTK UNDER OS/2
make
ON-LINE DOCUMENTATION
All of the documentation is in HTML in the subdirectory
"documentation". The "index.html" file should be your starting
point.
INTERNET RESOURCES
FLTK is available on the 'net in a bunch of locations:
@ -203,16 +129,6 @@ REPORTING BUGS
list at "fltk@easysw.com".
WINDOW MANAGERS
FLTK now uses X transient windows for modal() windows. This may
confuse some window managers. Mostly it causes them to not put any
borders on the modal windows and prevent you from moving them.
For FVWM I recommend you put "DecorateTransients" into your
~/.fvwmrc file.
MESA
Currently the best way to get OpenGL on your Linux system is to use
@ -222,48 +138,16 @@ MESA
Mesa is available at "http://www.ssec.wisc.edu/~brianp/Mesa.html".
The configure script will not see Mesa unless it is installed as
either libGL or libMesa. If you don't want to do this you will
either libGL or libMesaGL. If you don't want to do this you will
have to edit config.h (set HAVE_GL to 1) and makeinclude (add the
libraries).
HOW TO WRITE PROGRAMS THAT USE FLTK
The proper way to include FLTK header files is "#include
<FL/Fl_xyz.H>". If FLTK is installed this will work without
switches. If not you will need to provide a "-Idir" switch
pointing to this directory (all the headers are in ./FL).
Microsoft Windows developers please note: case *is* significant
under other operating systems, and the C standard uses the forward
slash (/) to separate directories. The following #include
directives are *not* recommended for portability reasons:
#include <fl\fl_xyz.h>
#include <fl/fl_xyz.h>
#include <FL\Fl_xyz.H>
Linker switches will be something like "-lfltk -L/usr/X11R6/lib
-lX11". Some programs may require "-lXext" or "-lm". If FLTK is
not installed in a standard location you will need to add a "-Ldir"
switch to point to the proper directory.
If you wish to distribute a program (in source form) that uses
FLTK, you are allowed by the license to directly include the
portions of FLTK that you need. This may make it easier for a user
to compile your program since they don't need to install the
library. Please provide instructions for the user on how they can
get the entire source of FLTK.
If you wish to distribute a compiled program without source code,
this is allowed also. See the file "COPYING" for details.
TRADEMARKS
Microsoft and Windows are registered trademarks of Microsoft
Corportation. UNIX is a registered trademark of the X/Open Group,
Inc.
Inc. OpenGL is a registered trademark of Silicon Graphics, Inc.
COPYRIGHT
@ -276,7 +160,7 @@ COPYRIGHT
Vincent Penne (vincent.penne@wanadoo.fr)
Michael Sweet (mike@easysw.com)
Carl Thompson (clip@home.net)
Matthias ??? (matthias@mediaone.net)
Matthias Melcher (matthias@mediaone.net)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License

View File

@ -1,199 +0,0 @@
README.win32 - How to compile for Windows
-----------------------------------------
Fltk has been reported to compile with GNU GCC compilers, with
MicroSoft Visual C++ version 4 and 5, and with Borland's C++ compiler
(sorry no info on that here).
----------------------------------------------------------------
Using GNU C compilers (MingW32 and/or Cygnus):
----------------------------------------------------------------
Edited from mail from Carl Thompson:
MINGW32 and Cygnus are both ports of the GNU compiler to win32. The
difference is that Cygnus will emulate a complete Unix development
environment including nearly all of the standard Unix system calls. This
allows Unix programs to be ported to win32 possibly without changing a
single line of source code. However, the applications it generates are big,
very slow, depend on the Cygnus DLL, and currently somewhat unstable. For
straight Windows applications / Libraries like FLTK that do not require Unix
system call emulation, MINGW32 is the superior choice. MINGW32 produces a
plain Windows binary that is only dependent on the normal Windows DLLs.
Some links for getting MINGW32:
http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/download.html
http://www.cygnus.com/misc/gnu-win32/index.html
ftp://objectcentral.com/mingw32
You will of course need GNU make for MINGW32 in addition to the regular
MINGW32 utilities. You also need the OpenGL header files which
apparently are not always included with mingw32, get them from the
above ftp site.
More instructions from Rick Sayre (at Pixar):
BTW, for what it's worth, here's the list of changes I have to make to get
fltk and the examples to build under MINGW32 (which I've switched to from
CYGWIN, since programs compiled under it use standard DLL's rather than the
extremely bugging cygwin.dll, and it just otherwise seems to work better):
Run ./configure
-
In makeinclude - change the CFLAGS and CXXFLAGS to add "-O2 -DWIN32"
change the libraries to "-lgdi32 -luser32" (add "-mwindows" to not get
a console)
-
In config.h - set HAVE_SCANDIR to 0. ./configure seems to do this
correctly now, but it was occasionally in the past setting it to 1
-
in src/Makefile:
change the "ar" command to use the "ar -M < ar.script" form. This
is needed only because I compile under Cygwin's B19 bash, which blows up in
all sorts of bad ways (hard resets[!]) on long command lines. More details
if you care, but most people might not. Just a warning.
-
in test/demo.menu
Change the paths to DOS form [blech!], don't use "&"
[A better idea would be to replace system() with a call that knows how
to fake a fork on Winblows]
-
in fluid/Makefile
Change the make install rules to reference "fluid.exe" for installing and
strip'ing, rather than "fluid"
I suspect that it is very likely not a good idea to try "make install" under
Windows. Instead, copy "libfltk.a" to "C:\MINGW32\LIB" (replace
"C:\MINGW32" with the directory in which you installed MINGW32). Then copy
the entire "FL" directory to "C:\MINGW32\INCLUDE".
From Gustavo Hime:
First, thank you for the nice piece of software, and congratulations
on the quality source code. Fltk compiles (and runs) beautifully on
all the systems I use (Irix 6.4,Solaris 2.5, RedHat Linux 5.0): the
exception was Windows, where compilation was rather hard.
I have just now managed to compile (satisfactorily) fltk on Win95
using Mingw32: I do not have MSVC (I don't believe in Microsoft
compilers :)), and we (the project I am engaged in) are going to use
mingw32 to port unix code to windows anyway, so mingw32 was the way to
go. Here is a list of what I had to do:
Modify ar -mwindows to ar -ruv in your makeinclude.mingw32.
Added -DCYGNUS to your *FLAGS variables (I am new to mingw32, I don't
know what it defines to id itself, but they are so close I don't think
it matters much).
Disable GL overlay in win32/config.h (shouldn't this be the default?).
Added dummy makedepend files to directories fluid and src.
Created empty lib directory.
Fixed scroll.C line 83 (implicit typecast from int to const char * in
function call, mingw32 has a problem with this)
Did not fix list_visuals.C (weird code there, where is the main
functionfor win32?)
And finally, the hardest: downloaded the OpenGL headers for mingw32
fromftp://objectcentral.com/mingw32. These are not included in the
mingw32 distribution, and it took me a couple of hours to find them on
the net. It would be nice to add a note about this in the fltk
documentation, and I'll send an e-mail asking them to add these
headers to the mingw32 distribution.
Once again, great code. With mingw32, fltk and opengl, I can
imediatellyport all my old windows code to unix, and I no longer need
to waste 300+ mb of hard-drive on stupid borland compilers.
----------------------------------------------------------------
Using MSVC++:
----------------------------------------------------------------
If you have MSVC++ 5.0, double click the "fltk.dsw". Make the "fltk"
project current, and build it. This will create the library in
../lib/fltkd.lib. To build the demo programs, select the "demo"
project and build it. To run the demos run the demo project.
I only have Pentium and Alpha NT machines running MSVC++ 5.0. Other
users have reported success compiling fltk on Windowe95, and using
version 4 of MSVC++, Borland's C++ compiler, and various ports of GCC
to windows (to use these, look at the "makeinclude" files in
../makefiles).
If you want to make non-console apps you have to do something special,
and that differs on each compiler/linker package. For MSVC++ the
secret switch is:
/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
For cygwin/mingw32 and perhaps some other compilers based on gcc put
this in the makeinclude file:
LDLIBS =-lgdi32 -luser32 -mwindows
There are no makefiles, for MSVC++ or any other compiler, because I
don't know how to write them (the ones dumped by MSVC++ are useless
and unreadable).
----------------------------------------------------------------
Other compilers:
----------------------------------------------------------------
I have heard that Borland C++ is usable.
You probably need to start with the Unix Makefiles. There is one in
../src, one in ../fluid, and one in ../test. Edit these as necessary
and compile. You must add "-DWIN32" to your compiler switches.
The biggest problem seems to be differences in the windows.h header
files (MicroSoft copyrighted theirs?). Some functions and macros have
different names or are missing.
The MSVC++ "makefiles" are totally useless. Ignore that crap.
Start with the Unix makefiles, which list all the necessary source
files. Don't try to compile the files ending in _win32.C, they are
#included by other files if WIN32 is defined.
When compiling the symbol WIN32 must be defined (most compilers do
this?) and you have to set the include path so the file win32/config.h
is seen when the code does #include <config.h>. You may need to use
some sort of switch to force the compiler to compile the files with
C++ rather than C. On MSVC++ this is the obvious acronym "/TP" :-)
Not doing these steps will result in lots of cryptic errors.
----------------------------------------------------------------
Known problems and ToDo list:
----------------------------------------------------------------
It does not work if you turn on full optimizations in VC++. I have
been told this is due to bugs in VC++, but if anybody can find a way
around them it would be nice... (the "optimize" settings in the
project files only do partial optimization and work ok).
If program is deactivated, Fl::wait() does not return until it is
activated again, even though things happen, like redraws. This could
break some programs that rely on executing code after Fl::wait().
Fl_Gl_Window::can_do_overlay() returns true until the first time it
attempts to draw an overlay, and then correctly returns whether or not
there is overlay hardware.
Cut text contains ^J rather than ^M^J to break lines. This is a
feature, not a bug.
Fl_Window::fullscreen() not implemented (should take over the screen
without a title bar). Currently does maximize instead.
Reports of clipping problems on '95. Can't reproduce on NT.
Need to import .bmp files into fluid. Wonko has the specs.
Can't set icon of windows.
Transparent parts of pixmaps do not really work.

View File

@ -1,411 +0,0 @@
Fltk modification history <pre>
9/22/98: uses X regions for update
9/16/98: added Fl_Widget::output(), works like inactive but draws normally
9/15/98: multi-browser has some keyboard navigation
9/10/98: fl_ok, fl_cancel, fl_yes, fl_no pointers added to change language
9/09/98: default_font() & default_size() added, made style demo
9/09/98: fixed so child windows activate/deactivate correctly
9/08/98: does not set colormap, relies on WM_COLORMAP_WINDOWS working
9/08/98: added default_box, _font, _size to Fl_Input & Fl_Browser
9/04/98: Fl_Tabs changes cursor to show what you can move
9/03/98: child windows respond to FL_SHOW/FL_HIDE (so OpenGL in Fl_Tabs works!)
9/03/98: Fl_Group::add() calls Fl_Group::remove() if child already in a group
9/02/98: moved textsize/font/color from Fl_Browser to Fl_Browser_.
9/02/98: most boxtypes draw inactive when widget is inactive
9/01/98: Fl_Browser can store a void* data() value with each line
9/01/98: added Fl_Browser_::has_scrollbar(uchar)
8/31/98: Fl_Valuator step 'A' value is now a double instead of int
8/27/98: transparecy in Fl_Pixmap handled correctly! (X only)
8/26/98: fl_rotate(0,90,180,270,-90) fixed to not have math rounding errors
8/26/98: added fl_point and fl_begin/end_points drawing functions
8/24/98: Added ability to #define WINDOWS_STYLE in config.h (try it)
8/24/98: Made default color be 75% gray to match KDE & Gnome (and Windows)
8/23/98: All widgets draw their labels gray if inactive (try inactive demo)
8/23/98: Fl_Color, Fl_Font, Fl_Boxtype, Fl_Labeltype enumerations
(this may break some existing code and need casts added)
8/21/98: filename_list() and filename_isdir() made public and documented
8/21/98: fl_draw_image will use 64 bit data types if available (Cray fix)
8/18/98: fluid can set the output file names (on preferences panel)
8/18/98: fluid lets you set textfont() and textsize() of Fl_Menu_ widgets
8/16/98: Added Fl_Scrollbar, and used for Fl_Browser & Fl_Scroll
8/14/98: Fluid didn't put variable into .h file if 'o' variable not needed
8/14/98: Vastly improved display on MSWindows in 8-bit mode, matches X 8bit mode
8/11/98: fixed stupid error that broke the menus on MSWindows
8/11/98: Fl::args(a,b,&i,c) no longer depends on initial value of i
8/10/98: fixed the mouse position during grab() on MSWindows!
8/10/98: some bugs with resizing in fluid fixed, does not raise panel
8/10/98: Fl::event_key() returns unshifted (lowercase) keysym always
8/09/98: Tested on NT, compilation errors there fixed
8/07/98: Fl_Scroll can force scrollbars on at all times (add 4 to type())
8/07/98: renamed one of the Fl_Menu_Item methods from "popup" to "pulldown"
8/06/98: you no longer have to call show() on child windows!!!
8/06/98: added move() to Fl_Browser (Curtis please test!)
8/06/98: Some fixes to resizable() handling, it does not need to be a child
8/06/98: & in Fl_Choice menu item is not drawn in the widget itself
8/05/98: Fl_Menu_Button::type(POPUP) allows box() to work for menu
8/04/98: fixed Fl_Menu_Button to not call menu item twice
7/30/98: Fl_Browser scrolls to bottom when add() is done
7/30/98: fixed some bugs with the horizontal scrollbars in Fl_Browser_
7/29/98: kludge so it can simulate MSWindows menus (try the menubar demo)
7/27/98: you can set a menu's boxtype & color! Try it in fluid
7/26/98: float/int input fields do not prevent letters from being shortcuts
7/26/98: fluid reads .xpm and .xbm files with comments inserted at start
7/25/98: added fl_password() popup utility
7/25/98: added horizontal scrollbar to Fl_Browser
7/25/98: fixed fluid crash on startup (Fl::get_system_colors opens display)
7/18/98: new menu behavior so moving mouse does not wreck keyboard navigation
7/17/98: added Fl::own_colormap() and Fl::get_system_colors() init functions
7/16/98: fixed overlay on Reality Engine
7/14/98: fl_begin_offscreen() clears clip region, fl_end_offscreen restores it
7/14/98: uses gettimeofday() instead of times() (faster & more portable?)
7/10/98: fl_color() and gl_color() work in the overlays!
7/09/98: inverted meaning & default of the FL_ALIGN_WRAP bit (INCOMPATABLE!)
7/08/98: fixed (brute force) the titlebar & grab during menus on MSWindows
7/08/98: shortcuts fixed so they work when mouse is not pointing at any window
7/07/98: fixed FL_NO_LABEL and some other symbols output by fluid
7/06/98: Fl_Gl_Window overlay was missized if window resize before redraw_overlay
7/06/98: Fl_Window::resize() changes size immediately, does not wait for X
7/05/98: Fl::wait(), Fl::check(), and Fl::run() return 0 when no windows
6/30/98: buttons and toggle/radio menu items write value() to .fl file
6/29/98: made output of fluid more readable
6/29/98: fluid writes callbacks inside a class as real (not static) methods
6/27/98: added classes to fluid
6/24/98: emulated Fl::set_atclose(), lots of programs use it!
6/24/98: Added Fl_Pack. Fl_Scroll still needs some work to use this
6/23/98: Removed (most of) the unused-variable errors in fluid output
6/22/98: Renamed Fl_Menu to Fl_Menu_Item (typedef for back compatability)
6/22/98: Added @|| symbol so you have complete tape deck controls
6/22/98: MSWindows menus now come out atop the icon dock
6/22/98: FL_MENU_RADIO draws diamond rather than square
6/22/98: X fl_polygon changed to match the MSWindows version
6/19/98: Fixed bug on Solaris (sprintf in fl_font.C)
6/18/98: Fixed Alt-GR on foreign keyboards under MSWindows
6/17/98: added Fl_Menu_::global() so shortcuts work everywhere
6/16/98: Tried to make Fl_Scroll better, children can change their size
6/15/98: Fl_Window::callback replaces Fl::atclose (which is deleted)
6/15/98: FL_INT_INPUT & FL_FLOAT_INPUT just draw text red if it is illegal
6/15/98: Fl_Valuator::format() is a virtual function
6/14/98: fixed fl_draw_image on 8-bit truecolor visuals
6/10/98: simplified forms compatability: Fl_Group::end_forms() replaces stuff
6/09/98: Added "New" to fluid, fixed some bugs with redisplay
fltk-0.99
6/07/98: fluid no longer puts 'if (!w) {...}' around code for window w
6/07/98: Can compile shared library on Linux (matches Debian release)
6/05/98: added Fl_Menu_::popup(x,y,w,h) and Fl_Menu_Button::popup()
6/05/98: greatly speeded up truecolor visuals by not doing XAllocColor
6/03/98: zero-sized fl_clip() works
6/02/98: fluid cut file moved from /tmp to $HOME for security reasons
6/01/98: MSWindows color palette support on 8-bit displays
5/27/98: fluid can set shortcuts of buttons and menu items
5/26/98: integer (instead of string) button & menu shortcuts (INCOMPATABLE)
5/23/98: cut/paste for MSWindows
5/23/98: detects if OpenGL overlay exists on MSWindows
5/22/98: fixes for IRIX 6.2 n32 compiler
5/20/98: added code, codeblock, decl, and declblock to fluid
5/20/98: you can pick the items off of menus in fluid
5/19/98: fluid can now create menus & menu items!
5/19/98: Fl_Bitmap, Fl_Pixmap, Fl_Image now have label(Fl_Menu) method
5/17/98: Can use hardware overlay planes in Fl_Gl_Window on MSWindows
5/16/98: Fl_Light_Button uses down_box() to determine light shape
5/13/98: fixed many annoying bugs on MSWindows
5/10/98: new Fl::grab(Fl_Widget*) replaces modal(Fl_Widget*)
5/05/98: Fl_Gl_Window does not use scissor anymore
5/04/98: changed Fl_Color_Chooser to use floating point rgb values
5/04/98: added Fl_Browser @-commands to set font, color, size, background
5/04/98: added Fl_Browser::column_widths() for multi-column display
5/04/98: renamed Fl_Browser::specialkey() to Fl_Browser::format_char()
5/04/98: fixed float/int input where they never work after 1st illegal char.
5/03/98: fixed bitmaps on MSWindows
4/27/98: renamed Fl_Slider::size() to Fl_Slider::slider_size()
4/27/98: renamed fl_pixmap_size to fl_measure_pixmap
4/27/98: added labeltype measure function, tabs & menus use it
4/26/98: added labeltype/font/size/color to Fl_Menu
4/26/98: '_' in menus replaced with FL_MENU_DIVIDER bit (!!! INCOMPATABLE !!!)
4/21/98: swapped OK/cancel positions on popups to match gtk/gnome
4/20/98: added Fl_Window::non_modal()
4/19/98: '/' in menus replaced with FL_SUBMENU bit (!!! INCOMPATABLE !!!)
4/16/98: fluid puts extra_code for windows & groups *after* adding children
4/15/98: fixed numericsort to work for more than 10 digits.
4/15/98: merges adjacent mouse-moved events (should have motion history)
4/15/98: event mask for children windows left on (helps for using fl_xevent)
4/12/98: added Fl_Input::static_value(x) that avoids doing malloc & copy
4/12/98: you can insert ^@ (nul) into Fl_Input, Fl_Output, and cut/paste
4/12/98: secret fl_encoding variable may be set to override iso8859-1
4/11/98: added FL_ALIGN_NOWRAP & FL_ALIGN_CLIP
4/10/98: MSWindows supports OpenGL!
4/10/98: uses transient_for property for modal windows
4/05/98: added Fl::modal(window) to fix menu problems
4/05/98: better drawing of dials
3/22/98: replaced Fl::abort() with: Fl::warning(), Fl::error(), Fl::fatal()
3/22/98: added Fl::set_fonts() to get all the fonts from server
3/21/98: really neato new color chooser
3/17/98: new fl_draw_image with callback for arbitrary image data formats
3/17/98: mucho improvement in the MSWindows port, it is now usable!
3/16/98: new fl_show_colormap (single pop-up array of all colors)
3/13/98: fixed borders under KDE's kwm.
3/13/98: Uses X regions to update window, new fl_clip functions
3/08/98: Round buttons now draw much more attractively
3/05/98: Fl_Tabs draws the tabs much nicer
3/05/98: Fl_Input now does compose-character sequences
3/04/98: Fluid: changing objects with panel open saves changes to old objects
3/03/98: Uses select() instead of poll() even on sgi (fixes Irix 6.3)
2/26/98: Added Fl::get_key(n), Fl::event_key(n), Fl::event_state(n)
2/23/98: Added Fl_Tile (maximum of 2 across and 2 down children)
2/07/98: Esc key (if not used for anything else) will close window
2/07/98: Adds ":0.0" to -display if missing
2/06/98: Rearrangement to make a MSWindows port easier
2/02/98: Does not die on X errors
2/01/98: Controls for valuators added to fluid
2/01/98: Added Fl_Value_Input and Fl_Value_Output
1/29/98: Added Fl_Valuator base class for sliders, dials, etc
1/29/98: fixed colormap-allocation hang on Solaris
1/27/98: fixed the red-window problem in fluid on IRIX 6.2
1/26/98: changed float to double everywhere to shut MSVC++ up
1/23/98: Fl_Group does begin() in constructor (dangerous?)
1/23/98: Greatly simplified how to subclass groups and redraw them
1/22/98: Added Fl_Widget::damage(bits,x,y,w,h) to do clipped redrawing
1/22/98: New Fl_Bitmap::draw() methods (and Fl_Pixmap, Fl_Image)
1/22/98: Word wrap in the labels
1/21/98: Renamed Fl_Object to Fl_Widget, to match common toolkit terminology
fltk-0.98
1/17/98: renamed the library to fltk
1/14/98: added fl_curve
1/14/98: fl_arc really works (finally!) no more 16-sided circles
1/14/98: replaced fl_end() with fl_end_line(), etc
1/12/98: Does not crash with very large WM_COMMAND strings
1/12/98: Cleaner menus that work ok w/o overlay or save-behind
1/12/98: Fluid objects may be named "a.x" or "a->x" or similar
1/12/98: Fl_Double_Window supported in fluid with a kludge
FL-0.98
1/9/98: Fl_Group now uses array, eliminated next(), prev(), first(), last()
1/7/98: Removed many uninteresting test programs to make distribution smaller
1/7/98: Removed Fl_Window::set_atclose(), use Fl::set_atclose() instead
1/6/98: Reduction of number of .html files used for documentation
1/6/98: added event_is_click(), renamed reset_clicks to event_is_click(0)
12/15/97: Huge improvements to menus: can pop up with any item selected
and Fl_Choice uses this to pop up lists with arrow on item,
underscore shortcuts added to Fl_Menu_Button and Fl_Choice
and Fl_Menu_Bar.
12/12/97: Fl_Gl_Window::invalidate() added, use this instead of valid(0)
12/11/97: New navigation keys in the menu code!
12/11/97: Microsloth-style underscore shortcuts on all buttons
12/07/97: Fixed Xdbe (it sent backbuffer rather than window toXDBEswap...())
12/05/97: mandelbrot demo created
12/05/97: Fl_Window::make_current() for incremental redrawing added
12/05/97: fl_overlay_rect() and fl_overlay_erase() to xor selection box
12/02/97: Shortcut keys to scroll browser up/down (finally!)
FL-0.97
11/30/97: Many bugs with overlay + Xdbe windows fixed
11/30/97: Numeric keypad types numbers even if NumLock off (not portable?)
11/28/97: Fluid frees unused images
11/25/97: Added Fl_Object::size_range(...) to control resizing
11/25/97: Fluid can label objects with xbm, xpm, or gif images!
11/24/97: FL_DRAG & FL_MOVE set Fl::event_time()
11/23/97: minimal update for sliders (less blinking of large sliders)
11/17/97: renamed Fl_Input_::handle to handletext to prevent C++ warnings
11/17/97: minimal update for Fl_Browser (less blinking)
11/17/97: ability to set and check edge thickness of box types
11/16/97: Added Xdbe (double buffer extension) support to Fl_Double_Window
11/11/97: fixed crash if FL_RELEASE deletes Fl::pushed() object
11/11/97: ./configure makes a config.h, detects many more things
11/10/97: can use 32bit visuals with xrgb data layout
11/10/97: restored code for arbitrary 32 bit visual color masks
11/10/97: fl_draw_pixmap shares buffer with fl_draw_image
FL-0.96
11/06/97: Uses GNU ./configure script to build
11/05/97: Made fluid work with Fl_Tabs
11/03/97: Fl_Browser_ has show_scrollbar() virtual func for subclass
to override to change type of scrollbar or force it on
11/03/97: Fl_Slider::slider(uchar) attribute to set box type for slider
11/03/97: no limit on how many points are sent to fl_vertex()
11/03/97: added FL_OVAL_BOX, FL_OFLAT_BOX, FL_OSHADOW_BOX, FL_OVAL_FRAME
10/29/97: made fluid read fd files from Forms and XForms fdesign (sort of)
10/28/97: fluid works! I am ready to release it. Needs directions
10/28/97: renamed Fl_Text to Fl_Output
10/28/97: added Fl_Text_Adjuster
10/28/97: fixed double window crash when fl_gc is not set correctly
10/22/97: made Fl_Text be a subclass of Fl_Input_
10/16/97: mucho work on fluid! almost there...
10/15/97: added Fl_Fill_Dial
10/15/97: changed fl_circle to use XDrawArc
10/14/97: minimal update of Fl_Input, to reduce blinking
10/14/97: Removed all uses of fl->, replaced with Fl:: "namespace"
10/14/97: moved setting of colors, fonts, boxtypes, labeltypes to Fl::
10/14/97: fixed the gray ramp to really go from black to white
10/10/97: Cleanup of button and button subclasses
10/9/97: Changed "style" to "font" for clarity
10/8/97: Added engraved/embossed/shadow label types
10/6/97: Added when() to many objects
10/1/97: Fl_Overlay_Window will use hardware overlay if possible
10/1/97: Fixed shortcuts for Fl_Choice to do redraw
9/29/97: Much better fl_draw_image for 8-bit visuals
9/26/97: Fixed gl_color() when drawing into gl overlay
9/25/97: Fl_Gl_Window simulates overlay if hardware not provided
9/22/97: Added FL_ACTIVATE/DEACTIVATE/HIDE/SHOW event types
9/18/97: Click/shift+click on Fl_Adjuster moves it by increments
9/18/97: cleanup & simplification of window creation and drawing code
9/18/97: fl_draw_into(xid), Fl_Window::make_xid(vis) added
9/18/97: Fixed background pixel support to not try so hard
FL-0.95
8/25/97: Forms file chooser is emulated using libFL file chooser
8/25/97: Uses background_pixel if possible to speed up box drawing
8/23/97: XForms .86 compatability added, required many changes
8/22/97: Added fl_draw_pixmap and Fl_Pixmap (simple version only!)
8/19/97: The BIG FLIP! Turned coordinate system over so +y is down
8/08/97: Glut compatability added
8/06/97: added fl_color(r,g,b) to set rgb color to draw in
8/05/97: added fl_draw_image for color pictures (!)
8/03/97: made x.H and put X-specific fl variables in there
7/27/97: greately improved fl_font_enumerate to return sizes
7/26/97: Much cleanup, rearrangement of function and header file names
7/20/97: Added overlay drawing ability to Fl_Gl_Window
7/17/97: Celebrated Titanic being done! Well, mostly...
6/25/97: Make -DUSE_X true all the time, GL fl_draw functions removed
6/10/97: fluid finally produced code that compiles! Still a long
ways to go...
6/8/97: Added fl->add_xevent_handler so your program can get at those
XExtension events. Rewrote fl->selection_owner so it uses
this, mostly to test it. Added Fl_Implementation.H header
to src to clean up public header files.
6/5/97: Added Fl_Window::show(argc,argv,i) so that standard switches
can be passed to the main window in a window-system
independent way. Removed xclass() property from Fl_Window,
as this replaces it.
6/5/97: Deferred XMapWindow till fl->flush(), to allow above to work
4/15/97: needdraw() renamed to damage(), for clarity.
4/15/97: code rearranged so you don't have to link -lGL if you don't use it
4/15/97: #ifdef MESA will cause Fl_Gl_Window to take advantage of
the fact that the back buffer is unchanged by damage.
4/18/97: Can use poll() instead of select(). To make your machine
use this, see Fl_Poll.H and turn on USE_POLL and turn off USE_SELECT.
FL-0.94
3/26/97: Fl_Browser_ (and Fl_Browser) preserves the position(), even
if it is below the data.
3/26/97: Renamed resizebox() to resizable()
3/25/97: Made all Fl object instance variables be static.
3/23/97: Added focus(), belowmouse(), pushed(), and selection_owner()
tracking to the Fl object. Since only one object can be this
at a time, this gets rid of redundant storage in every object
such as the pushed_ field that was on the buttons. Also
greatly simplified Fl_Group.
3/21/97: Added glXReleaseBuffersMESA if #ifdef MESA
3/7/97: Renamed some source files to avoid name conflicts on MSWindows.
3/5/97: Fl_Menu returns item selected, caller now does the callback.
3/5/97: Renamed Fl_Menubar to Fl_Menu_Bar.
3/5/97: Improvements to how Fl_Input scrolls.
2/11/97: Installs the window's colormap when the mouse enters window.
2/5/97: Cleaned up the close and exit behavior. The only way to stop
the close box from closing a window is to subclass it and
change the response to FL_CLOSE. The callback is done,
however, before closing the window. Added exit() and error()
methods to Fl class, which you can "override" by defining
your own versions in your source code.
1/24/97: Restored setting of XSizeHints (many window managers ignore
the Motif window information).
FL-0.93
1/23/97: Got it to compile and run (with -DNO_GL) on Dec Alpha Unix!
Mostly this meant getting rid of trailing commas on enum lists.
1/20/97: DDForms-compatable resize behavior, where it scales
everything inside the resizebox. Also fixed resizing of a
group inside a window.
1/12/97: typing a shift key on some Xlib versions no longer produces
a character. Fixed display of characters shown as \xxx.
1/12/97: Got it to compile and run (with -DNO_GL) on Alpha Linux.
1/11/97: Fl_Browser now has a topline() attribute that you can get
and set, as well as the Fl_Browser_::position() attribute.
topline() is in lines, position() is in pixels.
1/11/97: General code clean up and size reduction.
1/11/97: Fl_Group::focus(x) fixed to always work
1/8/97: fl_file_chooser uses the scandir(), much faster!
1/7/97: Removed setting of XSizeHints
12/96: More work on fluid
FL-0.92
10/31/96: New fl->wait() and fl->check() handling so that flip
book program would work.
10/20/96: Removed calls to glFlush when not in a glx context. This
bug caused Mesa 2.0 to crash. Fixing it required extensive
rewriting of the Fl_Window base classes and virtual functions.
10/../96: Lots of work done on writing fluid
10/09/96: Added the Fl_Input_ base class.
09/25/96: All constructors of the form Fl_x(x,y,w,h,label=0).
09/16/96: More changes to Fl_Input, fixed the scrolling behavior,
made it not crash if you paste huge amounts of text in.
09/11/96: Fixed minimal update when you resize a subwindow.
09/10/96: Constructor no longer does add().
09/07/96: FL_SHORTCUT is sent mouse window rather than focus window
09/07/96: Added ^Z=undo, ^X=cut, ^C=copy ^V=paste to Fl_Input, and
made double-click select words and triple-click select lines.
08/23/96: Tries to send maximum size in XSizeHints
FL-0.91
08/21/96: fluid uses Fl_Overlay_Window
08/20/96: Added Fl_Overlay_Window
08/19/96: Added Fl_Double_Window to provide double buffering
08/19/96: Documentation for subclassing windows
08/15/96: Fixed bugs with overriding resize() on Fl_Window
08/15/96: Erases menus before unmap, to fix colormap flash on O2
08/14/96: Replaced <strings.h> with <string.h>
08/14/96: Added makeinclude.svr4 (tested on a "SINEX-Z" os)
08/14/96: Added scandir.c from the GNU C library for SVR4
08/13/96: makefiles have LIBNAME, VERSION, and REVISION switches
08/13/96: added (completely untested!) makeinclude.linux.so to make
a shared library. I recommend however that if you are making
programs for any kind of distribution that you use the static
version of the library, rather than relying on users correctly
installing the shared one!
08/13/96: fixed *many* occurances of wrong scoping of for(int x;;)
08/13/96: patched out warning messages for enumerations from gcc.
08/13/96: fixed crash for fixed-pitch XFonts (per_char ptr is NULL)
08/13/96: some fixes to Fl_Chart so output matches Forms.
08/13/96: Insure radio button not pressed if mouse released outside it
08/13/96: Clicking in the value box of a Value_Slider does not move slider.
08/13/96: Added switches so arrows can't navigate between text fields
08/13/96: Initializes some stuff it should have in Fl_Menu_Button.
08/13/96: Non-multiline Fl_Inputs do not treat ^J characters as
special, for instance ^K always deletes to the end even if
there are imbedded newlines.
08/13/96: Tab inserts a tab in Fl_MultiLine_Input. Use Ctrl+Tab to navigate
08/10/96: renamed from libFL to libFl to avoid existing SGI library
08/10/96: the static Fl_Object method readqueue has been moved to
a method on the Fl object.
08/10/96: the static Fl_Object method draw_box() renamed fl_box() and
put in Draw.H
08/10/96: fl_label_bitmap has been renamed fl_draw and put in Draw.H
08/10/96: fixed the deactivated menu items to not draw over the right edge.
08/09/96: fl_clip works in both X and GL windows when USE_X is defined.
08/09/96: the static Fl_Object methods event_inside and test_shortcut
have been moved to methods on the Fl object.
The static Fl_Object method shortcut_text has been renamed
to a function fl_shortcut_text and put in the Draw.H header.
08/09/96: many internal changes to Fl_Group and Fl_Window to support
minimal update. expose() is no longer a virtual function and
is private to Fl_Window. Fl_Object::flush() and qredraw()
deleted. New methods: draw_child(), redraw_child(), and
done_drawing(), for calling by draw() implementations.
See (not yet written) drawing documentation.
08/05/96: to make it possible to do minimal update, Fl_Group must draw
everything outside of the object's bounding box. So draw_label()
changed to only draw FL_INSIDE or FL_CENTER alignements. New
method draw_outside_label() added to be called by Fl_Group
to draw the other labels. This simplified Fl_Slider and
Fl_LightButton some, too.

View File

@ -1,5 +1,5 @@
#
# "$Id: Makefile,v 1.4 1999/01/07 19:17:09 mike Exp $"
# "$Id: Makefile,v 1.5 1999/01/13 16:25:15 mike Exp $"
#
# Documentation makefile for the Fast Light Tool Kit (FLTK).
#
@ -23,106 +23,124 @@
# Please report all bugs and problems to "fltk-bugs@easysw.com".
#
HTMLFILES = \
src/preface.html \
src/intro.html \
src/basics.html \
src/common.html \
src/editor.html \
src/drawing.html \
src/events.html \
src/subclassing.html \
src/fluid.html \
src/opengl.html \
src/widgets.html \
src/Fl_Adjuster.html \
src/Fl_Box.html \
src/Fl_Browser.html \
src/Fl_Browser_.html \
src/Fl_Button.html \
src/Fl_Chart.html \
src/Fl_Check_Button.html \
src/Fl_Choice.html \
src/Fl_Clock.html \
src/Fl_Color_Chooser.html \
src/Fl_Counter.html \
src/Fl_Dial.html \
src/Fl_Double_Window.html \
src/Fl_End.html \
src/Fl_Float_Input.html \
src/Fl_Free.html \
src/Fl_Gl_Window.html \
src/Fl_Group.html \
src/Fl_Hold_Browser.html \
src/Fl_Input.html \
src/Fl_Input_.html \
src/Fl_Int_Input.html \
src/Fl_Light_Button.html \
src/Fl_Menu_.html \
src/Fl_Menu_Bar.html \
src/Fl_Menu_Button.html \
src/Fl_Menu_Item.html \
src/Fl_Menu_Window.html \
src/Fl_Multi_Browser.html \
src/Fl_Multiline_Input.html \
src/Fl_Multiline_Output.html \
src/Fl_Output.html \
src/Fl_Overlay_Window.html \
src/Fl_Pack.html \
src/Fl_Positioner.html \
src/Fl_Repeat_Button.html \
src/Fl_Return_Button.html \
src/Fl_Roller.html \
src/Fl_Round_Button.html \
src/Fl_Scroll.html \
src/Fl_Scrollbar.html \
src/Fl_Secret_Input.html \
src/Fl_Select_Browser.html \
src/Fl_Single_Window.html \
src/Fl_Slider.html \
src/Fl_Tabs.html \
src/Fl_Tile.html \
src/Fl_Timer.html \
src/Fl_Valuator.html \
src/Fl_Value_Input.html \
src/Fl_Value_Output.html \
src/Fl_Value_Slider.html \
src/Fl_Widget.html \
src/Fl_Window.html \
src/functions.html \
src/enumerations.html \
src/glut.html \
src/forms.html \
src/osissues.html \
src/license.html
# Where to find HTMLDOC...
HTMLDOC = htmldoc
all: index.html fltk.ps.gz fltk.pdf
# What media size to use:
# "Universal" size - minimum of US Letter and A4
MEDIA = --size universal
# Standard US Letter
#MEDIA = --size letter
# Standard A4
#MEDIA = --size a4
# 7x8.5in (1/2 legal page) with reduced-size fonts
#MEDIA = --size 7x8.5in --fontsize 9.0
# These are the HTML "source" files; the files are formatted in the
# order listed...
HTMLFILES = \
preface.html \
intro.html \
basics.html \
common.html \
editor.html \
drawing.html \
events.html \
subclassing.html \
fluid.html \
opengl.html \
widgets.html \
Fl_Adjuster.html \
Fl_Box.html \
Fl_Browser.html \
Fl_Browser_.html \
Fl_Button.html \
Fl_Chart.html \
Fl_Check_Button.html \
Fl_Choice.html \
Fl_Clock.html \
Fl_Color_Chooser.html \
Fl_Counter.html \
Fl_Dial.html \
Fl_Double_Window.html \
Fl_End.html \
Fl_Float_Input.html \
Fl_Free.html \
Fl_Gl_Window.html \
Fl_Group.html \
Fl_Hold_Browser.html \
Fl_Input.html \
Fl_Input_.html \
Fl_Int_Input.html \
Fl_Light_Button.html \
Fl_Menu_.html \
Fl_Menu_Bar.html \
Fl_Menu_Button.html \
Fl_Menu_Item.html \
Fl_Menu_Window.html \
Fl_Multi_Browser.html \
Fl_Multiline_Input.html \
Fl_Multiline_Output.html \
Fl_Output.html \
Fl_Overlay_Window.html \
Fl_Pack.html \
Fl_Positioner.html \
Fl_Repeat_Button.html \
Fl_Return_Button.html \
Fl_Roller.html \
Fl_Round_Button.html \
Fl_Scroll.html \
Fl_Scrollbar.html \
Fl_Secret_Input.html \
Fl_Select_Browser.html \
Fl_Single_Window.html \
Fl_Slider.html \
Fl_Tabs.html \
Fl_Tile.html \
Fl_Timer.html \
Fl_Valuator.html \
Fl_Value_Input.html \
Fl_Value_Output.html \
Fl_Value_Slider.html \
Fl_Widget.html \
Fl_Window.html \
functions.html \
enumerations.html \
glut.html \
forms.html \
osissues.html \
license.html
all: fltk.ps fltk.pdf
clean:
rm -f index.html toc.html doc*.html *.gif *.jpg
rm -f fltk.ps fltk.ps.gz
rm -rf fltk.d
rm -f fltk.ps
rm -f fltk.pdf
depend:
install:
index.html: $(HTMLFILES)
fltk.d/index.html: $(HTMLFILES)
@echo "Generating HTML documentation..."
@rm -f index.html toc.html doc*.html *.gif *.jpg
@htmldoc -d . -t html --toclevels 2 --title src/FL.gif $(HTMLFILES)
@-mkdir fltk.d
@-rm -f fltk.d/*
@$(HTMLDOC) -d fltk.d -t html --verbose --toclevels 2 --title FL.gif $(HTMLFILES)
fltk.ps.gz: $(HTMLFILES)
fltk.ps: $(HTMLFILES)
@echo "Generating PostScript documentation..."
@rm -f fltk.ps fltk.ps.gz
@htmldoc -f fltk.ps --jpeg=90 --duplex --verbose --toclevels 2 --title src/FL.gif $(HTMLFILES)
@gzip -9 fltk.ps
@$(HTMLDOC) -f fltk.ps --jpeg=90 --duplex --verbose --toclevels 2 --title FL.gif $(HTMLFILES)
fltk.pdf: $(HTMLFILES)
@echo "Generating PDF documentation..."
@rm -f fltk.pdf
@htmldoc -f fltk.pdf --compression=9 --jpeg=90 --duplex --verbose --toclevels 2 --title src/FL.gif $(HTMLFILES)
@$(HTMLDOC) -f fltk.pdf --compression=9 --jpeg=90 --duplex --verbose --toclevels 2 --title FL.gif $(HTMLFILES)
#
# End of "$Id: Makefile,v 1.4 1999/01/07 19:17:09 mike Exp $".
# End of "$Id: Makefile,v 1.5 1999/01/13 16:25:15 mike Exp $".
#

21
documentation/README Normal file
View File

@ -0,0 +1,21 @@
README
------
The documentation in this directory is in HTML format. To read it just
point your browser at the "index.html" file. A slightly more browseable
version is accessable at the FLTK web site, along with PostScript(tm)
and PDF versions of the manual.
You can generate your own (printable) copy of the manual by typing
"make" in this directory. You will need to have the HTMLDOC software
installed on your system. HTMLDOC can be downloaded from:
http://www.easysw.com/~mike/htmldoc
The default media size is 8.27x11.0" (210x279mm), which is the lesser
of A4 and US Letter sizes. You can change this in the makefile by
uncommenting the corresponding media size or defining your own.
If you find any typos, things that are unclear, or would like to
contribute an example, section, or chapter to the FLTK manual, please
contact Michael Sweet (mike@easysw.com).

View File

@ -1,5 +1,5 @@
REAME.lib
---------
README.lib
----------
This README file is a placeholder for library files on your system.
Under Microsoft Windows a successful build will contain debug

View File

@ -1,5 +1,5 @@
#
# "$Id: Makefile.os2x,v 1.4 1999/01/07 19:17:14 mike Exp $"
# "$Id: Makefile.os2x,v 1.5 1999/01/13 16:25:17 mike Exp $"
#
# Top-level makefile for the Fast Light Tool Kit (FLTK).
#
@ -35,8 +35,6 @@ all:
echo "=== making test ==="
touch test/makedepend
cd test & $(MAKE)
echo "=== making documentation ==="
cd documentation & $(MAKE)
install:
echo "=== installing src ==="
@ -45,8 +43,6 @@ install:
echo "=== installing fluid ==="
touch fluid/makedepend
cd fluid & $(MAKE) install
echo "=== installing documentation ==="
cd documentation & $(MAKE) install
depend:
echo "=== making src dependencies ==="
@ -58,8 +54,6 @@ depend:
echo "=== making test dependencies ==="
touch test/makedepend
cd test & $(MAKE) depend
echo "=== making documentation dependencies ==="
cd documentation & $(MAKE) depend
clean:
-@ rm -f core config.cache *.o *.bck
@ -72,9 +66,7 @@ clean:
echo "=== cleaning test ==="
touch test/makedepend
cd test & $(MAKE) clean
echo "=== cleaning documentation ==="
cd documentation & $(MAKE) clean
#
# End of "$Id: Makefile.os2x,v 1.4 1999/01/07 19:17:14 mike Exp $".
# End of "$Id: Makefile.os2x,v 1.5 1999/01/13 16:25:17 mike Exp $".
#