Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 09e42447f3f24843128af1106fd56cc7 > files > 12

python-pyfltk-1.1.3-1mdv2010.0.i586.rpm

<HTML>
<BODY>

<H1 ALIGN="RIGHT"><A NAME="intro">1 - Introduction to FLTK/pyFLTK</A></H1>

<P>The Fast Light Tool Kit (&quot;FLTK&quot;, pronounced
&quot;fulltick&quot;) is a cross-platform C++ GUI toolkit for
UNIX&reg;/Linux&reg; (X11), Microsoft&reg; Windows&reg;, and
MacOS&reg; X. FLTK provides modern GUI functionality without the
bloat and supports 3D graphics via OpenGL&reg; and its built-in
GLUT emulation. 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 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 whether it 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
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>

<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
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
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.</P>

<P>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.</P>

<P>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.</P>

<P>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.</P>

<H2>History of pyFLTK</H2>
The Python wrappers for FLTK were started in 1999 by Kevin Dahlhausen. In the beginning, development went on in parallel with the Perl wrappers, maintained by Matt Kennedy. After the year 2000, neither Kevin nor Matt had the necessary resources to continue with the wrappers and both projects went into hibernation for a while. Finally, in 2003, the Python part was picked up by Andreas Held again, who thought it a pity that the combination of such great tools, namely Python and FLTK, was not in a better shape. Finally, in 2006 the first official release of pyFltk was done on Sourceforge. Meanwhile, while not a big player in the Python GUI market, pyFltk was able to recruit a small but dedicated group of followers.

<H2>Features</H2>

<P>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.</P>

<P>Here are some of the core features unique to FLTK:</P>

<UL>

	<LI>sizeof(Fl_Widget) == 64 to 92.</LI>

	<LI>The &quot;core&quot; (the &quot;hello&quot; program
	compiled &amp; linked with a static FLTK library using
	gcc on a 486 and then stripped) is 114K.</LI>

	<LI>The FLUID program (which includes every widget) is
	538k.</LI>

	<LI>Written directly atop core libraries (Xlib, WIN32 or
	Carbon) for maximum speed, and carefully optimized for
	code size and performance.</LI>

	<LI>Precise low-level compatability between the X11,
	WIN32 and MacOS versions - 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>

	<LI>Support for overlay hardware, with emulation if none
	is available.</LI>

	<LI>Very small &amp; fast portable 2-D drawing library
	to hide Xlib, WIN32, or QuickDraw.</LI>

	<LI>OpenGL/Mesa drawing area widget.</LI>

	<LI>Support for OpenGL overlay hardware on both X11 and
	WIN32, with emulation if none is available.</LI>

	<LI>Text widgets with Emacs key bindings, X cut &amp;
	paste, and  foreign letter compose!</LI>

	<LI>Compatibility header file for the GLUT library.</LI>

	<LI>Compatibility header file for the XForms library.</LI>

        

</UL>

In addition, some of the features of pyFLTK:
<UL>
      <LI>Native Python look-and-feel.</LI>
      <LI>flconvert: a tool to convert FLUID scripts to Python.</LI>
</UL>

<H2>Licensing</H2>

<P>FLTK comes with complete free source code. FLTK is available
under the terms of the <A href="license.html">GNU Library
General Public License</A> with exceptions that allow for static
linking. Contrary to popular belief, it can be used in
commercial software - even Bill Gates could use it!</P>
<P>The same license applies for pyFLTK; the Windows binary of 
pyFLTK also include the complete FLTK libraries.</P>

<H2>What Does &quot;FLTK&quot; Mean?</H2>

<P>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 &quot;fl_&quot;. 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 &quot;FL&quot; 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 &quot;FLTK&quot;, including a bogus excuse that it
stands for &quot;The Fast Light Toolkit&quot;.</P>


<H2>Internet Resources</H2>

<P>pyFLTK is available on Sourceforge:</P>

<DL>

	<DT>WWW
	<DD><A href="http://pyfltk.sourceforge.net/">http://pyfltk.sourceforge.net/</A>

	<DT>EMail</DT>
	<DD><A href="mailto:pyfltk-user@lists.sourceforge.net">pyfltk-user@lists.sourceforge.net</A> [see
	instructions below]
</DL>

<P>To send a message to the pyFLTK mailing list
(&quot;pyfltk-user@lists.sourceforge.net&quot;) you  must first join the list.
Non-member submissions are blocked to avoid  problems with
unsolicited email.</P>

<P>To join the pyFLTK mailing list, go to
<A href="https://lists.sourceforge.net/lists/listinfo/pyfltk-user">https://lists.sourceforge.net/lists/listinfo/pyfltk-user</A> and fill in the required information. 

<H2>Reporting Bugs</H2>

<P>To report a bug in pyFLTK, send an email to
<A href="mailto:pyfltk-user@lists.sourceforge.net">pyfltk-user@lists.sourceforge.net</A>, or fill in a bug report at <A href="http://sourceforge.net/projects/pyfltk/">http://sourceforge.net/projects/pyfltk/</A>. Please include the pyFLTK version,
and operating system &amp; version, 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>For general support and questions, please use the pyFLTK mailing list
at <A href="mailto:pyfltk-user@lists.sourceforge.net">pyfltk-user@lists.sourceforge.net</A>.</P>

</BODY>
</HTML>