summaryrefslogtreecommitdiff
path: root/documentation
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-11-27 02:09:45 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-11-27 02:09:45 +0000
commit772f94ca1ac8aec25aa4ccc337454cf76c5ea700 (patch)
treeeb19e21c32e6df3720dec46b00c579676fc4dff0 /documentation
parent372ec09b3d4e4d920822299822da3bf2bcb5ebfd (diff)
More docos (many files just copied, so the content isn't right yet...)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1753 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'documentation')
-rw-r--r--documentation/Fl.html51
-rw-r--r--documentation/Fl_Bitmap.html51
-rw-r--r--documentation/Fl_GIF_Image.html51
-rw-r--r--documentation/Fl_Image.html438
-rw-r--r--documentation/Fl_JPEG_Image.html51
-rw-r--r--documentation/Fl_PNG_Image.html51
-rw-r--r--documentation/Fl_PNM_Image.html51
-rw-r--r--documentation/Fl_Pixmap.html51
-rw-r--r--documentation/Fl_RGB_Image.html51
-rw-r--r--documentation/Fl_Shared_Image.html51
-rw-r--r--documentation/Fl_Text_Buffer.html336
-rw-r--r--documentation/Fl_Text_Display.html336
-rw-r--r--documentation/Fl_Text_Editor.html336
-rw-r--r--documentation/Fl_Tiled_Image.html51
-rw-r--r--documentation/Fl_XBM_Image.html51
-rw-r--r--documentation/Fl_XPM_Image.html51
-rw-r--r--documentation/Makefile173
-rw-r--r--documentation/fltk.book14
18 files changed, 2046 insertions, 199 deletions
diff --git a/documentation/Fl.html b/documentation/Fl.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_Bitmap.html b/documentation/Fl_Bitmap.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_Bitmap.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_GIF_Image.html b/documentation/Fl_GIF_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_GIF_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_Image.html b/documentation/Fl_Image.html
index 1287a6113..e0b27db16 100644
--- a/documentation/Fl_Image.html
+++ b/documentation/Fl_Image.html
@@ -1,142 +1,336 @@
-<head><title>Fl_Image</title></head><body bgcolor=white>
-
-<h1>class Fl_Image</h1>
-
-This class holds an image, normally used to label a widget. The
-subclasses define how the data is interpreted, and usually store
-server-side cached versions of the image. All the current types
-define pixel arrays, but other types of images, such as vector
-graphics, can be defined.
+<HTML><BODY>
+<HR break>
+<H2><A name=Fl_Input>class Fl_Input</A></H2>
+<HR>
+<H3>Class Hierarchy</H3>
+<UL>
+<PRE>
+<A href=Fl_Input_.html#Fl_Input_>Fl_Input_</A>
+ |
+ +----<B>Fl_Input</B>
+ |
+ +----<A href=Fl_Float_Input.html#Fl_Float_Input>Fl_Float_Input</A>, <A href=Fl_Int_Input.html#Fl_Int_Input>Fl_Int_Input</A>,
+ <A href=Fl_Multiline_Input.html#Fl_Multiline_Input>Fl_Multiline_Input</A>, <A href=Fl_Secret_Input.html#Fl_Secret_Input>Fl_Secret_Input</A>
+</PRE>
+</UL>
+<H3>Include Files</H3>
+<UL>
+<PRE>
+#include &lt;FL/Fl_Input.H&gt;
+</PRE>
+</UL>
+<H3>Description</H3>
+<P>This is the FLTK text input widget. It displays a single line of text
+and lets the user edit it. Normally it is drawn with an inset box and
+a white background. The text may contain any characters (even 0), and
+will correctly display anything, using ^X notation for unprintable
+control characters and \nnn notation for unprintable characters with
+the high bit set. It assumes the font can draw any characters in the
+ISO-8859-1 character set.
-<h2>Methods</h2>
+<CENTER><TABLE border=1 WIDTH=90% summary="Fl_Input keyboard and mouse bindings.">
-<h4>ulong id, mask;<br>
-void _draw(int X, int Y, int W, int H, int cx, int cy);</h4>
+<TR><TD WIDTH=200><B>Mouse button 1</B></TD><TD>Moves the cursor to
+ this point. Drag selects characters. Double click selects words.
+ Triple click selects all text. Shift+click extends the selection.
+ When you select text it is automatically copied to the clipboard.
+</TD></TR>
-Subclasses may use these <i>protected</i> members of the base class to
-draw a cached pixel array. They must first set <tt>id</tt> and
-<tt>mask</tt> to the color and transparency offscreen windows, using
-system-specific code. Then they can call <tt>_draw()</tt> to draw
-them.
+<TR><TD><B>Mouse button 2</B></TD><TD>Insert the clipboard at
+the point clicked. You can also select a region and replace it with the
+clipboard by selecting the region with mouse button 2.
+</TD></TR>
-<h4>int w,h</h4>
+<TR><TD><B>Mouse button 3</B></TD><TD>Currently acts like button 1.</TD></TR>
-These members hold the width and height of the image. They are not
-correct until <tt>measure()</tt> is called. These are public instance
-variables for back comptability, but you should never set them.
+<TR><TD><B>Backspace</B></TD><TD>Deletes one character to the left, or
+deletes the selected region.</TD></TR>
+<TR><TD><B>Enter</B></TD><TD>May cause the callback, see when().</TD></TR>
+<TR><TD><B>^A or Home</B></TD><TD>Go to start of line.</TD></TR>
+<TR><TD><B>^B or Left</B></TD><TD>Move left</TD></TR>
+<TR><TD><B>^C</B></TD><TD>Copy the selection to the clipboard</TD></TR>
+<TR><TD><B>^D or Delete</B></TD><TD>Deletes one character to the right
+or deletes the selected region.</TD></TR>
+<TR><TD><B>^E or End</B></TD><TD>Go to the end of line.</TD></TR>
+<TR><TD><B>^F or Right</B></TD><TD>Move right</TD></TR>
+<TR><TD><B>^K</B></TD><TD>Delete to the end of line (next \n character)
+or deletes a single \n character. These deletions are all concatenated
+into the clipboard.</TD></TR>
+<TR><TD><B>^N or Down</B></TD><TD>Move down (for Fl_Multiline_Input
+only, otherwise it moves to the next input field).</TD></TR>
+<TR><TD><B>^P or Up</B></TD><TD>Move up (for Fl_Multiline_Input only,
+otherwise it moves to the previous input field).</TD></TR>
+<TR><TD><B>^U</B></TD><TD>Delete everything.</TD></TR>
+<TR><TD><B>^V or ^Y</B></TD><TD>Paste the clipboard</TD></TR>
+<TR><TD><B>^X or ^W</B></TD><TD>Copy the region to the clipboard and
+delete it.</TD></TR>
+<TR><TD><B>^Z or ^_</B></TD><TD>Undo. This is a single-level undo
+mechanism, but all adjacent deletions and insertions are concatenated
+into a single &quot;undo&quot;. Often this will undo a lot more than you
+expected.</TD></TR>
+<TR><TD><B>Shift+move</B></TD><TD>Move the cursor but also extend the
+selection.</TD></TR>
-<h4>virtual void Fl_Image::measure(int W, int H);</h4>
+<TR><TD><B>RightCtrl or
+<BR>Compose</B></TD><TD><a name=compose>Start</A>
+a <A href="events.html#compose">compose-character</A>
+sequence. The next one or two keys typed define the character to
+insert (see table that follows.)
-Measure how big the image will be if it is drawn inside a W,H
-rectangle and put the result into w,h. For most image types this does
-nothing and w,h are set by the constructor. This may be used to
-initialize the scaling for variable-sized images.
+<p>For instance, to type "á" type [compose][a]['] or [compose]['][a].
-<h4>virtual void Fl_Image::draw(int x,int y,int w,int h, int cx,int
-cy);</h4>
+<P>The character "nbsp" (non-breaking space) is typed by using
+[compose][space].
-Draw the image so the point <i>cx,cy</i> of the image is at
-<i>x,y</i>. The image may be scaled or clipped to fit in the <i>w,h</i>
-rectangle, but this is not necessary (although obeying the current
-fl_clip value is!).
+<P>The single-character sequences may be followed by a space if
+necessary to remove ambiguity. For instance, if you really want to
+type "ª~" rather than "ã" you must type [compose][a][space][~].
-<h4>void Fl_Image::draw(int x,int y,int w,int h, Fl_Flags align);</h4>
+<p>The same key may be used to "quote" control characters into the
+text. If you need a <tt>^Q</tt> character you can get one by typing
+[compose][Control+Q].
-This <i>non-virtual</i> function uses <tt>measure()</tt> and the
-<i>align</i> flags to figure out <i>cx,cy</i> and call the normal draw
-function. This allows you to center or align any edge of the image
-with a bounding box.
+<p>X may have a key on the keyboard
+defined as <tt>XK_Multi_key</tt>. If so this key may be used as well
+as the right-hand control key. You can set this up with the program
+<tt>xmodmap</tt>.
-<h4>virtual Fl_Image::~Fl_Image();</h4>
+<p>If your keyboard is set to support a foreign language you should
+also be able to type "dead key" prefix characters. On X you will
+actually be able to see what dead key you typed, and if you then move
+the cursor without completing the sequence the accent will remain
+inserted.
+</TABLE></CENTER>
-The destructor throws away any server-cached information, but in most
-cases does not destroy the local data passed to a constructor.
+<!-- NEW PAGE -->
+<center><table border=1 summary="Character Composition Table">
+<caption align="top">Character Composition Table</caption>
+<tr>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
-<H2><A name=Fl_Bitmap>class Fl_Bitmap : public Fl_Image</A></H2>
- This object encapsulates the width, height, and bits of an X bitmap
-(XBM), and allows you to make an <TT>Fl_Widget</TT> use a bitmap as a
-label, or to just draw the bitmap directly.
+</tr><tr>
+ <td align=center><TT>sp</TT></td><td align=center><small>nbsp</small></td>
+ <td align=center><TT>*</tt></td><td align=center>°</td>
+ <td align=center><TT>` A</tt></td><td align=center>À</td>
+ <td align=center><TT>D -</tt></td><td align=center>Ð</td>
+ <td align=center><TT>` a</tt></td><td align=center>à</td>
+ <td align=center><TT>d -</tt></td><td align=center>ð
+</tr><tr>
+ <td align=center><TT>!</tt></td><td align=center>¡</td>
+ <td align=center><TT>+ -</tt></td><td align=center>±</td>
+ <td align=center><TT>' A</tt></td><td align=center>Á</td>
+ <td align=center><TT>~ N</tt></td><td align=center>Ñ</td>
+ <td align=center><TT>' a</tt></td><td align=center>á</td>
+ <td align=center><TT>~ n</tt></td><td align=center>ñ
+</tr><tr>
+ <td align=center><TT>%</tt></td><td align=center>¢</td>
+ <td align=center><TT>2</tt></td><td align=center>²</td>
+ <td align=center><TT>A ^</tt></td><td align=center>Â</td>
+ <td align=center><TT>` O</tt></td><td align=center>Ò</td>
+ <td align=center><TT>^ a</tt></td><td align=center>â</td>
+ <td align=center><TT>` o</tt></td><td align=center>ò
+</tr><tr>
+ <td align=center><TT>#</tt></td><td align=center>£</td>
+ <td align=center><TT>3</tt></td><td align=center>³</td>
+ <td align=center><TT>~ A</tt></td><td align=center>Ã</td>
+ <td align=center><TT>' O</tt></td><td align=center>Ó</td>
+ <td align=center><TT>~ a</tt></td><td align=center>ã</td>
+ <td align=center><TT>' o</tt></td><td align=center>ó
+</tr><tr>
+ <td align=center><TT>$</tt></td><td align=center>¤</td>
+ <td align=center><TT>'</tt></td><td align=center>´</td>
+ <td align=center><TT>: A</tt></td><td align=center>Ä</td>
+ <td align=center><TT>^ O</tt></td><td align=center>Ô</td>
+ <td align=center><TT>: a</tt></td><td align=center>ä</td>
+ <td align=center><TT>^ o</tt></td><td align=center>ô
+</tr><tr>
+ <td align=center><TT>y =</tt></td><td align=center>¥</td>
+ <td align=center><TT>u</tt></td><td align=center>µ</td>
+ <td align=center><TT>* A</tt></td><td align=center>Å</td>
+ <td align=center><TT>~ O</tt></td><td align=center>Õ</td>
+ <td align=center><TT>* a</tt></td><td align=center>å</td>
+ <td align=center><TT>~ o</tt></td><td align=center>õ
+</tr><tr>
+ <td align=center><TT>|</tt></td><td align=center>¦</td>
+ <td align=center><TT>p</tt></td><td align=center>¶</td>
+ <td align=center><TT>A E</tt></td><td align=center>Æ</td>
+ <td align=center><TT>: O</tt></td><td align=center>Ö</td>
+ <td align=center><TT>a e</tt></td><td align=center>æ</td>
+ <td align=center><TT>: o</tt></td><td align=center>ö
+</tr><tr>
+ <td align=center><TT>&amp;</tt></td><td align=center>§</td>
+ <td align=center><TT>.</tt></td><td align=center>·</td>
+ <td align=center><TT>, C</tt></td><td align=center>Ç</td>
+ <td align=center><TT>x</tt></td><td align=center>×</td>
+ <td align=center><TT>, c</tt></td><td align=center>ç</td>
+ <td align=center><TT>- :</tt></td><td align=center>÷
+</tr><tr>
+ <td align=center><TT>:</tt></td><td align=center>¨</td>
+ <td align=center><TT>,</tt></td><td align=center>¸</td>
+ <td align=center><TT>E `</tt></td><td align=center>È</td>
+ <td align=center><TT>O /</tt></td><td align=center>Ø</td>
+ <td align=center><TT>` e</tt></td><td align=center>è</td>
+ <td align=center><TT>o /</tt></td><td align=center>ø
+</tr><tr>
+ <td align=center><TT>c</tt></td><td align=center>©</td>
+ <td align=center><TT>1</tt></td><td align=center>¹</td>
+ <td align=center><TT>' E</tt></td><td align=center>É</td>
+ <td align=center><TT>` U</tt></td><td align=center>Ù</td>
+ <td align=center><TT>' e</tt></td><td align=center>é</td>
+ <td align=center><TT>` u</tt></td><td align=center>ù
+</tr><tr>
+ <td align=center><TT>a</tt></td><td align=center>ª</td>
+ <td align=center><TT>o</tt></td><td align=center>º</td>
+ <td align=center><TT>^ E</tt></td><td align=center>Ê</td>
+ <td align=center><TT>' U</tt></td><td align=center>Ú</td>
+ <td align=center><TT>^ e</tt></td><td align=center>ê</td>
+ <td align=center><TT>' u</tt></td><td align=center>ú
+</tr><tr>
+ <td align=center><TT>&lt; &lt;</tt></td><td align=center>«</td>
+ <td align=center><TT>&gt; &gt;</tt></td><td align=center>»</td>
+ <td align=center><TT>: E</tt></td><td align=center>Ë</td>
+ <td align=center><TT>^ U</tt></td><td align=center>Û</td>
+ <td align=center><TT>: e</tt></td><td align=center>ë</td>
+ <td align=center><TT>^ u</tt></td><td align=center>û
+</tr><tr>
+ <td align=center><TT>~</tt></td><td align=center>¬</td>
+ <td align=center><TT>1 4</tt></td><td align=center>¼</td>
+ <td align=center><TT>` I</tt></td><td align=center>Ì</td>
+ <td align=center><TT>: U</tt></td><td align=center>Ü</td>
+ <td align=center><TT>` i</tt></td><td align=center>ì</td>
+ <td align=center><TT>: u</tt></td><td align=center>ü
+</tr><tr>
+ <td align=center><TT>-</tt></td><td align=center>­</td>
+ <td align=center><TT>1 2</tt></td><td align=center>½</td>
+ <td align=center><TT>' I</tt></td><td align=center>Í</td>
+ <td align=center><TT>' Y</tt></td><td align=center>Ý</td>
+ <td align=center><TT>' i</tt></td><td align=center>í</td>
+ <td align=center><TT>' y</tt></td><td align=center>ý
+</tr><tr>
+ <td align=center><TT>r</tt></td><td align=center>®</td>
+ <td align=center><TT>3 4</tt></td><td align=center>¾</td>
+ <td align=center><TT>^ I</tt></td><td align=center>Î</td>
+ <td align=center><TT>T H</tt></td><td align=center>Þ</td>
+ <td align=center><TT>^ i</tt></td><td align=center>î</td>
+ <td align=center><TT>t h</tt></td><td align=center>þ
+</tr><tr>
+ <td align=center><TT>_</tt></td><td align=center>¯</td>
+ <td align=center><TT>?</tt></td><td align=center>¿</td>
+ <td align=center><TT>: I</tt></td><td align=center>Ï</td>
+ <td align=center><TT>s s</tt></td><td align=center>ß</td>
+ <td align=center><TT>: i</tt></td><td align=center>ï</td>
+ <td align=center><TT>: y</tt></td><td align=center>ÿ
+</table></center>
-<H4>Fl_Bitmap(const char *bits, int W, int H)
-<BR> Fl_Bitmap(const uchar *bits, int W, int H)</H4>
-Construct using an X bitmap. The bits pointer is simply copied to the
-object, so it must point at persistent storage. The two constructors
-are provided because various X implementations disagree about the type
-of bitmap data. To use an XBM file use:
+<H3>Methods</H3>
+<CENTER>
+<TABLE width=90% summary="Fl_Input methods.">
+<TR><TD align=left valign=top>
<UL>
-<PRE>
-#include &quot;foo.xbm&quot;
-...
-Fl_Bitmap bitmap = new Fl_Bitmap(foo_bits, foo_width, foo_height);
-</PRE>
+<LI><A href=#Fl_Input.Fl_Input>Fl_Input</A></LI>
+<LI><A href=#Fl_Input.~Fl_Input>~Fl_Input</A></LI>
+<LI><A href=#Fl_Input.cursor_color>cursor_color</A></LI>
</UL>
-<H4>~Fl_Bitmap()</H4>
- The destructor will destroy any X pixmap created. It does not do
-anything to the bits data.
-<H4>void draw(int x, int y, int w, int h, int ox = 0, int oy = 0)</H4>
-1 bits are drawn with the current color, 0 bits
-are unchanged.
-The image is clipped to the destination rectangle: the area
-<TT>ox,oy,w,h</TT> is copied to <TT>x,y,w,h</TT>.
-<H4>void draw(int x, int y)</H4>
-Draws the bitmap with the upper-left corner at <TT>x,y</TT>. This is
-the same as doing <TT>draw(x,y,this-&gt;w,this-&gt;h,0,0)</TT>.
-
-<H2><A name=Fl_Pixmap>class Fl_Pixmap : public Fl_Image</A></H2>
-
-This object encapsulates the data from an XPM image, and allows you to
-make an <TT>Fl_Widget</TT> use a pixmap as a label, or to just draw
-the pixmap directly.
-
-<H4>Fl_Pixmap(char *const* data)</H4>
- Construct using XPM data. The data pointer is simply copied to the
-object, so it must point at persistent storage. To use an XPM file do:
+</TD><TD align=left valign=top>
<UL>
-<PRE>
-#include &lt;fltk/Fl_Pixmap.h&gt;
-#include &quot;foo.xpm&quot;
-...
-Fl_Pixmap pixmap = new Fl_Pixmap(foo);
-</PRE>
+<LI><A href=#Fl_Input.index>index</A></LI>
+<LI><A href=#Fl_Input.size>size</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.static_value>static_value</A></LI>
+<LI><A href=#Fl_Input.textcolor>textcolor</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.textfont>textfont</A></LI>
+<LI><A href=#Fl_Input.textsize>textsize</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.value>value</A></LI>
+<LI><A href=#Fl_Input.when>when</A></LI>
+</UL>
+</TD></TR>
+</TABLE>
+</CENTER>
+<H4><A name=Fl_Input.Fl_Input>Fl_Input::Fl_Input(int x, int y, int w,
+int h, const char *label = 0)</A></H4>
+ Creates a new <TT>Fl_Input</TT> widget using the given position, size,
+and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
+<H4><A name=Fl_Input.~Fl_Input>virtual Fl_Input::~Fl_Input()</A></H4>
+ Destroys the widget and any value associated with it.
+<H4><A name=Fl_Input.value>const char *Fl_Input::value() const
+<BR> int Fl_Input::value(const char*)
+<BR> int Fl_Input::value(const char*, int)</A></H4>
+ The first form returns the current value, which is a pointer to the
+internal buffer and is valid only until the next event is handled.
+<P>The second two forms change the text and set the mark and the point
+to the end of it. The string is copied to the internal buffer. Passing <TT>
+NULL</TT> is the same as &quot;&quot;. This returns non-zero if the new value is
+different than the current one. You can use the second version to
+directly set the length if you know it already or want to put nul's in
+the text. </P>
+<H4><A name=Fl_Input.static_value>int Fl_Input::static_value(const
+char*)
+<BR> int Fl_Input::static_value(const char*, int)</A></H4>
+ Change the text and set the mark and the point to the end of it. The
+string is <I>not</I> copied. If the user edits the string it is copied
+to the internal buffer then. This can save a great deal of time and
+memory if your program is rapidly changing the values of text fields,
+but this will only work if the passed string remains unchanged until
+either the <TT>Fl_Input</TT> is destroyed or <TT>value()</TT> is called
+again.
+<H4><A name=Fl_Input.size>int Fl_Input::size() const</A></H4>
+ Returns the number of characters in <TT>value()</TT>. This may be
+greater than <TT>strlen(value())</TT> if there are nul characters in
+it.
+<H4><A name=Fl_Input.index>char Fl_Input::index(int) const</A></H4>
+ Same as <TT>value()[n]</TT>, but may be faster in plausible
+implementations. No bounds checking is done.
+<H4><A name=Fl_Input.when>Fl_When Fl_Widget::when() const
+<BR> void Fl_Widget::when(Fl_When)</A></H4>
+ Controls when callbacks are done. The following values are useful,
+the default value is <TT>FL_WHEN_RELEASE</TT>:
+<UL>
+<LI><TT>0</TT>: The callback is not done, but <TT>changed()</TT> is
+ turned on. </LI>
+<LI><TT>FL_WHEN_CHANGED</TT>: The callback is done each time the text
+is changed by the user. </LI>
+<LI><TT>FL_WHEN_RELEASE</TT>: The callback will be done when this
+widget loses the focus, including when the window is unmapped. This
+is a useful value for text fields in a panel where doing the callback
+on every change is wasteful. However the callback will also happen if
+the mouse is moved out of the window, which means it should not do
+anything visible (like pop up an error message). You might do better
+setting this to zero, and scanning all the items for <TT>changed()</TT>
+ when the OK button on a panel is pressed. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY</TT>: If the user types the Enter key, the
+entire text is selected, and the callback is done if the text has
+changed. Normally the Enter key will navigate to the next field (or
+insert a newline for a <TT>Fl_Mulitline_Input</TT>), this changes the
+behavior. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED</TT>: The Enter key will
+do the callback even if the text has not changed. Useful for command
+fields. </LI>
</UL>
-<H4>~Fl_Pixmap()</H4>
- The destructor will destroy any X pixmap created. It does not do
-anything to the data.
-
-<H4>void draw(int x, int y, int w, int h, int ox = 0, int oy = 0)</H4>
-The image is clipped to the destination rectangle: the area
-<TT>ox,oy,w,h</TT> is copied to <TT>x,y,w,h</TT>. The current
-implementation converts the pixmap to 24-bit RGB data and uses <A
-href=#fl_draw_image><TT>fl_draw_image()</TT></A> to draw it. Thus you
-will get dithered colors on an 8 bit screen. </P>
-
-<H4>void draw(int x, int y)</H4>
- Draws the image with the upper-left corner at <TT>x,y</TT>. This is
-the same as doing <TT>draw(x,y,this-&gt;w,this-&gt;h,0,0)</TT>.
-
-<H2><A name=Fl_RGB_Image>class Fl_RGB_Image</A></H2>
-
-This object encapsulates a full-color RGB image, and allows you to
-make an <TT>Fl_Widget</TT> use an image as a label, or to just draw the
-image directly.
-
-<H4>Fl_RGB_Image(const uchar *data, int W, int H, int D = 3, int LD = 0)</H4>
- Construct using a pointer to RGB data. <TT>W</TT> and <TT>H</TT> are
-the size of the image in pixels. <TT>D</TT> is the delta between pixels
-(it may be more than 3 to skip alpha or other data, or negative to flip
-the image left/right). <TT>LD</TT> is the delta between lines (it may
-be more than <TT>D * W</TT> to crop images, or negative to flip the
-image vertically). The data pointer is simply copied to the object, so
-it must point at persistent storage.
-<H4>~Fl_RGB_Image()</H4>
- The destructor will destroy any X pixmap created. It does not do
-anything to the data.
-<H4>void draw(int x, int y, int w, int h, int ox = 0, int oy = 0)</H4>
-The image is clipped to the destination rectangle: the area
-<TT>ox,oy,w,h</TT> is copied to <TT>x,y,w,h</TT>.
-<H4>void draw(int x, int y)</H4>
- Draws the image with the upper-left corner at <TT>x,y</TT>. This is
-the same as doing <TT>draw(x,y,this-&gt;w,this-&gt;h,0,0)</TT>.
-
-</body></html>
+<H4><A name=Fl_Input.textcolor>Fl_Color Fl_Input::textcolor() const
+<BR> void Fl_Input::textcolor(Fl_Color)</A></H4>
+ Gets or sets the color of the text in the input field.
+<H4><A name=Fl_Input.textfont>Fl_Font Fl_Input::textfont() const
+<BR> void Fl_Input::textfont(Fl_Font)</A></H4>
+ Gets or sets the font of the text in the input field.
+<H4><A name=Fl_Input.textsize>uchar Fl_Input::textsize() const
+<BR> void Fl_Input::textsize(uchar)</A></H4>
+ Gets or sets the size of the text in the input field.
+<H4><A name=Fl_Input.cursor_color>Fl_Color Fl_Input::cursor_color()
+const
+<BR> void Fl_Input::cursor_color(Fl_Color)</A></H4>
+ Get or set the color of the cursor. This is black by default.
+</BODY></HTML>
diff --git a/documentation/Fl_JPEG_Image.html b/documentation/Fl_JPEG_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_JPEG_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_PNG_Image.html b/documentation/Fl_PNG_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_PNG_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_PNM_Image.html b/documentation/Fl_PNM_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_PNM_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_Pixmap.html b/documentation/Fl_Pixmap.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_Pixmap.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_RGB_Image.html b/documentation/Fl_RGB_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_RGB_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_Shared_Image.html b/documentation/Fl_Shared_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_Shared_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_Text_Buffer.html b/documentation/Fl_Text_Buffer.html
new file mode 100644
index 000000000..e0b27db16
--- /dev/null
+++ b/documentation/Fl_Text_Buffer.html
@@ -0,0 +1,336 @@
+<HTML><BODY>
+<HR break>
+<H2><A name=Fl_Input>class Fl_Input</A></H2>
+<HR>
+<H3>Class Hierarchy</H3>
+<UL>
+<PRE>
+<A href=Fl_Input_.html#Fl_Input_>Fl_Input_</A>
+ |
+ +----<B>Fl_Input</B>
+ |
+ +----<A href=Fl_Float_Input.html#Fl_Float_Input>Fl_Float_Input</A>, <A href=Fl_Int_Input.html#Fl_Int_Input>Fl_Int_Input</A>,
+ <A href=Fl_Multiline_Input.html#Fl_Multiline_Input>Fl_Multiline_Input</A>, <A href=Fl_Secret_Input.html#Fl_Secret_Input>Fl_Secret_Input</A>
+</PRE>
+</UL>
+<H3>Include Files</H3>
+<UL>
+<PRE>
+#include &lt;FL/Fl_Input.H&gt;
+</PRE>
+</UL>
+<H3>Description</H3>
+<P>This is the FLTK text input widget. It displays a single line of text
+and lets the user edit it. Normally it is drawn with an inset box and
+a white background. The text may contain any characters (even 0), and
+will correctly display anything, using ^X notation for unprintable
+control characters and \nnn notation for unprintable characters with
+the high bit set. It assumes the font can draw any characters in the
+ISO-8859-1 character set.
+
+<CENTER><TABLE border=1 WIDTH=90% summary="Fl_Input keyboard and mouse bindings.">
+
+<TR><TD WIDTH=200><B>Mouse button 1</B></TD><TD>Moves the cursor to
+ this point. Drag selects characters. Double click selects words.
+ Triple click selects all text. Shift+click extends the selection.
+ When you select text it is automatically copied to the clipboard.
+</TD></TR>
+
+<TR><TD><B>Mouse button 2</B></TD><TD>Insert the clipboard at
+the point clicked. You can also select a region and replace it with the
+clipboard by selecting the region with mouse button 2.
+</TD></TR>
+
+<TR><TD><B>Mouse button 3</B></TD><TD>Currently acts like button 1.</TD></TR>
+
+<TR><TD><B>Backspace</B></TD><TD>Deletes one character to the left, or
+deletes the selected region.</TD></TR>
+<TR><TD><B>Enter</B></TD><TD>May cause the callback, see when().</TD></TR>
+<TR><TD><B>^A or Home</B></TD><TD>Go to start of line.</TD></TR>
+<TR><TD><B>^B or Left</B></TD><TD>Move left</TD></TR>
+<TR><TD><B>^C</B></TD><TD>Copy the selection to the clipboard</TD></TR>
+<TR><TD><B>^D or Delete</B></TD><TD>Deletes one character to the right
+or deletes the selected region.</TD></TR>
+<TR><TD><B>^E or End</B></TD><TD>Go to the end of line.</TD></TR>
+<TR><TD><B>^F or Right</B></TD><TD>Move right</TD></TR>
+<TR><TD><B>^K</B></TD><TD>Delete to the end of line (next \n character)
+or deletes a single \n character. These deletions are all concatenated
+into the clipboard.</TD></TR>
+<TR><TD><B>^N or Down</B></TD><TD>Move down (for Fl_Multiline_Input
+only, otherwise it moves to the next input field).</TD></TR>
+<TR><TD><B>^P or Up</B></TD><TD>Move up (for Fl_Multiline_Input only,
+otherwise it moves to the previous input field).</TD></TR>
+<TR><TD><B>^U</B></TD><TD>Delete everything.</TD></TR>
+<TR><TD><B>^V or ^Y</B></TD><TD>Paste the clipboard</TD></TR>
+<TR><TD><B>^X or ^W</B></TD><TD>Copy the region to the clipboard and
+delete it.</TD></TR>
+<TR><TD><B>^Z or ^_</B></TD><TD>Undo. This is a single-level undo
+mechanism, but all adjacent deletions and insertions are concatenated
+into a single &quot;undo&quot;. Often this will undo a lot more than you
+expected.</TD></TR>
+<TR><TD><B>Shift+move</B></TD><TD>Move the cursor but also extend the
+selection.</TD></TR>
+
+<TR><TD><B>RightCtrl or
+<BR>Compose</B></TD><TD><a name=compose>Start</A>
+a <A href="events.html#compose">compose-character</A>
+sequence. The next one or two keys typed define the character to
+insert (see table that follows.)
+
+<p>For instance, to type "á" type [compose][a]['] or [compose]['][a].
+
+<P>The character "nbsp" (non-breaking space) is typed by using
+[compose][space].
+
+<P>The single-character sequences may be followed by a space if
+necessary to remove ambiguity. For instance, if you really want to
+type "ª~" rather than "ã" you must type [compose][a][space][~].
+
+<p>The same key may be used to "quote" control characters into the
+text. If you need a <tt>^Q</tt> character you can get one by typing
+[compose][Control+Q].
+
+<p>X may have a key on the keyboard
+defined as <tt>XK_Multi_key</tt>. If so this key may be used as well
+as the right-hand control key. You can set this up with the program
+<tt>xmodmap</tt>.
+
+<p>If your keyboard is set to support a foreign language you should
+also be able to type "dead key" prefix characters. On X you will
+actually be able to see what dead key you typed, and if you then move
+the cursor without completing the sequence the accent will remain
+inserted.
+</TABLE></CENTER>
+
+<!-- NEW PAGE -->
+<center><table border=1 summary="Character Composition Table">
+<caption align="top">Character Composition Table</caption>
+<tr>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+
+</tr><tr>
+ <td align=center><TT>sp</TT></td><td align=center><small>nbsp</small></td>
+ <td align=center><TT>*</tt></td><td align=center>°</td>
+ <td align=center><TT>` A</tt></td><td align=center>À</td>
+ <td align=center><TT>D -</tt></td><td align=center>Ð</td>
+ <td align=center><TT>` a</tt></td><td align=center>à</td>
+ <td align=center><TT>d -</tt></td><td align=center>ð
+</tr><tr>
+ <td align=center><TT>!</tt></td><td align=center>¡</td>
+ <td align=center><TT>+ -</tt></td><td align=center>±</td>
+ <td align=center><TT>' A</tt></td><td align=center>Á</td>
+ <td align=center><TT>~ N</tt></td><td align=center>Ñ</td>
+ <td align=center><TT>' a</tt></td><td align=center>á</td>
+ <td align=center><TT>~ n</tt></td><td align=center>ñ
+</tr><tr>
+ <td align=center><TT>%</tt></td><td align=center>¢</td>
+ <td align=center><TT>2</tt></td><td align=center>²</td>
+ <td align=center><TT>A ^</tt></td><td align=center>Â</td>
+ <td align=center><TT>` O</tt></td><td align=center>Ò</td>
+ <td align=center><TT>^ a</tt></td><td align=center>â</td>
+ <td align=center><TT>` o</tt></td><td align=center>ò
+</tr><tr>
+ <td align=center><TT>#</tt></td><td align=center>£</td>
+ <td align=center><TT>3</tt></td><td align=center>³</td>
+ <td align=center><TT>~ A</tt></td><td align=center>Ã</td>
+ <td align=center><TT>' O</tt></td><td align=center>Ó</td>
+ <td align=center><TT>~ a</tt></td><td align=center>ã</td>
+ <td align=center><TT>' o</tt></td><td align=center>ó
+</tr><tr>
+ <td align=center><TT>$</tt></td><td align=center>¤</td>
+ <td align=center><TT>'</tt></td><td align=center>´</td>
+ <td align=center><TT>: A</tt></td><td align=center>Ä</td>
+ <td align=center><TT>^ O</tt></td><td align=center>Ô</td>
+ <td align=center><TT>: a</tt></td><td align=center>ä</td>
+ <td align=center><TT>^ o</tt></td><td align=center>ô
+</tr><tr>
+ <td align=center><TT>y =</tt></td><td align=center>¥</td>
+ <td align=center><TT>u</tt></td><td align=center>µ</td>
+ <td align=center><TT>* A</tt></td><td align=center>Å</td>
+ <td align=center><TT>~ O</tt></td><td align=center>Õ</td>
+ <td align=center><TT>* a</tt></td><td align=center>å</td>
+ <td align=center><TT>~ o</tt></td><td align=center>õ
+</tr><tr>
+ <td align=center><TT>|</tt></td><td align=center>¦</td>
+ <td align=center><TT>p</tt></td><td align=center>¶</td>
+ <td align=center><TT>A E</tt></td><td align=center>Æ</td>
+ <td align=center><TT>: O</tt></td><td align=center>Ö</td>
+ <td align=center><TT>a e</tt></td><td align=center>æ</td>
+ <td align=center><TT>: o</tt></td><td align=center>ö
+</tr><tr>
+ <td align=center><TT>&amp;</tt></td><td align=center>§</td>
+ <td align=center><TT>.</tt></td><td align=center>·</td>
+ <td align=center><TT>, C</tt></td><td align=center>Ç</td>
+ <td align=center><TT>x</tt></td><td align=center>×</td>
+ <td align=center><TT>, c</tt></td><td align=center>ç</td>
+ <td align=center><TT>- :</tt></td><td align=center>÷
+</tr><tr>
+ <td align=center><TT>:</tt></td><td align=center>¨</td>
+ <td align=center><TT>,</tt></td><td align=center>¸</td>
+ <td align=center><TT>E `</tt></td><td align=center>È</td>
+ <td align=center><TT>O /</tt></td><td align=center>Ø</td>
+ <td align=center><TT>` e</tt></td><td align=center>è</td>
+ <td align=center><TT>o /</tt></td><td align=center>ø
+</tr><tr>
+ <td align=center><TT>c</tt></td><td align=center>©</td>
+ <td align=center><TT>1</tt></td><td align=center>¹</td>
+ <td align=center><TT>' E</tt></td><td align=center>É</td>
+ <td align=center><TT>` U</tt></td><td align=center>Ù</td>
+ <td align=center><TT>' e</tt></td><td align=center>é</td>
+ <td align=center><TT>` u</tt></td><td align=center>ù
+</tr><tr>
+ <td align=center><TT>a</tt></td><td align=center>ª</td>
+ <td align=center><TT>o</tt></td><td align=center>º</td>
+ <td align=center><TT>^ E</tt></td><td align=center>Ê</td>
+ <td align=center><TT>' U</tt></td><td align=center>Ú</td>
+ <td align=center><TT>^ e</tt></td><td align=center>ê</td>
+ <td align=center><TT>' u</tt></td><td align=center>ú
+</tr><tr>
+ <td align=center><TT>&lt; &lt;</tt></td><td align=center>«</td>
+ <td align=center><TT>&gt; &gt;</tt></td><td align=center>»</td>
+ <td align=center><TT>: E</tt></td><td align=center>Ë</td>
+ <td align=center><TT>^ U</tt></td><td align=center>Û</td>
+ <td align=center><TT>: e</tt></td><td align=center>ë</td>
+ <td align=center><TT>^ u</tt></td><td align=center>û
+</tr><tr>
+ <td align=center><TT>~</tt></td><td align=center>¬</td>
+ <td align=center><TT>1 4</tt></td><td align=center>¼</td>
+ <td align=center><TT>` I</tt></td><td align=center>Ì</td>
+ <td align=center><TT>: U</tt></td><td align=center>Ü</td>
+ <td align=center><TT>` i</tt></td><td align=center>ì</td>
+ <td align=center><TT>: u</tt></td><td align=center>ü
+</tr><tr>
+ <td align=center><TT>-</tt></td><td align=center>­</td>
+ <td align=center><TT>1 2</tt></td><td align=center>½</td>
+ <td align=center><TT>' I</tt></td><td align=center>Í</td>
+ <td align=center><TT>' Y</tt></td><td align=center>Ý</td>
+ <td align=center><TT>' i</tt></td><td align=center>í</td>
+ <td align=center><TT>' y</tt></td><td align=center>ý
+</tr><tr>
+ <td align=center><TT>r</tt></td><td align=center>®</td>
+ <td align=center><TT>3 4</tt></td><td align=center>¾</td>
+ <td align=center><TT>^ I</tt></td><td align=center>Î</td>
+ <td align=center><TT>T H</tt></td><td align=center>Þ</td>
+ <td align=center><TT>^ i</tt></td><td align=center>î</td>
+ <td align=center><TT>t h</tt></td><td align=center>þ
+</tr><tr>
+ <td align=center><TT>_</tt></td><td align=center>¯</td>
+ <td align=center><TT>?</tt></td><td align=center>¿</td>
+ <td align=center><TT>: I</tt></td><td align=center>Ï</td>
+ <td align=center><TT>s s</tt></td><td align=center>ß</td>
+ <td align=center><TT>: i</tt></td><td align=center>ï</td>
+ <td align=center><TT>: y</tt></td><td align=center>ÿ
+</table></center>
+
+<H3>Methods</H3>
+<CENTER>
+<TABLE width=90% summary="Fl_Input methods.">
+<TR><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.Fl_Input>Fl_Input</A></LI>
+<LI><A href=#Fl_Input.~Fl_Input>~Fl_Input</A></LI>
+<LI><A href=#Fl_Input.cursor_color>cursor_color</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.index>index</A></LI>
+<LI><A href=#Fl_Input.size>size</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.static_value>static_value</A></LI>
+<LI><A href=#Fl_Input.textcolor>textcolor</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.textfont>textfont</A></LI>
+<LI><A href=#Fl_Input.textsize>textsize</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.value>value</A></LI>
+<LI><A href=#Fl_Input.when>when</A></LI>
+</UL>
+</TD></TR>
+</TABLE>
+</CENTER>
+<H4><A name=Fl_Input.Fl_Input>Fl_Input::Fl_Input(int x, int y, int w,
+int h, const char *label = 0)</A></H4>
+ Creates a new <TT>Fl_Input</TT> widget using the given position, size,
+and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
+<H4><A name=Fl_Input.~Fl_Input>virtual Fl_Input::~Fl_Input()</A></H4>
+ Destroys the widget and any value associated with it.
+<H4><A name=Fl_Input.value>const char *Fl_Input::value() const
+<BR> int Fl_Input::value(const char*)
+<BR> int Fl_Input::value(const char*, int)</A></H4>
+ The first form returns the current value, which is a pointer to the
+internal buffer and is valid only until the next event is handled.
+<P>The second two forms change the text and set the mark and the point
+to the end of it. The string is copied to the internal buffer. Passing <TT>
+NULL</TT> is the same as &quot;&quot;. This returns non-zero if the new value is
+different than the current one. You can use the second version to
+directly set the length if you know it already or want to put nul's in
+the text. </P>
+<H4><A name=Fl_Input.static_value>int Fl_Input::static_value(const
+char*)
+<BR> int Fl_Input::static_value(const char*, int)</A></H4>
+ Change the text and set the mark and the point to the end of it. The
+string is <I>not</I> copied. If the user edits the string it is copied
+to the internal buffer then. This can save a great deal of time and
+memory if your program is rapidly changing the values of text fields,
+but this will only work if the passed string remains unchanged until
+either the <TT>Fl_Input</TT> is destroyed or <TT>value()</TT> is called
+again.
+<H4><A name=Fl_Input.size>int Fl_Input::size() const</A></H4>
+ Returns the number of characters in <TT>value()</TT>. This may be
+greater than <TT>strlen(value())</TT> if there are nul characters in
+it.
+<H4><A name=Fl_Input.index>char Fl_Input::index(int) const</A></H4>
+ Same as <TT>value()[n]</TT>, but may be faster in plausible
+implementations. No bounds checking is done.
+<H4><A name=Fl_Input.when>Fl_When Fl_Widget::when() const
+<BR> void Fl_Widget::when(Fl_When)</A></H4>
+ Controls when callbacks are done. The following values are useful,
+the default value is <TT>FL_WHEN_RELEASE</TT>:
+<UL>
+<LI><TT>0</TT>: The callback is not done, but <TT>changed()</TT> is
+ turned on. </LI>
+<LI><TT>FL_WHEN_CHANGED</TT>: The callback is done each time the text
+is changed by the user. </LI>
+<LI><TT>FL_WHEN_RELEASE</TT>: The callback will be done when this
+widget loses the focus, including when the window is unmapped. This
+is a useful value for text fields in a panel where doing the callback
+on every change is wasteful. However the callback will also happen if
+the mouse is moved out of the window, which means it should not do
+anything visible (like pop up an error message). You might do better
+setting this to zero, and scanning all the items for <TT>changed()</TT>
+ when the OK button on a panel is pressed. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY</TT>: If the user types the Enter key, the
+entire text is selected, and the callback is done if the text has
+changed. Normally the Enter key will navigate to the next field (or
+insert a newline for a <TT>Fl_Mulitline_Input</TT>), this changes the
+behavior. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED</TT>: The Enter key will
+do the callback even if the text has not changed. Useful for command
+fields. </LI>
+</UL>
+<H4><A name=Fl_Input.textcolor>Fl_Color Fl_Input::textcolor() const
+<BR> void Fl_Input::textcolor(Fl_Color)</A></H4>
+ Gets or sets the color of the text in the input field.
+<H4><A name=Fl_Input.textfont>Fl_Font Fl_Input::textfont() const
+<BR> void Fl_Input::textfont(Fl_Font)</A></H4>
+ Gets or sets the font of the text in the input field.
+<H4><A name=Fl_Input.textsize>uchar Fl_Input::textsize() const
+<BR> void Fl_Input::textsize(uchar)</A></H4>
+ Gets or sets the size of the text in the input field.
+<H4><A name=Fl_Input.cursor_color>Fl_Color Fl_Input::cursor_color()
+const
+<BR> void Fl_Input::cursor_color(Fl_Color)</A></H4>
+ Get or set the color of the cursor. This is black by default.
+
+</BODY></HTML>
diff --git a/documentation/Fl_Text_Display.html b/documentation/Fl_Text_Display.html
new file mode 100644
index 000000000..e0b27db16
--- /dev/null
+++ b/documentation/Fl_Text_Display.html
@@ -0,0 +1,336 @@
+<HTML><BODY>
+<HR break>
+<H2><A name=Fl_Input>class Fl_Input</A></H2>
+<HR>
+<H3>Class Hierarchy</H3>
+<UL>
+<PRE>
+<A href=Fl_Input_.html#Fl_Input_>Fl_Input_</A>
+ |
+ +----<B>Fl_Input</B>
+ |
+ +----<A href=Fl_Float_Input.html#Fl_Float_Input>Fl_Float_Input</A>, <A href=Fl_Int_Input.html#Fl_Int_Input>Fl_Int_Input</A>,
+ <A href=Fl_Multiline_Input.html#Fl_Multiline_Input>Fl_Multiline_Input</A>, <A href=Fl_Secret_Input.html#Fl_Secret_Input>Fl_Secret_Input</A>
+</PRE>
+</UL>
+<H3>Include Files</H3>
+<UL>
+<PRE>
+#include &lt;FL/Fl_Input.H&gt;
+</PRE>
+</UL>
+<H3>Description</H3>
+<P>This is the FLTK text input widget. It displays a single line of text
+and lets the user edit it. Normally it is drawn with an inset box and
+a white background. The text may contain any characters (even 0), and
+will correctly display anything, using ^X notation for unprintable
+control characters and \nnn notation for unprintable characters with
+the high bit set. It assumes the font can draw any characters in the
+ISO-8859-1 character set.
+
+<CENTER><TABLE border=1 WIDTH=90% summary="Fl_Input keyboard and mouse bindings.">
+
+<TR><TD WIDTH=200><B>Mouse button 1</B></TD><TD>Moves the cursor to
+ this point. Drag selects characters. Double click selects words.
+ Triple click selects all text. Shift+click extends the selection.
+ When you select text it is automatically copied to the clipboard.
+</TD></TR>
+
+<TR><TD><B>Mouse button 2</B></TD><TD>Insert the clipboard at
+the point clicked. You can also select a region and replace it with the
+clipboard by selecting the region with mouse button 2.
+</TD></TR>
+
+<TR><TD><B>Mouse button 3</B></TD><TD>Currently acts like button 1.</TD></TR>
+
+<TR><TD><B>Backspace</B></TD><TD>Deletes one character to the left, or
+deletes the selected region.</TD></TR>
+<TR><TD><B>Enter</B></TD><TD>May cause the callback, see when().</TD></TR>
+<TR><TD><B>^A or Home</B></TD><TD>Go to start of line.</TD></TR>
+<TR><TD><B>^B or Left</B></TD><TD>Move left</TD></TR>
+<TR><TD><B>^C</B></TD><TD>Copy the selection to the clipboard</TD></TR>
+<TR><TD><B>^D or Delete</B></TD><TD>Deletes one character to the right
+or deletes the selected region.</TD></TR>
+<TR><TD><B>^E or End</B></TD><TD>Go to the end of line.</TD></TR>
+<TR><TD><B>^F or Right</B></TD><TD>Move right</TD></TR>
+<TR><TD><B>^K</B></TD><TD>Delete to the end of line (next \n character)
+or deletes a single \n character. These deletions are all concatenated
+into the clipboard.</TD></TR>
+<TR><TD><B>^N or Down</B></TD><TD>Move down (for Fl_Multiline_Input
+only, otherwise it moves to the next input field).</TD></TR>
+<TR><TD><B>^P or Up</B></TD><TD>Move up (for Fl_Multiline_Input only,
+otherwise it moves to the previous input field).</TD></TR>
+<TR><TD><B>^U</B></TD><TD>Delete everything.</TD></TR>
+<TR><TD><B>^V or ^Y</B></TD><TD>Paste the clipboard</TD></TR>
+<TR><TD><B>^X or ^W</B></TD><TD>Copy the region to the clipboard and
+delete it.</TD></TR>
+<TR><TD><B>^Z or ^_</B></TD><TD>Undo. This is a single-level undo
+mechanism, but all adjacent deletions and insertions are concatenated
+into a single &quot;undo&quot;. Often this will undo a lot more than you
+expected.</TD></TR>
+<TR><TD><B>Shift+move</B></TD><TD>Move the cursor but also extend the
+selection.</TD></TR>
+
+<TR><TD><B>RightCtrl or
+<BR>Compose</B></TD><TD><a name=compose>Start</A>
+a <A href="events.html#compose">compose-character</A>
+sequence. The next one or two keys typed define the character to
+insert (see table that follows.)
+
+<p>For instance, to type "á" type [compose][a]['] or [compose]['][a].
+
+<P>The character "nbsp" (non-breaking space) is typed by using
+[compose][space].
+
+<P>The single-character sequences may be followed by a space if
+necessary to remove ambiguity. For instance, if you really want to
+type "ª~" rather than "ã" you must type [compose][a][space][~].
+
+<p>The same key may be used to "quote" control characters into the
+text. If you need a <tt>^Q</tt> character you can get one by typing
+[compose][Control+Q].
+
+<p>X may have a key on the keyboard
+defined as <tt>XK_Multi_key</tt>. If so this key may be used as well
+as the right-hand control key. You can set this up with the program
+<tt>xmodmap</tt>.
+
+<p>If your keyboard is set to support a foreign language you should
+also be able to type "dead key" prefix characters. On X you will
+actually be able to see what dead key you typed, and if you then move
+the cursor without completing the sequence the accent will remain
+inserted.
+</TABLE></CENTER>
+
+<!-- NEW PAGE -->
+<center><table border=1 summary="Character Composition Table">
+<caption align="top">Character Composition Table</caption>
+<tr>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+
+</tr><tr>
+ <td align=center><TT>sp</TT></td><td align=center><small>nbsp</small></td>
+ <td align=center><TT>*</tt></td><td align=center>°</td>
+ <td align=center><TT>` A</tt></td><td align=center>À</td>
+ <td align=center><TT>D -</tt></td><td align=center>Ð</td>
+ <td align=center><TT>` a</tt></td><td align=center>à</td>
+ <td align=center><TT>d -</tt></td><td align=center>ð
+</tr><tr>
+ <td align=center><TT>!</tt></td><td align=center>¡</td>
+ <td align=center><TT>+ -</tt></td><td align=center>±</td>
+ <td align=center><TT>' A</tt></td><td align=center>Á</td>
+ <td align=center><TT>~ N</tt></td><td align=center>Ñ</td>
+ <td align=center><TT>' a</tt></td><td align=center>á</td>
+ <td align=center><TT>~ n</tt></td><td align=center>ñ
+</tr><tr>
+ <td align=center><TT>%</tt></td><td align=center>¢</td>
+ <td align=center><TT>2</tt></td><td align=center>²</td>
+ <td align=center><TT>A ^</tt></td><td align=center>Â</td>
+ <td align=center><TT>` O</tt></td><td align=center>Ò</td>
+ <td align=center><TT>^ a</tt></td><td align=center>â</td>
+ <td align=center><TT>` o</tt></td><td align=center>ò
+</tr><tr>
+ <td align=center><TT>#</tt></td><td align=center>£</td>
+ <td align=center><TT>3</tt></td><td align=center>³</td>
+ <td align=center><TT>~ A</tt></td><td align=center>Ã</td>
+ <td align=center><TT>' O</tt></td><td align=center>Ó</td>
+ <td align=center><TT>~ a</tt></td><td align=center>ã</td>
+ <td align=center><TT>' o</tt></td><td align=center>ó
+</tr><tr>
+ <td align=center><TT>$</tt></td><td align=center>¤</td>
+ <td align=center><TT>'</tt></td><td align=center>´</td>
+ <td align=center><TT>: A</tt></td><td align=center>Ä</td>
+ <td align=center><TT>^ O</tt></td><td align=center>Ô</td>
+ <td align=center><TT>: a</tt></td><td align=center>ä</td>
+ <td align=center><TT>^ o</tt></td><td align=center>ô
+</tr><tr>
+ <td align=center><TT>y =</tt></td><td align=center>¥</td>
+ <td align=center><TT>u</tt></td><td align=center>µ</td>
+ <td align=center><TT>* A</tt></td><td align=center>Å</td>
+ <td align=center><TT>~ O</tt></td><td align=center>Õ</td>
+ <td align=center><TT>* a</tt></td><td align=center>å</td>
+ <td align=center><TT>~ o</tt></td><td align=center>õ
+</tr><tr>
+ <td align=center><TT>|</tt></td><td align=center>¦</td>
+ <td align=center><TT>p</tt></td><td align=center>¶</td>
+ <td align=center><TT>A E</tt></td><td align=center>Æ</td>
+ <td align=center><TT>: O</tt></td><td align=center>Ö</td>
+ <td align=center><TT>a e</tt></td><td align=center>æ</td>
+ <td align=center><TT>: o</tt></td><td align=center>ö
+</tr><tr>
+ <td align=center><TT>&amp;</tt></td><td align=center>§</td>
+ <td align=center><TT>.</tt></td><td align=center>·</td>
+ <td align=center><TT>, C</tt></td><td align=center>Ç</td>
+ <td align=center><TT>x</tt></td><td align=center>×</td>
+ <td align=center><TT>, c</tt></td><td align=center>ç</td>
+ <td align=center><TT>- :</tt></td><td align=center>÷
+</tr><tr>
+ <td align=center><TT>:</tt></td><td align=center>¨</td>
+ <td align=center><TT>,</tt></td><td align=center>¸</td>
+ <td align=center><TT>E `</tt></td><td align=center>È</td>
+ <td align=center><TT>O /</tt></td><td align=center>Ø</td>
+ <td align=center><TT>` e</tt></td><td align=center>è</td>
+ <td align=center><TT>o /</tt></td><td align=center>ø
+</tr><tr>
+ <td align=center><TT>c</tt></td><td align=center>©</td>
+ <td align=center><TT>1</tt></td><td align=center>¹</td>
+ <td align=center><TT>' E</tt></td><td align=center>É</td>
+ <td align=center><TT>` U</tt></td><td align=center>Ù</td>
+ <td align=center><TT>' e</tt></td><td align=center>é</td>
+ <td align=center><TT>` u</tt></td><td align=center>ù
+</tr><tr>
+ <td align=center><TT>a</tt></td><td align=center>ª</td>
+ <td align=center><TT>o</tt></td><td align=center>º</td>
+ <td align=center><TT>^ E</tt></td><td align=center>Ê</td>
+ <td align=center><TT>' U</tt></td><td align=center>Ú</td>
+ <td align=center><TT>^ e</tt></td><td align=center>ê</td>
+ <td align=center><TT>' u</tt></td><td align=center>ú
+</tr><tr>
+ <td align=center><TT>&lt; &lt;</tt></td><td align=center>«</td>
+ <td align=center><TT>&gt; &gt;</tt></td><td align=center>»</td>
+ <td align=center><TT>: E</tt></td><td align=center>Ë</td>
+ <td align=center><TT>^ U</tt></td><td align=center>Û</td>
+ <td align=center><TT>: e</tt></td><td align=center>ë</td>
+ <td align=center><TT>^ u</tt></td><td align=center>û
+</tr><tr>
+ <td align=center><TT>~</tt></td><td align=center>¬</td>
+ <td align=center><TT>1 4</tt></td><td align=center>¼</td>
+ <td align=center><TT>` I</tt></td><td align=center>Ì</td>
+ <td align=center><TT>: U</tt></td><td align=center>Ü</td>
+ <td align=center><TT>` i</tt></td><td align=center>ì</td>
+ <td align=center><TT>: u</tt></td><td align=center>ü
+</tr><tr>
+ <td align=center><TT>-</tt></td><td align=center>­</td>
+ <td align=center><TT>1 2</tt></td><td align=center>½</td>
+ <td align=center><TT>' I</tt></td><td align=center>Í</td>
+ <td align=center><TT>' Y</tt></td><td align=center>Ý</td>
+ <td align=center><TT>' i</tt></td><td align=center>í</td>
+ <td align=center><TT>' y</tt></td><td align=center>ý
+</tr><tr>
+ <td align=center><TT>r</tt></td><td align=center>®</td>
+ <td align=center><TT>3 4</tt></td><td align=center>¾</td>
+ <td align=center><TT>^ I</tt></td><td align=center>Î</td>
+ <td align=center><TT>T H</tt></td><td align=center>Þ</td>
+ <td align=center><TT>^ i</tt></td><td align=center>î</td>
+ <td align=center><TT>t h</tt></td><td align=center>þ
+</tr><tr>
+ <td align=center><TT>_</tt></td><td align=center>¯</td>
+ <td align=center><TT>?</tt></td><td align=center>¿</td>
+ <td align=center><TT>: I</tt></td><td align=center>Ï</td>
+ <td align=center><TT>s s</tt></td><td align=center>ß</td>
+ <td align=center><TT>: i</tt></td><td align=center>ï</td>
+ <td align=center><TT>: y</tt></td><td align=center>ÿ
+</table></center>
+
+<H3>Methods</H3>
+<CENTER>
+<TABLE width=90% summary="Fl_Input methods.">
+<TR><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.Fl_Input>Fl_Input</A></LI>
+<LI><A href=#Fl_Input.~Fl_Input>~Fl_Input</A></LI>
+<LI><A href=#Fl_Input.cursor_color>cursor_color</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.index>index</A></LI>
+<LI><A href=#Fl_Input.size>size</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.static_value>static_value</A></LI>
+<LI><A href=#Fl_Input.textcolor>textcolor</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.textfont>textfont</A></LI>
+<LI><A href=#Fl_Input.textsize>textsize</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.value>value</A></LI>
+<LI><A href=#Fl_Input.when>when</A></LI>
+</UL>
+</TD></TR>
+</TABLE>
+</CENTER>
+<H4><A name=Fl_Input.Fl_Input>Fl_Input::Fl_Input(int x, int y, int w,
+int h, const char *label = 0)</A></H4>
+ Creates a new <TT>Fl_Input</TT> widget using the given position, size,
+and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
+<H4><A name=Fl_Input.~Fl_Input>virtual Fl_Input::~Fl_Input()</A></H4>
+ Destroys the widget and any value associated with it.
+<H4><A name=Fl_Input.value>const char *Fl_Input::value() const
+<BR> int Fl_Input::value(const char*)
+<BR> int Fl_Input::value(const char*, int)</A></H4>
+ The first form returns the current value, which is a pointer to the
+internal buffer and is valid only until the next event is handled.
+<P>The second two forms change the text and set the mark and the point
+to the end of it. The string is copied to the internal buffer. Passing <TT>
+NULL</TT> is the same as &quot;&quot;. This returns non-zero if the new value is
+different than the current one. You can use the second version to
+directly set the length if you know it already or want to put nul's in
+the text. </P>
+<H4><A name=Fl_Input.static_value>int Fl_Input::static_value(const
+char*)
+<BR> int Fl_Input::static_value(const char*, int)</A></H4>
+ Change the text and set the mark and the point to the end of it. The
+string is <I>not</I> copied. If the user edits the string it is copied
+to the internal buffer then. This can save a great deal of time and
+memory if your program is rapidly changing the values of text fields,
+but this will only work if the passed string remains unchanged until
+either the <TT>Fl_Input</TT> is destroyed or <TT>value()</TT> is called
+again.
+<H4><A name=Fl_Input.size>int Fl_Input::size() const</A></H4>
+ Returns the number of characters in <TT>value()</TT>. This may be
+greater than <TT>strlen(value())</TT> if there are nul characters in
+it.
+<H4><A name=Fl_Input.index>char Fl_Input::index(int) const</A></H4>
+ Same as <TT>value()[n]</TT>, but may be faster in plausible
+implementations. No bounds checking is done.
+<H4><A name=Fl_Input.when>Fl_When Fl_Widget::when() const
+<BR> void Fl_Widget::when(Fl_When)</A></H4>
+ Controls when callbacks are done. The following values are useful,
+the default value is <TT>FL_WHEN_RELEASE</TT>:
+<UL>
+<LI><TT>0</TT>: The callback is not done, but <TT>changed()</TT> is
+ turned on. </LI>
+<LI><TT>FL_WHEN_CHANGED</TT>: The callback is done each time the text
+is changed by the user. </LI>
+<LI><TT>FL_WHEN_RELEASE</TT>: The callback will be done when this
+widget loses the focus, including when the window is unmapped. This
+is a useful value for text fields in a panel where doing the callback
+on every change is wasteful. However the callback will also happen if
+the mouse is moved out of the window, which means it should not do
+anything visible (like pop up an error message). You might do better
+setting this to zero, and scanning all the items for <TT>changed()</TT>
+ when the OK button on a panel is pressed. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY</TT>: If the user types the Enter key, the
+entire text is selected, and the callback is done if the text has
+changed. Normally the Enter key will navigate to the next field (or
+insert a newline for a <TT>Fl_Mulitline_Input</TT>), this changes the
+behavior. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED</TT>: The Enter key will
+do the callback even if the text has not changed. Useful for command
+fields. </LI>
+</UL>
+<H4><A name=Fl_Input.textcolor>Fl_Color Fl_Input::textcolor() const
+<BR> void Fl_Input::textcolor(Fl_Color)</A></H4>
+ Gets or sets the color of the text in the input field.
+<H4><A name=Fl_Input.textfont>Fl_Font Fl_Input::textfont() const
+<BR> void Fl_Input::textfont(Fl_Font)</A></H4>
+ Gets or sets the font of the text in the input field.
+<H4><A name=Fl_Input.textsize>uchar Fl_Input::textsize() const
+<BR> void Fl_Input::textsize(uchar)</A></H4>
+ Gets or sets the size of the text in the input field.
+<H4><A name=Fl_Input.cursor_color>Fl_Color Fl_Input::cursor_color()
+const
+<BR> void Fl_Input::cursor_color(Fl_Color)</A></H4>
+ Get or set the color of the cursor. This is black by default.
+
+</BODY></HTML>
diff --git a/documentation/Fl_Text_Editor.html b/documentation/Fl_Text_Editor.html
new file mode 100644
index 000000000..e0b27db16
--- /dev/null
+++ b/documentation/Fl_Text_Editor.html
@@ -0,0 +1,336 @@
+<HTML><BODY>
+<HR break>
+<H2><A name=Fl_Input>class Fl_Input</A></H2>
+<HR>
+<H3>Class Hierarchy</H3>
+<UL>
+<PRE>
+<A href=Fl_Input_.html#Fl_Input_>Fl_Input_</A>
+ |
+ +----<B>Fl_Input</B>
+ |
+ +----<A href=Fl_Float_Input.html#Fl_Float_Input>Fl_Float_Input</A>, <A href=Fl_Int_Input.html#Fl_Int_Input>Fl_Int_Input</A>,
+ <A href=Fl_Multiline_Input.html#Fl_Multiline_Input>Fl_Multiline_Input</A>, <A href=Fl_Secret_Input.html#Fl_Secret_Input>Fl_Secret_Input</A>
+</PRE>
+</UL>
+<H3>Include Files</H3>
+<UL>
+<PRE>
+#include &lt;FL/Fl_Input.H&gt;
+</PRE>
+</UL>
+<H3>Description</H3>
+<P>This is the FLTK text input widget. It displays a single line of text
+and lets the user edit it. Normally it is drawn with an inset box and
+a white background. The text may contain any characters (even 0), and
+will correctly display anything, using ^X notation for unprintable
+control characters and \nnn notation for unprintable characters with
+the high bit set. It assumes the font can draw any characters in the
+ISO-8859-1 character set.
+
+<CENTER><TABLE border=1 WIDTH=90% summary="Fl_Input keyboard and mouse bindings.">
+
+<TR><TD WIDTH=200><B>Mouse button 1</B></TD><TD>Moves the cursor to
+ this point. Drag selects characters. Double click selects words.
+ Triple click selects all text. Shift+click extends the selection.
+ When you select text it is automatically copied to the clipboard.
+</TD></TR>
+
+<TR><TD><B>Mouse button 2</B></TD><TD>Insert the clipboard at
+the point clicked. You can also select a region and replace it with the
+clipboard by selecting the region with mouse button 2.
+</TD></TR>
+
+<TR><TD><B>Mouse button 3</B></TD><TD>Currently acts like button 1.</TD></TR>
+
+<TR><TD><B>Backspace</B></TD><TD>Deletes one character to the left, or
+deletes the selected region.</TD></TR>
+<TR><TD><B>Enter</B></TD><TD>May cause the callback, see when().</TD></TR>
+<TR><TD><B>^A or Home</B></TD><TD>Go to start of line.</TD></TR>
+<TR><TD><B>^B or Left</B></TD><TD>Move left</TD></TR>
+<TR><TD><B>^C</B></TD><TD>Copy the selection to the clipboard</TD></TR>
+<TR><TD><B>^D or Delete</B></TD><TD>Deletes one character to the right
+or deletes the selected region.</TD></TR>
+<TR><TD><B>^E or End</B></TD><TD>Go to the end of line.</TD></TR>
+<TR><TD><B>^F or Right</B></TD><TD>Move right</TD></TR>
+<TR><TD><B>^K</B></TD><TD>Delete to the end of line (next \n character)
+or deletes a single \n character. These deletions are all concatenated
+into the clipboard.</TD></TR>
+<TR><TD><B>^N or Down</B></TD><TD>Move down (for Fl_Multiline_Input
+only, otherwise it moves to the next input field).</TD></TR>
+<TR><TD><B>^P or Up</B></TD><TD>Move up (for Fl_Multiline_Input only,
+otherwise it moves to the previous input field).</TD></TR>
+<TR><TD><B>^U</B></TD><TD>Delete everything.</TD></TR>
+<TR><TD><B>^V or ^Y</B></TD><TD>Paste the clipboard</TD></TR>
+<TR><TD><B>^X or ^W</B></TD><TD>Copy the region to the clipboard and
+delete it.</TD></TR>
+<TR><TD><B>^Z or ^_</B></TD><TD>Undo. This is a single-level undo
+mechanism, but all adjacent deletions and insertions are concatenated
+into a single &quot;undo&quot;. Often this will undo a lot more than you
+expected.</TD></TR>
+<TR><TD><B>Shift+move</B></TD><TD>Move the cursor but also extend the
+selection.</TD></TR>
+
+<TR><TD><B>RightCtrl or
+<BR>Compose</B></TD><TD><a name=compose>Start</A>
+a <A href="events.html#compose">compose-character</A>
+sequence. The next one or two keys typed define the character to
+insert (see table that follows.)
+
+<p>For instance, to type "á" type [compose][a]['] or [compose]['][a].
+
+<P>The character "nbsp" (non-breaking space) is typed by using
+[compose][space].
+
+<P>The single-character sequences may be followed by a space if
+necessary to remove ambiguity. For instance, if you really want to
+type "ª~" rather than "ã" you must type [compose][a][space][~].
+
+<p>The same key may be used to "quote" control characters into the
+text. If you need a <tt>^Q</tt> character you can get one by typing
+[compose][Control+Q].
+
+<p>X may have a key on the keyboard
+defined as <tt>XK_Multi_key</tt>. If so this key may be used as well
+as the right-hand control key. You can set this up with the program
+<tt>xmodmap</tt>.
+
+<p>If your keyboard is set to support a foreign language you should
+also be able to type "dead key" prefix characters. On X you will
+actually be able to see what dead key you typed, and if you then move
+the cursor without completing the sequence the accent will remain
+inserted.
+</TABLE></CENTER>
+
+<!-- NEW PAGE -->
+<center><table border=1 summary="Character Composition Table">
+<caption align="top">Character Composition Table</caption>
+<tr>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+ <th>Keys</th><th>Char</th>
+
+</tr><tr>
+ <td align=center><TT>sp</TT></td><td align=center><small>nbsp</small></td>
+ <td align=center><TT>*</tt></td><td align=center>°</td>
+ <td align=center><TT>` A</tt></td><td align=center>À</td>
+ <td align=center><TT>D -</tt></td><td align=center>Ð</td>
+ <td align=center><TT>` a</tt></td><td align=center>à</td>
+ <td align=center><TT>d -</tt></td><td align=center>ð
+</tr><tr>
+ <td align=center><TT>!</tt></td><td align=center>¡</td>
+ <td align=center><TT>+ -</tt></td><td align=center>±</td>
+ <td align=center><TT>' A</tt></td><td align=center>Á</td>
+ <td align=center><TT>~ N</tt></td><td align=center>Ñ</td>
+ <td align=center><TT>' a</tt></td><td align=center>á</td>
+ <td align=center><TT>~ n</tt></td><td align=center>ñ
+</tr><tr>
+ <td align=center><TT>%</tt></td><td align=center>¢</td>
+ <td align=center><TT>2</tt></td><td align=center>²</td>
+ <td align=center><TT>A ^</tt></td><td align=center>Â</td>
+ <td align=center><TT>` O</tt></td><td align=center>Ò</td>
+ <td align=center><TT>^ a</tt></td><td align=center>â</td>
+ <td align=center><TT>` o</tt></td><td align=center>ò
+</tr><tr>
+ <td align=center><TT>#</tt></td><td align=center>£</td>
+ <td align=center><TT>3</tt></td><td align=center>³</td>
+ <td align=center><TT>~ A</tt></td><td align=center>Ã</td>
+ <td align=center><TT>' O</tt></td><td align=center>Ó</td>
+ <td align=center><TT>~ a</tt></td><td align=center>ã</td>
+ <td align=center><TT>' o</tt></td><td align=center>ó
+</tr><tr>
+ <td align=center><TT>$</tt></td><td align=center>¤</td>
+ <td align=center><TT>'</tt></td><td align=center>´</td>
+ <td align=center><TT>: A</tt></td><td align=center>Ä</td>
+ <td align=center><TT>^ O</tt></td><td align=center>Ô</td>
+ <td align=center><TT>: a</tt></td><td align=center>ä</td>
+ <td align=center><TT>^ o</tt></td><td align=center>ô
+</tr><tr>
+ <td align=center><TT>y =</tt></td><td align=center>¥</td>
+ <td align=center><TT>u</tt></td><td align=center>µ</td>
+ <td align=center><TT>* A</tt></td><td align=center>Å</td>
+ <td align=center><TT>~ O</tt></td><td align=center>Õ</td>
+ <td align=center><TT>* a</tt></td><td align=center>å</td>
+ <td align=center><TT>~ o</tt></td><td align=center>õ
+</tr><tr>
+ <td align=center><TT>|</tt></td><td align=center>¦</td>
+ <td align=center><TT>p</tt></td><td align=center>¶</td>
+ <td align=center><TT>A E</tt></td><td align=center>Æ</td>
+ <td align=center><TT>: O</tt></td><td align=center>Ö</td>
+ <td align=center><TT>a e</tt></td><td align=center>æ</td>
+ <td align=center><TT>: o</tt></td><td align=center>ö
+</tr><tr>
+ <td align=center><TT>&amp;</tt></td><td align=center>§</td>
+ <td align=center><TT>.</tt></td><td align=center>·</td>
+ <td align=center><TT>, C</tt></td><td align=center>Ç</td>
+ <td align=center><TT>x</tt></td><td align=center>×</td>
+ <td align=center><TT>, c</tt></td><td align=center>ç</td>
+ <td align=center><TT>- :</tt></td><td align=center>÷
+</tr><tr>
+ <td align=center><TT>:</tt></td><td align=center>¨</td>
+ <td align=center><TT>,</tt></td><td align=center>¸</td>
+ <td align=center><TT>E `</tt></td><td align=center>È</td>
+ <td align=center><TT>O /</tt></td><td align=center>Ø</td>
+ <td align=center><TT>` e</tt></td><td align=center>è</td>
+ <td align=center><TT>o /</tt></td><td align=center>ø
+</tr><tr>
+ <td align=center><TT>c</tt></td><td align=center>©</td>
+ <td align=center><TT>1</tt></td><td align=center>¹</td>
+ <td align=center><TT>' E</tt></td><td align=center>É</td>
+ <td align=center><TT>` U</tt></td><td align=center>Ù</td>
+ <td align=center><TT>' e</tt></td><td align=center>é</td>
+ <td align=center><TT>` u</tt></td><td align=center>ù
+</tr><tr>
+ <td align=center><TT>a</tt></td><td align=center>ª</td>
+ <td align=center><TT>o</tt></td><td align=center>º</td>
+ <td align=center><TT>^ E</tt></td><td align=center>Ê</td>
+ <td align=center><TT>' U</tt></td><td align=center>Ú</td>
+ <td align=center><TT>^ e</tt></td><td align=center>ê</td>
+ <td align=center><TT>' u</tt></td><td align=center>ú
+</tr><tr>
+ <td align=center><TT>&lt; &lt;</tt></td><td align=center>«</td>
+ <td align=center><TT>&gt; &gt;</tt></td><td align=center>»</td>
+ <td align=center><TT>: E</tt></td><td align=center>Ë</td>
+ <td align=center><TT>^ U</tt></td><td align=center>Û</td>
+ <td align=center><TT>: e</tt></td><td align=center>ë</td>
+ <td align=center><TT>^ u</tt></td><td align=center>û
+</tr><tr>
+ <td align=center><TT>~</tt></td><td align=center>¬</td>
+ <td align=center><TT>1 4</tt></td><td align=center>¼</td>
+ <td align=center><TT>` I</tt></td><td align=center>Ì</td>
+ <td align=center><TT>: U</tt></td><td align=center>Ü</td>
+ <td align=center><TT>` i</tt></td><td align=center>ì</td>
+ <td align=center><TT>: u</tt></td><td align=center>ü
+</tr><tr>
+ <td align=center><TT>-</tt></td><td align=center>­</td>
+ <td align=center><TT>1 2</tt></td><td align=center>½</td>
+ <td align=center><TT>' I</tt></td><td align=center>Í</td>
+ <td align=center><TT>' Y</tt></td><td align=center>Ý</td>
+ <td align=center><TT>' i</tt></td><td align=center>í</td>
+ <td align=center><TT>' y</tt></td><td align=center>ý
+</tr><tr>
+ <td align=center><TT>r</tt></td><td align=center>®</td>
+ <td align=center><TT>3 4</tt></td><td align=center>¾</td>
+ <td align=center><TT>^ I</tt></td><td align=center>Î</td>
+ <td align=center><TT>T H</tt></td><td align=center>Þ</td>
+ <td align=center><TT>^ i</tt></td><td align=center>î</td>
+ <td align=center><TT>t h</tt></td><td align=center>þ
+</tr><tr>
+ <td align=center><TT>_</tt></td><td align=center>¯</td>
+ <td align=center><TT>?</tt></td><td align=center>¿</td>
+ <td align=center><TT>: I</tt></td><td align=center>Ï</td>
+ <td align=center><TT>s s</tt></td><td align=center>ß</td>
+ <td align=center><TT>: i</tt></td><td align=center>ï</td>
+ <td align=center><TT>: y</tt></td><td align=center>ÿ
+</table></center>
+
+<H3>Methods</H3>
+<CENTER>
+<TABLE width=90% summary="Fl_Input methods.">
+<TR><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.Fl_Input>Fl_Input</A></LI>
+<LI><A href=#Fl_Input.~Fl_Input>~Fl_Input</A></LI>
+<LI><A href=#Fl_Input.cursor_color>cursor_color</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.index>index</A></LI>
+<LI><A href=#Fl_Input.size>size</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.static_value>static_value</A></LI>
+<LI><A href=#Fl_Input.textcolor>textcolor</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.textfont>textfont</A></LI>
+<LI><A href=#Fl_Input.textsize>textsize</A></LI>
+</UL>
+</TD><TD align=left valign=top>
+<UL>
+<LI><A href=#Fl_Input.value>value</A></LI>
+<LI><A href=#Fl_Input.when>when</A></LI>
+</UL>
+</TD></TR>
+</TABLE>
+</CENTER>
+<H4><A name=Fl_Input.Fl_Input>Fl_Input::Fl_Input(int x, int y, int w,
+int h, const char *label = 0)</A></H4>
+ Creates a new <TT>Fl_Input</TT> widget using the given position, size,
+and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
+<H4><A name=Fl_Input.~Fl_Input>virtual Fl_Input::~Fl_Input()</A></H4>
+ Destroys the widget and any value associated with it.
+<H4><A name=Fl_Input.value>const char *Fl_Input::value() const
+<BR> int Fl_Input::value(const char*)
+<BR> int Fl_Input::value(const char*, int)</A></H4>
+ The first form returns the current value, which is a pointer to the
+internal buffer and is valid only until the next event is handled.
+<P>The second two forms change the text and set the mark and the point
+to the end of it. The string is copied to the internal buffer. Passing <TT>
+NULL</TT> is the same as &quot;&quot;. This returns non-zero if the new value is
+different than the current one. You can use the second version to
+directly set the length if you know it already or want to put nul's in
+the text. </P>
+<H4><A name=Fl_Input.static_value>int Fl_Input::static_value(const
+char*)
+<BR> int Fl_Input::static_value(const char*, int)</A></H4>
+ Change the text and set the mark and the point to the end of it. The
+string is <I>not</I> copied. If the user edits the string it is copied
+to the internal buffer then. This can save a great deal of time and
+memory if your program is rapidly changing the values of text fields,
+but this will only work if the passed string remains unchanged until
+either the <TT>Fl_Input</TT> is destroyed or <TT>value()</TT> is called
+again.
+<H4><A name=Fl_Input.size>int Fl_Input::size() const</A></H4>
+ Returns the number of characters in <TT>value()</TT>. This may be
+greater than <TT>strlen(value())</TT> if there are nul characters in
+it.
+<H4><A name=Fl_Input.index>char Fl_Input::index(int) const</A></H4>
+ Same as <TT>value()[n]</TT>, but may be faster in plausible
+implementations. No bounds checking is done.
+<H4><A name=Fl_Input.when>Fl_When Fl_Widget::when() const
+<BR> void Fl_Widget::when(Fl_When)</A></H4>
+ Controls when callbacks are done. The following values are useful,
+the default value is <TT>FL_WHEN_RELEASE</TT>:
+<UL>
+<LI><TT>0</TT>: The callback is not done, but <TT>changed()</TT> is
+ turned on. </LI>
+<LI><TT>FL_WHEN_CHANGED</TT>: The callback is done each time the text
+is changed by the user. </LI>
+<LI><TT>FL_WHEN_RELEASE</TT>: The callback will be done when this
+widget loses the focus, including when the window is unmapped. This
+is a useful value for text fields in a panel where doing the callback
+on every change is wasteful. However the callback will also happen if
+the mouse is moved out of the window, which means it should not do
+anything visible (like pop up an error message). You might do better
+setting this to zero, and scanning all the items for <TT>changed()</TT>
+ when the OK button on a panel is pressed. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY</TT>: If the user types the Enter key, the
+entire text is selected, and the callback is done if the text has
+changed. Normally the Enter key will navigate to the next field (or
+insert a newline for a <TT>Fl_Mulitline_Input</TT>), this changes the
+behavior. </LI>
+<LI><TT>FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED</TT>: The Enter key will
+do the callback even if the text has not changed. Useful for command
+fields. </LI>
+</UL>
+<H4><A name=Fl_Input.textcolor>Fl_Color Fl_Input::textcolor() const
+<BR> void Fl_Input::textcolor(Fl_Color)</A></H4>
+ Gets or sets the color of the text in the input field.
+<H4><A name=Fl_Input.textfont>Fl_Font Fl_Input::textfont() const
+<BR> void Fl_Input::textfont(Fl_Font)</A></H4>
+ Gets or sets the font of the text in the input field.
+<H4><A name=Fl_Input.textsize>uchar Fl_Input::textsize() const
+<BR> void Fl_Input::textsize(uchar)</A></H4>
+ Gets or sets the size of the text in the input field.
+<H4><A name=Fl_Input.cursor_color>Fl_Color Fl_Input::cursor_color()
+const
+<BR> void Fl_Input::cursor_color(Fl_Color)</A></H4>
+ Get or set the color of the cursor. This is black by default.
+
+</BODY></HTML>
diff --git a/documentation/Fl_Tiled_Image.html b/documentation/Fl_Tiled_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_Tiled_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_XBM_Image.html b/documentation/Fl_XBM_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_XBM_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_XPM_Image.html b/documentation/Fl_XPM_Image.html
new file mode 100644
index 000000000..010fcc73a
--- /dev/null
+++ b/documentation/Fl_XPM_Image.html
@@ -0,0 +1,51 @@
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<HR>
+
+<H3>Class Hierarchy</H3>
+
+<UL><PRE>
+<A href="Fl_Image.html">Fl_Image</A>
+ |
+ +----<B>Fl_Bitmap</B>
+ |
+ +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+</PRE></UL>
+
+<H3>Include Files</H3>
+
+<UL><PRE>
+#include &lt;FL/Fl_Bitmap.H&gt;
+</PRE></UL>
+
+<H3>Description</H3>
+
+<P>The <TT>Fl_Bitmap</TT> class supports caching and drawing of mono-color
+(bitmap) images. Images are drawn using the current color.</P>
+
+<H3>Methods</H3>
+
+<UL>
+
+ <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+
+ <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+
+</UL>
+
+<H4><A name="Fl_Bitmap.Fl_Bitmap">Fl_Bitmap::Fl_Bitmap(const char *array, int W, int H);<BR>
+Fl_Bitmap::Fl_Bitmap(const unsigned char *array, int W, int H);</A></H4>
+
+<P>The constructors create a new bitmap from the specified bitmap data.</P>
+
+<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+
+<P>The destructor free all memory and server resources that are used by
+the bitmap.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Makefile b/documentation/Makefile
index d8ab502da..1d4b24f08 100644
--- a/documentation/Makefile
+++ b/documentation/Makefile
@@ -1,5 +1,5 @@
#
-# "$Id: Makefile,v 1.9.2.10.2.2 2001/11/19 21:25:35 easysw Exp $"
+# "$Id: Makefile,v 1.9.2.10.2.3 2001/11/27 02:09:45 easysw Exp $"
#
# Documentation makefile for the Fast Light Tool Kit (FLTK).
#
@@ -40,81 +40,102 @@ MEDIA = --size universal
# 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...
+# These are the HTML "source" files...
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 \
- migration.html \
- license.html
+ basics.html \
+ common.html \
+ drawing.html \
+ editor.html \
+ enumerations.html \
+ events.html \
+ Fl_Adjuster.html \
+ Fl_Bitmap.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_File_Browser.html \
+ Fl_File_Chooser.html \
+ Fl_File_Icon.html \
+ Fl_Float_Input.html \
+ Fl_Free.html \
+ Fl_GIF_Image.html \
+ Fl_Gl_Window.html \
+ Fl_Group.html \
+ Fl_Help_Dialog.html \
+ Fl_Help_View.html \
+ Fl_Hold_Browser.html \
+ Fl.html \
+ Fl_Image.html \
+ Fl_Input_.html \
+ Fl_Input.html \
+ Fl_Int_Input.html \
+ Fl_JPEG_Image.html \
+ Fl_Light_Button.html \
+ Fl_Menu_Bar.html \
+ Fl_Menu_Button.html \
+ Fl_Menu_.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_Pixmap.html \
+ Fl_PNG_Image.html \
+ Fl_PNM_Image.html \
+ Fl_Positioner.html \
+ Fl_Repeat_Button.html \
+ Fl_Return_Button.html \
+ Fl_RGB_Image.html \
+ Fl_Roller.html \
+ Fl_Round_Button.html \
+ Fl_Scrollbar.html \
+ Fl_Scroll.html \
+ Fl_Secret_Input.html \
+ Fl_Select_Browser.html \
+ Fl_Shared_Image.html \
+ Fl_Single_Window.html \
+ Fl_Slider.html \
+ Fl_Tabs.html \
+ Fl_Text_Buffer.html \
+ Fl_Text_Display.html \
+ Fl_Text_Editor.html \
+ Fl_Tiled_Image.html \
+ Fl_Tile.html \
+ Fl_Timer.html \
+ fluid.html \
+ Fl_Valuator.html \
+ Fl_Value_Input.html \
+ Fl_Value_Output.html \
+ Fl_Value_Slider.html \
+ Fl_Widget.html \
+ Fl_Window.html \
+ Fl_Wizard.html \
+ Fl_XBM_Image.html \
+ Fl_XPM_Image.html \
+ forms.html \
+ functions.html \
+ glut.html \
+ intro.html \
+ license.html \
+ migration.html \
+ opengl.html \
+ osissues.html \
+ preface.html \
+ subclassing.html \
+ widgets.html
MANPAGES = fltk.$(CAT3EXT) fluid.$(CAT1EXT)
@@ -178,5 +199,5 @@ fltk.pdf: $(HTMLFILES)
$(HTMLDOC) -f fltk.pdf --jpeg --compression=9 --duplex --verbose --toclevels 2 --titleimage FL.gif $(HTMLFILES)
#
-# End of "$Id: Makefile,v 1.9.2.10.2.2 2001/11/19 21:25:35 easysw Exp $".
+# End of "$Id: Makefile,v 1.9.2.10.2.3 2001/11/27 02:09:45 easysw Exp $".
#
diff --git a/documentation/fltk.book b/documentation/fltk.book
index 79fc90d23..33ff1c7b5 100644
--- a/documentation/fltk.book
+++ b/documentation/fltk.book
@@ -1,4 +1,4 @@
-#HTMLDOC 1.8.16
+#HTMLDOC 1.8.17
-t pdf13 -f fltk.pdf --book --toclevels 2 --no-numbered --toctitle "Table of Contents" --title --titleimage FL.gif --linkstyle underline --size Universal --left 1.00in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --footer h.1 --tocheader .t. --tocfooter ..i --duplex --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=50 --fontsize 11.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Times --headfootsize 11.0 --headfootfont Helvetica --charset 8859-1 --links --no-truetype --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 680
preface.html
intro.html
@@ -11,7 +11,9 @@ subclassing.html
fluid.html
opengl.html
widgets.html
+Fl.html
Fl_Adjuster.html
+Fl_Bitmap.html
Fl_Box.html
Fl_Browser_.html
Fl_Browser.html
@@ -30,14 +32,17 @@ Fl_File_Chooser.html
Fl_File_Icon.html
Fl_Float_Input.html
Fl_Free.html
+Fl_GIF_Image.html
Fl_Gl_Window.html
Fl_Group.html
Fl_Help_Dialog.html
Fl_Help_View.html
Fl_Hold_Browser.html
+Fl_Image.html
Fl_Input.html
Fl_Input_.html
Fl_Int_Input.html
+Fl_JPEG_Image.html
Fl_Light_Button.html
Fl_Menu_.html
Fl_Menu_Bar.html
@@ -50,8 +55,12 @@ Fl_Multiline_Output.html
Fl_Output.html
Fl_Overlay_Window.html
Fl_Pack.html
+Fl_Pixmap.html
+Fl_PNG_Image.html
+Fl_PNM_Image.html
Fl_Positioner.html
Fl_Repeat_Button.html
+Fl_RGB_Image.html
Fl_Return_Button.html
Fl_Roller.html
Fl_Round_Button.html
@@ -63,6 +72,7 @@ Fl_Single_Window.html
Fl_Slider.html
Fl_Tabs.html
Fl_Tile.html
+Fl_Tiled_Image.html
Fl_Timer.html
Fl_Valuator.html
Fl_Value_Input.html
@@ -71,6 +81,8 @@ Fl_Value_Slider.html
Fl_Widget.html
Fl_Window.html
Fl_Wizard.html
+Fl_XBM_Image.html
+Fl_XPM_Image.html
functions.html
enumerations.html
glut.html