Doco updates.

Remove unneeded files from the makefiles directory.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1735 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet
2001-11-26 21:40:14 +00:00
parent c93c134710
commit ecd2c821be
13 changed files with 835 additions and 1261 deletions
+242 -149
View File
@@ -1,70 +1,18 @@
<HTML><BODY>
<HTML>
<BODY>
<H1 ALIGN=RIGHT><A NAME=basics>2 - FLTK Basics</A></H1>
This chapter will teach you the basics of compiling programs that use
FLTK.
<H2>Naming</H2>
All public symbols in FLTK start with the characters 'F' and 'L':
<UL>
<LI>Functions are either <TT>Fl::foo()</TT> or <TT>fl_foo()</TT>. </LI>
<LI>Class and type names are capitalized: <TT>Fl_Foo</TT>. </LI>
<LI><A href=enumerations.html#Enumerations>Constants and enumerations</A>
are uppercase: <TT>FL_FOO</TT>. </LI>
<LI>All header files start with <TT>&lt;FL/...&gt;</TT>. </LI>
</UL>
<H2>Header Files</H2>
The proper way to include FLTK header files is:
<UL>
<PRE>
#include &lt;FL/Fl_xyz.H&gt;
</PRE>
</UL>
<B>Microsoft Windows developers please note:</B> case *is* significant
under other operating systems, and the C standard uses the forward
slash (/) to separate directories. <i>Do not do any of the following:</i>
<UL>
<PRE>
#include &lt;FL\Fl_xyz.H&gt;
#include &lt;fl/fl_xyz.h&gt;
#include &lt;Fl/fl_xyz.h&gt;
</PRE>
</UL>
<H2>Compiling Programs with Standard Compilers</H2>
Under UNIX (and under Microsoft Windows when using the GNU development
tools) you will probably need to tell the compiler where to find the
header files. This is usually done using the <TT>-I</TT> option:
<UL>
<PRE>
CC -I/usr/local/include ...
gcc -I/usr/local/include ...
</PRE>
</UL>
Similarly, when linking your application you will need to tell the
compiler to use the FLTK library:
<UL>
<PRE>
CC ... -L/usr/local/lib -lfltk -lXext -lX11 -lm
gcc ... -L/usr/local/lib -lfltk -lXext -lX11 -lm
</PRE>
</UL>
<H2>Compiling Programs with Microsoft Visual C++</H2>
In Visual C++ you will need to tell the compiler where to find the
FLTK header files. This can be done by selecting &quot;Settings&quot; from the
&quot;Project&quot; menu and then changing the &quot;Preprocessor&quot; settings under the
&quot;C/C++&quot; tab. You will also need to add the FLTK and WinSock (WSOCK32.LIB)
libraries to the &quot;Link&quot; settings.
<P>You can build your Microsoft Windows applications as Console or
WIN32 applications. If you want to use the standard C <TT>main()</TT>
function as the entry point, FLTK includes a <TT>WinMain()</TT>
function that will call your <TT>main()</TT> function for you. </P>
<P><I>Note: The Visual C++ 5.0 optimizer is known to cause problems with
many programs. We only recommend using the &quot;Favor Small Code&quot;
optimization setting.</I> The Visual C++ 6.0 optimizer seems to be much
better and can be used with the "optimized for speed" setting.</P>
<P>This chapter teaches you the basics of compiling programs
that use FLTK.</P>
<H2>Writing Your First FLTK Program</H2>
All programs must include the file <TT>&lt;FL/Fl.H&gt;</TT>. In addition the
program must include a header file for each FLTK class it uses.
Listing 1 shows a simple &quot;Hello, World!&quot; program that uses FLTK to
display the window.
<P>All programs must include the file <TT>&lt;FL/Fl.H&gt;</TT>.
In addition the program must include a header file for each
FLTK class it uses. Listing 1 shows a simple &quot;Hello,
World!&quot; program that uses FLTK to display the window.</P>
<UL>
<P><I>Listing 1 - &quot;hello.cxx&quot;</I>
<PRE>
@@ -83,111 +31,256 @@ int main(int argc, char **argv) {
window-&gt;show(argc, argv);
return Fl::run();
}
</PRE>
</UL>
After including the required header files, the program then creates a
window:
<UL>
<PRE>
</PRE></UL>
<P>After including the required header files, the program then creates a
window:</P>
<UL><PRE>
Fl_Window *window = new <A href=Fl_Window.html#Fl_Window>Fl_Window</A>(300,180);
</PRE>
</UL>
and a box with the &quot;Hello, World!&quot; string in it:
<UL>
<PRE>
</PRE></UL>
<P>and a box with the &quot;Hello, World!&quot; string in it:</P>
<UL><PRE>
Fl_Box *box = new <A href=Fl_Box.html#Fl_Box>Fl_Box</A>(20,40,260,100,&quot;Hello, World!&quot;);
</PRE>
</UL>
Next, we set the type of box and the size, font, and style of the label:
<UL>
<PRE>
</PRE></UL>
<P>Next, we set the type of box and the size, font, and style of the label:</P>
<UL><PRE>
box-&gt;box(FL_UP_BOX);
box-&gt;<A href=Fl_Widget.html#Fl_Widget.labelsize>labelsize</A>(36);
box-&gt;<A href=Fl_Widget.html#Fl_Widget.labelfont>labelfont</A>(FL_BOLD+FL_ITALIC);
box-&gt;<A href=Fl_Widget.html#Fl_Widget.labeltype>labeltype</A>(FL_SHADOW_LABEL);
</PRE>
</UL>
Finally, we show the window and enter the FLTK event loop:
<UL>
<PRE>
</PRE></UL>
<P>Finally, we show the window and enter the FLTK event loop:</P>
<UL><PRE>
window-&gt;<A href=Fl_Group.html#Fl_Group.end>end</A>();
window-&gt;<A href=Fl_Window.html#Fl_Window.show>show</A>(argc, argv);
return <A href=functions.html#run>Fl::run</A>();
</PRE>
</UL>
The resulting program will display the window below. You can quit the
program by closing the window or pressing the ESCape key.
<P ALIGN=CENTER><IMG src="hello.C.gif" alt="Hello, World! Window"></P>
</PRE></UL>
<P>The resulting program will display the window in Figure 2-1.
You can quit the program by closing the window or pressing the
<KBD>ESC</KBD>ape key.</P>
<P ALIGN="CENTER"><IMG src="hello.C.gif" alt="Hello, World! Window"><BR>
<I>Figure 2-1: The Hello, World! Window</I></P>
<H3>Creating the Widgets</H3>
The widgets are created using the C++ <TT>new</TT> operator. For
most widgets the arguments to the constructor are:
<UL>
<PRE>
<P>The widgets are created using the C++ <TT>new</TT> operator. For
most widgets the arguments to the constructor are:</P>
<UL><PRE>
Fl_Widget(x, y, width, height, label)
</PRE>
</UL>
<P>The <TT>x</TT> and <TT>y</TT> parameters determine where the widget
or window is placed on the screen. In FLTK the top left corner of the
window or screen is the origin (i.e. x = 0, y = 0) and the units are in
pixels. </P>
<P>The <TT>width</TT> and <TT>height</TT> parameters determine the size
of the widget or window in pixels. The maximum widget size is
typically governed by the underlying window system or hardware. </P>
<p><tt>label</tt> is a pointer to a character string to label the
widget with or <tt>NULL</tt>. If not specified the label defaults to
<tt>NULL</tt>. The label string must be in static storage such as a
string constant because FLTK does not make a copy of it - it just uses
the pointer.
</PRE></UL>
<P>The <TT>x</TT> and <TT>y</TT> parameters determine where the
widget or window is placed on the screen. In FLTK the top left
corner of the window or screen is the origin (i.e. x = 0, y =
0) and the units are in pixels.</P>
<P>The <TT>width</TT> and <TT>height</TT> parameters determine
the size of the widget or window in pixels. The maximum widget
size is typically governed by the underlying window system or
hardware.</P>
<P><tt>label</tt> is a pointer to a character string to label
the widget with or <tt>NULL</tt>. If not specified the label
defaults to <tt>NULL</tt>. The label string must be in static
storage such as a string constant because FLTK does not make a
copy of it - it just uses the pointer.</P>
<H3>Get/Set Methods</H3>
<tt>box-&gt;box(FL_UP_BOX)</tt> sets the type of box the
Fl_Box draws, changing it from the default of <tt>FL_NO_BOX</tt>, which means
that no box is drawn. In our &quot;Hello, World!&quot; example we use <TT>
FL_UP_BOX</TT>, which means that a raised button border will be drawn
around the widget. You can learn more about boxtypes in <A href="common.html#boytypes">
Chapter 3</A>.
<p>You could examine the boxtype in by doing
<tt>box->box()</tt>. Fltk uses method name overloading to make
short names for get/set methods. A "set" method is always of the form
"void&nbsp;name(type)", and a "get" method is always of the form
"type&nbsp;name()&nbsp;const".
<P><tt>box-&gt;box(FL_UP_BOX)</tt> sets the type of box the
Fl_Box draws, changing it from the default of
<tt>FL_NO_BOX</tt>, which means that no box is drawn. In our
&quot;Hello, World!&quot; example we use <TT>FL_UP_BOX</TT>,
which means that a raised button border will be drawn around
the widget. You can learn more about boxtypes in
<A href="common.html#boytypes">Chapter 3</A>.</P>
<P>You could examine the boxtype in by doing
<tt>box->box()</tt>. FLTK uses method name overloading to make
short names for get/set methods. A "set" method is always of
the form "void&nbsp;name(type)", and a "get" method is always
of the form "type&nbsp;name()&nbsp;const".</P>
<H3>Redrawing After Changing Attributes</H3>
<p>Almost all of the set/get pairs are very fast, short inline
functions and thus very efficient. However, <i>the "set" methods do
not call <TT>redraw()</TT></i> - you have to call it yourself. This greatly
reduces code size and execution time. The only common exception is
<tt>value()</tt> which calls <TT>redraw()</TT> if necessary.
<P>Almost all of the set/get pairs are very fast, short inline
functions and thus very efficient. However, <i>the "set"
methods do not call <TT>redraw()</TT></i> - you have to call it
yourself. This greatly reduces code size and execution time.
The only common exception is <tt>value()</tt> which calls
<TT>redraw()</TT> if necessary.</P>
<H3>Labels</H3>
All widgets support labels. In the case of window widgets, the label
is used for the label in the title bar. Our example program calls the <A href=Fl_Widget.html#Fl_Widget.labelfont>
<TT>labelfont</TT></A>, <A href=Fl_Widget.html#Fl_Widget.labelsize><TT>
labelsize</TT></A>, and <A href=Fl_Widget.html#Fl_Widget.labeltype><TT>
labeltype</TT></A> methods.
<P>The <TT>labelfont</TT> method sets the typeface and style that is
used for the label, which for this example we are using <TT>FL_BOLD</TT>
and <TT>FL_ITALIC</TT>. You can also specify typefaces directly. </P>
<P>The <TT>labelsize</TT> method sets the height of the font in pixels. </P>
<P>The <TT>labeltype</TT> method sets the type of label. FLTK supports
normal, embossed, shadowed, symbol, and image labels internally, and
more types can be added as desired. </P>
<P>A complete list of all label options can be found in <A href=common.html#labels>
Chapter 3</A>. </P>
<P>All widgets support labels. In the case of window widgets,
the label is used for the label in the title bar. Our example
program calls the <A href=Fl_Widget.html#Fl_Widget.labelfont>
<TT>labelfont</TT></A>,
<A href=Fl_Widget.html#Fl_Widget.labelsize><TT> labelsize</TT></A>,
and <A href=Fl_Widget.html#Fl_Widget.labeltype><TT>labeltype</TT></A>
methods.</P>
<P>The <TT>labelfont</TT> method sets the typeface and style
that is used for the label, which for this example we are using
<TT>FL_BOLD</TT> and <TT>FL_ITALIC</TT>. You can also specify
typefaces directly. </P> <P>The <TT>labelsize</TT> method sets
the height of the font in pixels. </P> <P>The <TT>labeltype</TT>
method sets the type of label. FLTK supports normal, embossed,
and shadowed labels internally, and more types can be added as
desired.</P>
<P>A complete list of all label options can be found in
<A href="common.html#labels">Chapter 3</A>.</P>
<H3>Showing the Window</H3>
The <TT>show()</TT> method shows the widget or window. For windows
<P>The <TT>show()</TT> method shows the widget or window. For windows
you can also provide the command-line arguments to allow users to
customize the appearance, size, and position of your windows.
customize the appearance, size, and position of your windows.</P>
<H3>The Main Event Loop</H3>
FLTK provides the <A href=functions.html#run><TT>Fl:run()</TT></A>
method to enter a standard event processing loop. This is equivalent
to the following code:
<UL>
<PRE>
<P>All FLTK applications (and most GUI applications in general)
are based on a simple event processing model. User actions such
as mouse movement, button clicks, and keyboard activity generate
events that are sent to an application. The application may then
ignore the events or respond to the user, typically by redrawing
a button in the "down" position, adding the text to an input
field, and so forth.</P>
<P>FLTK also supports idle, timer, and file pseudo-events that
cause a function to be called when they occur. Idle functions
are called when no user input is present and no timers or files
need to be handled - in short, when the application is not doing
anything. Idle callbacks are often used to update a 3D display
or do other background processing.</P>
<P>Timer functions are called after a specific amount of time
has expired. They can be used to pop up a progress dialog after
a certain amount of time or do other things that need to happen
at more-or-less regular intervals. FLTK timers are not 100%
accurate, so they should not be used to measure time intervals,
for example.</P>
<P>File functions are called when data is ready to read or
write, or when an error condition occurs on a file. They are
most often used to monitor network connections (sockets) for
data-driven displays.</P>
<P>FLTK applications must periodically check
(<TT>Fl::check()</TT>) or wait (<TT>Fl::wait()</TT>) for events
or use the <A href="functions.html#run"><TT>Fl:run()</TT></A>
method to enter a standard event processing loop. Calling
<TT>Fl::run()</TT> is equivalent to the following code:</P>
<UL><PRE>
while (Fl::wait());
</PRE>
</PRE></UL>
<P><TT>Fl::run()</TT> does not return until all of the windows
under FLTK control are closed by the user or your program.</P>
<H2>Compiling Programs with Standard Compilers</H2>
<P>Under UNIX (and under Microsoft Windows when using the GNU development
tools) you will probably need to tell the compiler where to find the
header files. This is usually done using the <TT>-I</TT> option:</P>
<UL><PRE>
CC -I/usr/local/include ...
gcc -I/usr/local/include ...
</PRE></UL>
<P>The <TT>fltk-config</TT> script included with FLTK can be
used to get the options that are required by your compiler:</P>
<UL><PRE>
CC `fltk-config --cxxflags` ...
</PRE></UL>
<P>Similarly, when linking your application you will need to tell the
compiler to use the FLTK library:</P>
<UL><PRE>
CC ... -L/usr/local/lib -lfltk -lXext -lX11 -lm
gcc ... -L/usr/local/lib -lfltk -lXext -lX11 -lm
</PRE></UL>
<P>The <TT>fltk-config</TT> script included with FLTK can be
used to get the options that are required by your linker:</P>
<UL><PRE>
CC ... `fltk-config --ldflags`
</PRE></UL>
<H2>Compiling Programs with Microsoft Visual C++</H2>
<P>In Visual C++ you will need to tell the compiler where to
find the FLTK header files. This can be done by selecting
&quot;Settings&quot; from the &quot;Project&quot; menu and then
changing the &quot;Preprocessor&quot; settings under the
&quot;C/C++&quot; tab. You will also need to add the FLTK and
WinSock (WSOCK32.LIB) libraries to the &quot;Link&quot;
settings.</P>
<P>You can build your Microsoft Windows applications as Console or
WIN32 applications. If you want to use the standard C <TT>main()</TT>
function as the entry point, FLTK includes a <TT>WinMain()</TT>
function that will call your <TT>main()</TT> function for you.</P>
<P><I>Note: The Visual C++ 5.0 optimizer is known to cause problems with
many programs. We only recommend using the &quot;Favor Small Code&quot;
optimization setting.</I> The Visual C++ 6.0 optimizer seems to be much
better and can be used with the "optimized for speed" setting.</P>
<H2>Naming</H2>
<P>All public symbols in FLTK start with the characters 'F' and 'L':</P>
<UL>
<LI>Functions are either <TT>Fl::foo()</TT> or
<TT>fl_foo()</TT>.</LI>
<LI>Class and type names are capitalized:
<TT>Fl_Foo</TT>.</LI>
<LI><A href="enumerations.html">Constants and
enumerations</A> are uppercase: <TT>FL_FOO</TT>.</LI>
<LI>All header files start with <TT>&lt;FL/...&gt;</TT>.
</LI>
</UL>
<TT>Fl::run()</TT> does not return until all of the windows under FLTK
control are closed by the user or your program.
<H2>Header Files</H2>
<P>The proper way to include FLTK header files is:</P>
<UL><PRE>
#include &lt;FL/Fl_xyz.H&gt;
</PRE></UL>
<P><B>Microsoft Windows developers please note:</B> case *is*
significant under other operating systems, and the C standard
uses the forward slash (/) to separate directories. <i>Do not
use any of the following include lines:</i></P>
<UL><PRE>
#include &lt;FL\Fl_xyz.H&gt;
#include &lt;fl/fl_xyz.h&gt;
#include &lt;Fl/fl_xyz.h&gt;
</PRE></UL>
</BODY>
</HTML>
+493 -268
View File
File diff suppressed because it is too large Load Diff
+93 -51
View File
@@ -1,43 +1,45 @@
<HTML>
<BODY>
<H1 ALIGN="RIGHT"><A NAME="intro">1 - Introduction to FLTK</A></H1>
<P>The Fast Light Tool Kit (&quot;FLTK&quot;, pronounced
&quot;fulltick&quot;) is a LGPL'd C++ graphical user interface
toolkit for X (UNIX&reg;), OpenGL&reg;, and Microsoft&reg;
Windows&reg; 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.</P>
Windows&reg;. Work is also underway to support FLTK under MacOS
X. 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.</P>
<H2>History of FLTK</H2>
<P>It has always been Bill's belief that the GUI API of all modern
systems is much too high level. Toolkits (even FL) are <I>not</I> 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 <I>unalterable</I>
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...</P>
<P>It has always been Bill's belief that the GUI API of all
modern systems is much too high level. Toolkits (even FLTK) are
<I>not</I> 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 <I>unalterable</I> 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.</P>
<P>Many of the ideas in FLTK were developed on a NeXT (but
<I>not</I> using NextStep) in 1987 in a C toolkit Bill called
&quot;views&quot;. 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
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.</P>
<P>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
&quot;views&quot; atop that. NeWS did have an unnecessarily
Sun Microsystems on the (doomed) NeWS project. Here he found an
even better and cleaner windowing system, and he reimplemented
&quot;views&quot; 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.</P>
good of a button as they could, and officially exposed the lower
level interface.</P>
<P>With the death of NeWS Bill realized that he would have to
live with X. The biggest problem with X is the &quot;window
@@ -45,7 +47,7 @@ manager&quot;, which means that the toolkit can no longer
control the window borders or drag the window around.</P>
<P>At Digital Domain Bill discovered another toolkit,
&quot;Forms&quot;. Forms was similar to his work, but provided
&quot;Forms&quot;. 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
@@ -101,8 +103,8 @@ is now included with several Linux distributions.</P>
performance.</LI>
<LI>Precise low-level compatability between the X11 and
WIN32 version (only about 10% of the code is
different).</LI>
WIN32 version - only about 10% of the code is
different.</LI>
<LI>Interactive user interface builder program. Output is
human-readable and editable C++ source code.</LI>
@@ -235,13 +237,22 @@ to &quot;bindir&quot;, the header files to
<H2>Building FLTK Under Microsoft Windows</H2>
<P>There are two ways to build FLTK under Microsoft Windows.
<P>There are three ways to build FLTK under Microsoft Windows.
The first is to use the Visual C++ 5.0 project files under the
&quot;visualc&quot; directory. Just open (or double-click on)
the &quot;fltk.dsw&quot; file to get the whole shebang.</P>
<P>The second method is to use a GNU-based development tool with
the files in the &quot;makefiles&quot; directory. To build
<P>The second method is to use the <TT>configure</TT> script
included with the FLTK software; this has only been tested with
the CygWin tools:</P>
<UL><PRE>
sh configure --prefix=C:/FLTK
make
</PRE></UL>
<P>The final method is to use a GNU-based development tool with
the files in the &quot;makefiles&quot; directory. To build
using one of these tools simply copy the appropriate
makeinclude and config files to the main directory and do a
make:</P>
@@ -252,19 +263,23 @@ make
</PRE></UL>
<H3>Using the Visual C++ DLL Library</H3>
The &quot;fltkdll.dsp&quot; project file builds a DLL-version of the FLTK
library. Because of name mangling differences between PC compilers (even
between different versions of Visual C++!) you can only use the DLL that
is generated with the same version compiler that you built it with.
<P>When compiling an application or DLL that uses the FLTK DLL, you will need
to define the <tt>FL_DLL</tt> preprocessor symbol to get the correct linkage
commands embedded within the FLTK header files.
<P>The &quot;fltkdll.dsp&quot; project file builds a DLL-version
of the FLTK library. Because of name mangling differences
between PC compilers (even between different versions of Visual
C++!) you can only use the DLL that is generated with the same
version compiler that you built it with.</P>
<P>When compiling an application or DLL that uses the FLTK DLL,
you will need to define the <tt>FL_DLL</tt> preprocessor symbol
to get the correct linkage commands embedded within the FLTK
header files.</P>
<H2>Building FLTK Under OS/2</H2>
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!).
<P>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!).</P>
<p>The current set of Makefiles/configuration failes assumes that
EMX 0.9d and libExt
@@ -274,18 +289,28 @@ is installed.
<P>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: </P>
<UL>
<PRE>
<UL><PRE>
copy makefiles\Makefile.os2x Makefile
make
</PRE>
</UL>
</PRE></UL>
<H2>Building FLTK Under MacOS X</H2>
<P>The current version of FLTK requires the XFree86 X server for
Darwin. Follow the instructions for building FLTK under
UNIX.</P>
<P>Future versions of FLTK will provide a Carbon-based window
interface, so XFree86 will no longer be required.</P>
<H2>Internet Resources</H2>
FLTK is available on the 'net in a bunch of locations:
<P>FLTK is available on the 'net in a bunch of locations:</P>
<DL>
<DT>WWW
<DD><A href="http://www.fltk.org">http://www.fltk.org</A>
<DD><A href="http://www.fltk.org/">http://www.fltk.org/</A>
<DT>FTP
<DD><A HREF="ftp://ftp.fltk.org/pub/fltk">California, USA (ftp.fltk.org)</A>
@@ -299,18 +324,35 @@ FLTK is available on the 'net in a bunch of locations:
instructions below]
<DD><A href="mailto:fltk-bugs@fltk.org">fltk-bugs@fltk.org</A> [for
reporting bugs]
<DT>News</DT>
<DD><A HREF="news://news.easysw.com">news.easysw.com</A></DD>
</DL>
To send a message to the FLTK mailing list (&quot;fltk@fltk.org&quot;) you
must first join the list. Non-member submissions are blocked to avoid
problems with unsolicited email.
<P>To send a message to the FLTK mailing list
(&quot;fltk@fltk.org&quot;) you must first join the list.
Non-member submissions are blocked to avoid problems with
unsolicited email.</P>
<P>To join the FLTK mailing list, send a message to
&quot;majordomo@fltk.org&quot; with &quot;subscribe fltk&quot; in the message body. A
digest of this list is available by subscribing to the &quot;fltk-digest&quot;
mailing list. </P>
&quot;majordomo@fltk.org&quot; with &quot;subscribe fltk&quot;
in the message body. A digest of this list is available by
subscribing to the &quot;fltk-digest&quot; mailing list.</P>
<H2>Reporting Bugs</H2>
To report a bug in FLTK, send an email to &quot;fltk-bugs@fltk.org&quot;.
Please include the FLTK version, operating system &amp; version, and
compiler that you are using when describing the bug or problem.
<P>To report a bug in FLTK, send an email to
&quot;fltk-bugs@fltk.org&quot;. Please include the FLTK version,
operating system &amp; version, and compiler that you are using
when describing the bug or problem. We will be unable to provide
any kind of help without that basic information.</P>
<P>Bugs can also be reported to the "fltk.bugs" newsgroup or on the
SourceForge bug tracker pages.</P>
<P>For general support and questions, please use the FLTK mailing list
at &quot;fltk@fltk.org&quot;. </P>
</BODY></HTML>
at &quot;fltk@fltk.org&quot; or one of the newsgroups.</P>
</BODY>
</HTML>
+3 -1
View File
@@ -56,7 +56,9 @@ interfaces.</P>
<LI><A HREF="license.html#license">Appendix F - Operating System Issues</A></LI>
<LI><A HREF="license.html#license">Appendix G - Software License</A></LI>
<LI><A HREF="migration.html">Appendix G - Migrating from FLTK 1.0.x to FLTK 1.1.x</A></LI>
<LI><A HREF="license.html#license">Appendix H - Software License</A></LI>
</UL>