summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-11-27 04:55:48 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-11-27 04:55:48 +0000
commit4dc5732a3e0f376786d1d6b788e5cf601439e890 (patch)
tree2aab2bfb14b58f41f28f327b734f1a775f2a4376
parent772f94ca1ac8aec25aa4ccc337454cf76c5ea700 (diff)
Image class docos.
Start of text buffer docos. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1754 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--documentation/Fl_Bitmap.html2
-rw-r--r--documentation/Fl_GIF_Image.html28
-rw-r--r--documentation/Fl_Image.html517
-rw-r--r--documentation/Fl_JPEG_Image.html29
-rw-r--r--documentation/Fl_PNG_Image.html29
-rw-r--r--documentation/Fl_PNM_Image.html29
-rw-r--r--documentation/Fl_Pixmap.html29
-rw-r--r--documentation/Fl_RGB_Image.html31
-rw-r--r--documentation/Fl_Text_Buffer.html681
-rw-r--r--documentation/Fl_XBM_Image.html27
-rw-r--r--documentation/Fl_XPM_Image.html27
-rw-r--r--documentation/fltk.book3
12 files changed, 661 insertions, 771 deletions
diff --git a/documentation/Fl_Bitmap.html b/documentation/Fl_Bitmap.html
index 010fcc73a..697e2b6b7 100644
--- a/documentation/Fl_Bitmap.html
+++ b/documentation/Fl_Bitmap.html
@@ -3,7 +3,7 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_Bitmap">class Fl_Bitmap</A></H2>
<HR>
<H3>Class Hierarchy</H3>
diff --git a/documentation/Fl_GIF_Image.html b/documentation/Fl_GIF_Image.html
index 010fcc73a..543bfcc30 100644
--- a/documentation/Fl_GIF_Image.html
+++ b/documentation/Fl_GIF_Image.html
@@ -3,49 +3,47 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_GIF_Image">class Fl_GIF_Image</A></H2>
<HR>
<H3>Class Hierarchy</H3>
<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
+<A href="Fl_Pixmap.html">Fl_Pixmap</A>
|
- +----<B>Fl_Bitmap</B>
- |
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<B>Fl_GIF_Image</B>
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_GIF_Image.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>
+<P>The <TT>Fl_GIF_Image</TT> class supports loading, caching,
+and drawing of Compuserve GIF<SUP>SM</SUP> images. The class
+loads the first image and supports transparency.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_GIF_Image.Fl_GIF_Image">Fl_GIF_Image</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_GIF_Image.~Fl_GIF_Image">~Fl_GIF_Image</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>
+<H4><A name="Fl_GIF_Image.Fl_GIF_Image">Fl_GIF_Image::Fl_GIF_Image(const char *filename);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructor loads the named GIF image.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_GIF_Image.~Fl_GIF_Image">Fl_GIF_Image::~Fl_GIF_Image();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the image.</P>
</BODY>
</HTML>
diff --git a/documentation/Fl_Image.html b/documentation/Fl_Image.html
index e0b27db16..16d95687a 100644
--- a/documentation/Fl_Image.html
+++ b/documentation/Fl_Image.html
@@ -1,336 +1,199 @@
-<HTML><BODY>
-<HR break>
-<H2><A name=Fl_Input>class Fl_Input</A></H2>
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name="Fl_Image">class Fl_Image</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>
+
+<UL><PRE>
+<B>Fl_Image</B>
+ |
+ +----<A href="Fl_Bitmap.html">Fl_Bitmap</A>,
+ <A href="Fl_Pixmap.html">Fl_Pixmap</A>,
+ <A href="Fl_RGB_Image.html">Fl_RGB_Image</A>,
+ <A href="Fl_Shared_Image.html">Fl_Shared_Image</A>,
+ <A href="Fl_Tiled_Image.html">Fl_Tiled_Image</A>
+</PRE></UL>
+
<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Input.H&gt;
-</PRE>
-</UL>
+
+<UL><PRE>
+#include &lt;FL/Fl_Image.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>
+<P><TT>Fl_Image</TT> is the base class used for caching and
+drawing all kinds of images in FLTK. This class keeps track of
+common image data such as the pixels, colormap, width, height,
+and depth. Virtual methods are used to provide type-specific
+image handling.</P>
+
+<P>Since the <TT>Fl_Image</TT> class does not support image
+drawing by itself, calling the <TT>draw()</TT> method results in
+a box with an X in it being drawn instead.</P>
<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>
+
+ <LI><A href="#Fl_Image.Fl_Image">Fl_Image</A></LI>
+
+ <LI><A href="#Fl_Image.~Fl_Image">~Fl_Image</A></LI>
+
+ <LI><A href="#Fl_Image.color_average">color_average</A></LI>
+
+ <LI><A href="#Fl_Image.copy">copy</A></LI>
+
+ <LI><A href="#Fl_Image.count">count</A></LI>
+
+ <LI><A href="#Fl_Image.d">d</A></LI>
+
+ <LI><A href="#Fl_Image.data">data</A></LI>
+
+ <LI><A href="#Fl_Image.desaturate">desaturate</A></LI>
+
+ <LI><A href="#Fl_Image.draw">draw</A></LI>
+
+ <LI><A href="#Fl_Image.draw_empty">draw_empty</A></LI>
+
+ <LI><A href="#Fl_Image.h">h</A></LI>
+
+ <LI><A href="#Fl_Image.inactive">inactive</A></LI>
+
+ <LI><A href="#Fl_Image.label">label</A></LI>
+
+ <LI><A href="#Fl_Image.ld">ld</A></LI>
+
+ <LI><A href="#Fl_Image.w">w</A></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>
+
+<H4><A NAME="Fl_Image.Fl_Image">Fl_Image(int W, int H, int D);</A></H4>
+
+<P>The constructor creates an empty image with the specified
+width, height, and depth. The width and height are in pixels.
+The depth is 0 for bitmaps, 1 for pixmap (colormap) images, and
+1 to 4 for color images.</P>
+
+<H4><A NAME="Fl_Image.~Fl_Image">virtual ~Fl_Image();</A></H4>
+
+<P>The destructor is a virtual method that frees all memory used
+by the image.</P>
+
+<H4><A NAME="Fl_Image.color_average">virtual void color_average(Fl_Color c, float i);</A></H4>
+
+<P>The <TT>color_average()</TT> method averages the colors in
+the image with the FLTK color value <TT>c</TT>. The <TT>i</TT>
+argument specifies the amount of the original image to combine
+with the color, so a value of 1.0 results in no color blend, and
+a value of 0.0 results in a constant image of the specified
+color. <I>The original image data is not altered by this
+method.</I></P>
+
+<H4><A NAME="Fl_Image.copy">virtual Fl_Image *copy(int W, int H);<BR>
+copy();</A></H4>
+
+<P>The <TT>copy()</TT> method creates a copy of the specified
+image. If the width and height are provided, the image is
+resized to the specified size.</P>
+
+<H4><A NAME="Fl_Image.count">int count();</A></H4>
+
+<P>The <TT>count()</TT> method returns the number of data values
+associated with the image. The value will be 0 for images with
+no associated data, 1 for bitmap and color images, and greater
+than 2 for pixmap images.</P>
+
+<H4><A NAME="Fl_Image.d">int d();<BR>
+protected void d(int D);</A></H4>
+
+<P>The first form of the <TT>d()</TT> method returns the current
+image depth. The return value will be 0 for bitmaps, 1 for
+pixmaps, and 1 to 4 for color images.</P>
+
+<P>The second form is a protected method that sets the current
+image depth.</P>
+
+<H4><A NAME="Fl_Image.data">const char * const *data();<BR>
+protected void data(const char * const *data, int count);</A></H4>
+
+<P>The first form of the <TT>data()</TT> method returns a
+pointer to the current image data array. Use the
+<TT>count()</TT> method to find the size of the data array.</P>
+
+<P>The second form is a protected method that sets the current
+array pointer and count of pointers in the array.</P>
+
+<H4><A NAME="Fl_Image.desaturate">virtual void desaturate()</A></H4>
+
+<P>The <TT>desaturate()</TT> method converts an image to
+grayscale. If the image contains an alpha channel (depth = 4),
+the alpha channel is preserved. <I>This method does not alter
+the original image data.</I></P>
+
+<H4><A NAME="Fl_Image.draw">void draw(int X, int Y);<BR>
+virtual void draw(int X, int Y, int W, int H, int cx, int cy);</A></H4>
+
+<P>The <TT>draw()</TT> methods draw the image. The first form
+specifies the upper-lefthand corner of the image. The second
+form specifies a bounding box for the image, with the origin
+(upper-lefthand corner) of the image offset by the <TT>cx</TT>
+and <TT>cy</TT> arguments.</P>
+
+<H4><A NAME="Fl_Image.draw_empty">protected void draw_empty(int X, int Y);</A></H4>
+
+<P>The protected method <TT>draw_empty()</TT> draws a box with
+an X in it. It can be used to draw any image that lacks image
+data.</P>
+
+<H4><A NAME="Fl_Image.h">int h();<BR>
+protected void h(int H);</A></H4>
+
+<P>The first form of the <TT>h()</TT> method returns the current
+image height in pixels.</P>
+
+<P>The second form is a protected method that sets the current
+image height.</P>
+
+<H4><A NAME="Fl_Image.inactive">void inactive();</A></H4>
+
+<P>The <TT>inactive()</TT> method calls
+<TT>color_average(FL_GRAY, 0.33f)</TT> to produce an image that
+appears grayed out. <I>This method does not alter the original
+image data.</I></P>
+
+<H4><A NAME="Fl_Image.label">virtual void label(Fl_Widget *w);
+virtual void label(Fl_Menu_Item *m);</A></H4>
+
+<P>The <TT>label()</TT> methods are an obsolete way to set the
+image attribute of a widget or menu item. Use the
+<TT>image()</TT> or <TT>deimage()</TT> methods of the
+<TT>Fl_Widget</TT> and <TT>Fl_Menu_Item</TT> classes
+instead.</P>
+
+<H4><A NAME="Fl_Image.ld">int ld();<BR>
+protected void ld(int LD);</A></H4>
+
+<P>The first form of the <TT>ld()</TT> method returns the current
+line data size in bytes. Line data is extra data that is included
+after each line of color image data and is normally not present.</P>
+
+<P>The second form is a protected method that sets the current
+line data size in bytes.</P>
+
+<H4><A NAME="Fl_Image.w">int w();<BR>
+protected void w(int W);</A></H4>
+
+<P>The first form of the <TT>w()</TT> method returns the current
+image width in pixels.</P>
+
+<P>The second form is a protected method that sets the current
+image width.</P>
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_JPEG_Image.html b/documentation/Fl_JPEG_Image.html
index 010fcc73a..74c609b24 100644
--- a/documentation/Fl_JPEG_Image.html
+++ b/documentation/Fl_JPEG_Image.html
@@ -3,49 +3,48 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_JPEG_Image">class Fl_JPEG_Image</A></H2>
<HR>
<H3>Class Hierarchy</H3>
<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
+<A href="Fl_RGB_Image.html">Fl_RGB_Image</A>
|
- +----<B>Fl_Bitmap</B>
- |
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<B>Fl_JPEG_Image</B>
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_JPEG_Image.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>
+<P>The <TT>Fl_JPEG_Image</TT> class supports loading, caching,
+and drawing of Joint Photographic Experts Group (JPEG) File
+Interchange Format (JFIF) images. The class supports grayscale
+and color (RGB) JPEG image files.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_JPEG_Image.Fl_JPEG_Image">Fl_JPEG_Image</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_JPEG_Image.~Fl_JPEG_Image">~Fl_JPEG_Image</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>
+<H4><A name="Fl_JPEG_Image.Fl_JPEG_Image">Fl_JPEG_Image::Fl_JPEG_Image(const char *filename);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructor loads the named JPEG image.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_JPEG_Image.~Fl_JPEG_Image">Fl_JPEG_Image::~Fl_JPEG_Image();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the image.</P>
</BODY>
</HTML>
diff --git a/documentation/Fl_PNG_Image.html b/documentation/Fl_PNG_Image.html
index 010fcc73a..a87ac5455 100644
--- a/documentation/Fl_PNG_Image.html
+++ b/documentation/Fl_PNG_Image.html
@@ -3,49 +3,48 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_PNG_Image">class Fl_PNG_Image</A></H2>
<HR>
<H3>Class Hierarchy</H3>
<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
+<A href="Fl_RGB_Image.html">Fl_RGB_Image</A>
|
- +----<B>Fl_Bitmap</B>
- |
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<B>Fl_PNG_Image</B>
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_PNG_Image.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>
+<P>The <TT>Fl_PNG_Image</TT> class supports loading, caching,
+and drawing of Portable Network Graphics (PNG) image files. The
+class loads colormapped and full-color images and handles color-
+and alpha-based transparency.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_PNG_Image.Fl_PNG_Image">Fl_PNG_Image</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_PNG_Image.~Fl_PNG_Image">~Fl_PNG_Image</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>
+<H4><A name="Fl_PNG_Image.Fl_PNG_Image">Fl_PNG_Image::Fl_PNG_Image(const char *filename);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructor loads the named PNG image.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_PNG_Image.~Fl_PNG_Image">Fl_PNG_Image::~Fl_PNG_Image();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the image.</P>
</BODY>
</HTML>
diff --git a/documentation/Fl_PNM_Image.html b/documentation/Fl_PNM_Image.html
index 010fcc73a..7b761c5f9 100644
--- a/documentation/Fl_PNM_Image.html
+++ b/documentation/Fl_PNM_Image.html
@@ -3,49 +3,48 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_PNM_Image">class Fl_PNM_Image</A></H2>
<HR>
<H3>Class Hierarchy</H3>
<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
+<A href="Fl_RGB_Image.html">Fl_RGB_Image</A>
|
- +----<B>Fl_Bitmap</B>
- |
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<B>Fl_PNM_Image</B>
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_PNM_Image.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>
+<P>The <TT>Fl_PNM_Image</TT> class supports loading, caching,
+and drawing of Portable Anymap (PNM, PBM, PGM, PPM) image files. The class
+loads bitmap, grayscale, and full-color images in both ASCII and
+binary formats.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_PNM_Image.Fl_PNM_Image">Fl_PNM_Image</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_PNM_Image.~Fl_PNM_Image">~Fl_PNM_Image</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>
+<H4><A name="Fl_PNM_Image.Fl_PNM_Image">Fl_PNM_Image::Fl_PNM_Image(const char *filename);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructor loads the named PNM image.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_PNM_Image.~Fl_PNM_Image">Fl_PNM_Image::~Fl_PNM_Image();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the image.</P>
</BODY>
</HTML>
diff --git a/documentation/Fl_Pixmap.html b/documentation/Fl_Pixmap.html
index 010fcc73a..8054e5ffb 100644
--- a/documentation/Fl_Pixmap.html
+++ b/documentation/Fl_Pixmap.html
@@ -3,7 +3,7 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_Pixmap">class Fl_Pixmap</A></H2>
<HR>
<H3>Class Hierarchy</H3>
@@ -11,41 +11,44 @@
<UL><PRE>
<A href="Fl_Image.html">Fl_Image</A>
|
- +----<B>Fl_Bitmap</B>
+ +----<B>Fl_Pixmap</B>
|
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<A href="Fl_GIF_Image.html">Fl_GIF_Image</A>,
+ <A href="Fl_XPM_Image.html">Fl_XPM_Image</A>
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_Pixmap.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>
+<P>The <TT>Fl_Pixmap</TT> class supports caching and drawing of colormap
+(pixmap) images, including transparency.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_Pixmap.Fl_Pixmap">Fl_Pixmap</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_Pixmap.~Fl_Pixmap">~Fl_Pixmap</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>
+<H4><A name="Fl_Pixmap.Fl_Pixmap">Fl_Pixmap::Fl_Pixmap(const char * const *data);<BR>
+Fl_Pixmap::Fl_Pixmap(const char **data);<BR>
+Fl_Pixmap::Fl_Pixmap(const unsigned char * const *data);<BR>
+Fl_Pixmap::Fl_Pixmap(const unsigned char **data);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructors create a new pixmap from the specified XPM data.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_Pixmap.~Fl_Pixmap">Fl_Pixmap::~Fl_Pixmap();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the pixmap.</P>
</BODY>
</HTML>
diff --git a/documentation/Fl_RGB_Image.html b/documentation/Fl_RGB_Image.html
index 010fcc73a..1504a46aa 100644
--- a/documentation/Fl_RGB_Image.html
+++ b/documentation/Fl_RGB_Image.html
@@ -3,7 +3,7 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_RGB_Image">class Fl_RGB_Image</A></H2>
<HR>
<H3>Class Hierarchy</H3>
@@ -11,41 +11,46 @@
<UL><PRE>
<A href="Fl_Image.html">Fl_Image</A>
|
- +----<B>Fl_Bitmap</B>
+ +----<B>Fl_RGB_Image</B>
|
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<A href="Fl_JPEG_Image.html">Fl_JPEG_Image</A>,
+ <A href="Fl_PNG_Image.html">Fl_PNG_Image</A>,
+ <A href="Fl_PNM_Image.html">Fl_PNM_Image</A>
+
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_RGB_Image.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>
+<P>The <TT>Fl_RGB_Image</TT> class supports caching and drawing
+of full-color images with 1 to 4 channels of color information.
+Images with an even number of channels are assumed to contain
+alpha information, which is used to blend the image with the
+contents of the screen.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_RGB_Image.Fl_RGB_Image">Fl_RGB_Image</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_RGB_Image.~Fl_RGB_Image">~Fl_RGB_Image</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>
+<H4><A name="Fl_RGB_Image.Fl_RGB_Image">Fl_RGB_Image::Fl_RGB_Image(const unsigned char *array, int W, int H, int D = 3, int LD = 0);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructor creates a new image from the specified data.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_RGB_Image.~Fl_RGB_Image">Fl_RGB_Image::~Fl_RGB_Image();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the image.</P>
</BODY>
</HTML>
diff --git a/documentation/Fl_Text_Buffer.html b/documentation/Fl_Text_Buffer.html
index e0b27db16..8ae988a6b 100644
--- a/documentation/Fl_Text_Buffer.html
+++ b/documentation/Fl_Text_Buffer.html
@@ -1,336 +1,363 @@
-<HTML><BODY>
-<HR break>
-<H2><A name=Fl_Input>class Fl_Input</A></H2>
+<HTML>
+<BODY>
+
+<!-- NEW PAGE -->
+
+<H2><A name="Fl_Text_Buffer">class Fl_Text_Buffer</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>
+
+<UL><PRE>
+<B>Fl_Text_Buffer</B>
+ |
+ +----<A href="Fl_Text_Display.html">Fl_Text_Display</A>,
+ <A href="Fl_Text_Editor.html">Fl_Text_Editor</A>
+</PRE></UL>
+
<H3>Include Files</H3>
-<UL>
-<PRE>
-#include &lt;FL/Fl_Input.H&gt;
-</PRE>
-</UL>
+
+<UL><PRE>
+#include &lt;FL/Fl_Text_Buffer.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>
+<P>The <TT>Fl_Text_Buffer</TT> class is used by the <TT>Fl_Text_Display</TT>
+and <TT>Fl_Text_Editor</TT> to manage complex text data and is based upon the
+excellent NEdit text editor engine - see
+<A HREF="http://www.nedit.org/">http://www.nedit.org/</A>.</P>
<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>
+
+ <H4><A NAME="Fl_Text_Buffer.Fl_Text_Buffer">Fl_Text_Buffer</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.~Fl_Text_Buffer">~Fl_Text_Buffer</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.add_modify_callback">add_modify_callback</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.append">append</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.appendfile">appendfile</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.call_modify_callbacks">call_modify_callbacks</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.character">character</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.character_width">character_width</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.clear_rectangular">clear_rectangular</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.copy">copy</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.count_displayed_characters">count_displayed_characters</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.count_lines">count_lines</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.expand_character">expand_character</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.findchar_backward">findchar_backward</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.findchar_forward">findchar_forward</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.findchars_backward">findchars_backward</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.findchars_forward">findchars_forward</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.highlight">highlight</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.highlight_position">highlight_position</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.highlight_rectangular">highlight_rectangular</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.highlight_selection">highlight_selection</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.highlight_text">highlight_text</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.insert_column">insert_column</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.insertfile">insertfile</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.insert">insert</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.length">length</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.line_end">line_end</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.line_start">line_start</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.line_text">line_text</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.loadfile">loadfile</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.null_substitution_character">null_substitution_character</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.outputfile">outputfile</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.overlay_rectangular">overlay_rectangular</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.primary_selection">primary_selection</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.remove_modify_callback">remove_modify_callback</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.remove_rectangular">remove_rectangular</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.remove">remove</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.remove_secondary_selection">remove_secondary_selection</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.remove_selection">remove_selection</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.replace_rectangular">replace_rectangular</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.replace">replace</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.replace_secondary_selection">replace_secondary_selection</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.replace_selection">replace_selection</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.rewind_lines">rewind_lines</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.savefile">savefile</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.search_backward">search_backward</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.search_forward">search_forward</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.secondary_selection_position">secondary_selection_position</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.secondary_selection">secondary_selection</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.secondary_selection_text">secondary_selection_text</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.secondary_select_rectangular">secondary_select_rectangular</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.secondary_select">secondary_select</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.secondary_unselect">secondary_unselect</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.selected">selected</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.selection_position">selection_position</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.selection_text">selection_text</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.select_rectangular">select_rectangular</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.select">select</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.skip_displayed_characters">skip_displayed_characters</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.skip_lines">skip_lines</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.substitute_null_characters">substitute_null_characters</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.tab_distance">tab_distance</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.tab_distance">tab_distance</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.text_in_rectangle">text_in_rectangle</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.text_range">text_range</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.text">text</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.unhighlight">unhighlight</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.unselect">unselect</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.unsubstitute_null_characters">unsubstitute_null_characters</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.word_end">word_end</A></H4>
+ <H4><A NAME="Fl_Text_Buffer.word_start">word_start</A></H4>
+
</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>
+
+<H4><A NAME="Fl_Text_Buffer.Fl_Text_Buffer">Fl_Text_Buffer</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.~Fl_Text_Buffer">~Fl_Text_Buffer</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.add_modify_callback">add_modify_callback</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.append">append</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.appendfile">appendfile</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.call_modify_callbacks">call_modify_callbacks</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.character">character</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.character_width">character_width</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.clear_rectangular">clear_rectangular</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.copy">copy</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.count_displayed_characters">count_displayed_characters</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.count_lines">count_lines</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.expand_character">expand_character</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.findchar_backward">findchar_backward</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.findchar_forward">findchar_forward</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.findchars_backward">findchars_backward</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.findchars_forward">findchars_forward</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.highlight">highlight</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.highlight_position">highlight_position</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.highlight_rectangular">highlight_rectangular</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.highlight_selection">highlight_selection</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.highlight_text">highlight_text</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.insert_column">insert_column</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.insertfile">insertfile</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.insert">insert</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.length">length</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.line_end">line_end</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.line_start">line_start</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.line_text">line_text</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.loadfile">loadfile</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.null_substitution_character">null_substitution_character</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.outputfile">outputfile</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.overlay_rectangular">overlay_rectangular</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.primary_selection">primary_selection</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.remove_modify_callback">remove_modify_callback</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.remove_rectangular">remove_rectangular</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.remove">remove</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.remove_secondary_selection">remove_secondary_selection</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.remove_selection">remove_selection</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.replace_rectangular">replace_rectangular</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.replace">replace</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.replace_secondary_selection">replace_secondary_selection</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.replace_selection">replace_selection</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.rewind_lines">rewind_lines</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.savefile">savefile</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.search_backward">search_backward</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.search_forward">search_forward</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.secondary_selection_position">secondary_selection_position</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.secondary_selection">secondary_selection</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.secondary_selection_text">secondary_selection_text</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.secondary_select_rectangular">secondary_select_rectangular</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.secondary_select">secondary_select</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.secondary_unselect">secondary_unselect</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.selected">selected</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.selection_position">selection_position</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.selection_text">selection_text</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.select_rectangular">select_rectangular</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.select">select</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.skip_displayed_characters">skip_displayed_characters</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.skip_lines">skip_lines</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.substitute_null_characters">substitute_null_characters</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.tab_distance">tab_distance</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.tab_distance">tab_distance</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.text_in_rectangle">text_in_rectangle</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.text_range">text_range</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.text">text</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.unhighlight">unhighlight</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.unselect">unselect</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.unsubstitute_null_characters">unsubstitute_null_characters</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.word_end">word_end</A></H4>
+
+<H4><A NAME="Fl_Text_Buffer.word_start">word_start</A></H4>
+
+
+
+ Fl_Text_Buffer(int requestedSize = 0);
+ ~Fl_Text_Buffer();
+
+ int length() { return mLength; }
+ const char* text();
+ void text(const char* text);
+ const char* text_range(int start, int end);
+ char character(int pos);
+ const char* text_in_rectangle(int start, int end, int rectStart, int rectEnd);
+ void insert(int pos, const char* text);
+ void append(const char* text) { insert(length(), text); }
+ void remove(int start, int end);
+ void replace(int start, int end, const char *text);
+ void copy(Fl_Text_Buffer* fromBuf, int fromStart, int fromEnd, int toPos);
+ int insertfile(const char *file, int pos, int buflen = 128*1024);
+ int appendfile(const char *file, int buflen = 128*1024)
+ { return insertfile(file, length(), buflen); }
+ int loadfile(const char *file, int buflen = 128*1024)
+ { select(0, length()); remove_selection(); return appendfile(file, buflen); }
+ int outputfile(const char *file, int start, int end, int buflen = 128*1024);
+ int savefile(const char *file, int buflen = 128*1024)
+ { return outputfile(file, 0, length(), buflen); }
+
+ void insert_column(int column, int startPos, const char* text,
+ int* charsInserted, int* charsDeleted);
+
+ void replace_rectangular(int start, int end, int rectStart, int rectEnd,
+ const char* text);
+
+ void overlay_rectangular(int startPos, int rectStart, int rectEnd,
+ const char* text, int* charsInserted,
+ int* charsDeleted);
+
+ void remove_rectangular(int start, int end, int rectStart, int rectEnd);
+ void clear_rectangular(int start, int end, int rectStart, int rectEnd);
+ int tab_distance() { return mTabDist; }
+ void tab_distance(int tabDist);
+ void select(int start, int end);
+ int selected() { return mPrimary.selected(); }
+ void unselect();
+ void select_rectangular(int start, int end, int rectStart, int rectEnd);
+ int selection_position(int* start, int* end);
+
+ int selection_position(int* start, int* end, int* isRect, int* rectStart,
+ int* rectEnd);
+
+ const char* selection_text();
+ void remove_selection();
+ void replace_selection(const char* text);
+ void secondary_select(int start, int end);
+ void secondary_unselect();
+
+ void secondary_select_rectangular(int start, int end, int rectStart,
+ int rectEnd);
+
+ int secondary_selection_position(int* start, int* end, int* isRect,
+ int* rectStart, int* rectEnd);
+
+ const char* secondary_selection_text();
+ void remove_secondary_selection();
+ void replace_secondary_selection(const char* text);
+ void highlight(int start, int end);
+ void unhighlight();
+ void highlight_rectangular(int start, int end, int rectStart, int rectEnd);
+
+ int highlight_position(int* start, int* end, int* isRect, int* rectStart,
+ int* rectEnd);
+
+ const char* highlight_text();
+ void add_modify_callback(Fl_Text_Modify_Cb bufModifiedCB, void* cbArg);
+ void remove_modify_callback(Fl_Text_Modify_Cb bufModifiedCB, void* cbArg);
+
+ void call_modify_callbacks() { call_modify_callbacks(0, 0, 0, 0, 0); }
+
+ const char* line_text(int pos);
+ int line_start(int pos);
+ int line_end(int pos);
+ int word_start(int pos);
+ int word_end(int pos);
+ int expand_character(int pos, int indent, char *outStr);
+
+ static int expand_character(char c, int indent, char* outStr, int tabDist,
+ char nullSubsChar);
+
+ static int character_width(char c, int indent, int tabDist, char nullSubsChar);
+ int count_displayed_characters(int lineStartPos, int targetPos);
+ int skip_displayed_characters(int lineStartPos, int nChars);
+ int count_lines(int startPos, int endPos);
+ int skip_lines(int startPos, int nLines);
+ int rewind_lines(int startPos, int nLines);
+ int findchar_forward(int startPos, char searchChar, int* foundPos);
+ int findchar_backward(int startPos, char searchChar, int* foundPos);
+ int findchars_forward(int startPos, const char* searchChars, int* foundPos);
+ int findchars_backward(int startPos, const char* searchChars, int* foundPos);
+
+ int search_forward(int startPos, const char* searchString, int* foundPos,
+ int matchCase = 0);
+
+ int search_backward(int startPos, const char* searchString, int* foundPos,
+ int matchCase = 0);
+
+ int substitute_null_characters(char* string, int length);
+ void unsubstitute_null_characters(char* string);
+ char null_substitution_character() { return mNullSubsChar; }
+ Fl_Text_Selection* primary_selection() { return &mPrimary; }
+ Fl_Text_Selection* secondary_selection() { return &mSecondary; }
+ Fl_Text_Selection* highlight_selection() { return &mHighlight; }
+
+</BODY>
+</HTML>
diff --git a/documentation/Fl_XBM_Image.html b/documentation/Fl_XBM_Image.html
index 010fcc73a..38a88c28d 100644
--- a/documentation/Fl_XBM_Image.html
+++ b/documentation/Fl_XBM_Image.html
@@ -3,49 +3,46 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_XBM_Image">class Fl_XBM_Image</A></H2>
<HR>
<H3>Class Hierarchy</H3>
<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
+<A href="Fl_Bitmap.html">Fl_Bitmap</A>
|
- +----<B>Fl_Bitmap</B>
- |
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<B>Fl_XBM_Image</B>
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_XBM_Image.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>
+<P>The <TT>Fl_XBM_Image</TT> class supports loading, caching,
+and drawing of X Bitmap (XBM) bitmap files.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_XBM_Image.Fl_XBM_Image">Fl_XBM_Image</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_XBM_Image.~Fl_XBM_Image">~Fl_XBM_Image</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>
+<H4><A name="Fl_XBM_Image.Fl_XBM_Image">Fl_XBM_Image::Fl_XBM_Image(const char *filename);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructor loads the named XBM file.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_XBM_Image.~Fl_XBM_Image">Fl_XBM_Image::~Fl_XBM_Image();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the image.</P>
</BODY>
</HTML>
diff --git a/documentation/Fl_XPM_Image.html b/documentation/Fl_XPM_Image.html
index 010fcc73a..821751937 100644
--- a/documentation/Fl_XPM_Image.html
+++ b/documentation/Fl_XPM_Image.html
@@ -3,49 +3,46 @@
<!-- NEW PAGE -->
-<H2><A name=Fl_Bitmap>class Fl_Bitmap</A></H2>
+<H2><A name="Fl_XPM_Image">class Fl_XPM_Image</A></H2>
<HR>
<H3>Class Hierarchy</H3>
<UL><PRE>
-<A href="Fl_Image.html">Fl_Image</A>
+<A href="Fl_Pixmap.html">Fl_Pixmap</A>
|
- +----<B>Fl_Bitmap</B>
- |
- +----<A href="Fl_XBM_Image.html">Fl_XBM_Image</A>
+ +----<B>Fl_XPM_Image</B>
</PRE></UL>
<H3>Include Files</H3>
<UL><PRE>
-#include &lt;FL/Fl_Bitmap.H&gt;
+#include &lt;FL/Fl_XPM_Image.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>
+<P>The <TT>Fl_XPM_Image</TT> class supports loading, caching,
+and drawing of X Pixmap (XPM) images, including transparency.</P>
<H3>Methods</H3>
<UL>
- <LI><A href="#Fl_Bitmap.Fl_Bitmap">Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_XPM_Image.Fl_XPM_Image">Fl_XPM_Image</A></LI>
- <LI><A href="#Fl_Bitmap.~Fl_Bitmap">~Fl_Bitmap</A></LI>
+ <LI><A href="#Fl_XPM_Image.~Fl_XPM_Image">~Fl_XPM_Image</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>
+<H4><A name="Fl_XPM_Image.Fl_XPM_Image">Fl_XPM_Image::Fl_XPM_Image(const char *filename);</A></H4>
-<P>The constructors create a new bitmap from the specified bitmap data.</P>
+<P>The constructor loads the named XPM image.</P>
-<H4><A name="Fl_Bitmap.~Fl_Bitmap">Fl_Bitmap::~Fl_Bitmap();</A></H4>
+<H4><A name="Fl_XPM_Image.~Fl_XPM_Image">Fl_XPM_Image::~Fl_XPM_Image();</A></H4>
<P>The destructor free all memory and server resources that are used by
-the bitmap.</P>
+the image.</P>
</BODY>
</HTML>
diff --git a/documentation/fltk.book b/documentation/fltk.book
index 33ff1c7b5..1d00e2691 100644
--- a/documentation/fltk.book
+++ b/documentation/fltk.book
@@ -71,6 +71,9 @@ Fl_Select_Browser.html
Fl_Single_Window.html
Fl_Slider.html
Fl_Tabs.html
+Fl_Text_Buffer.html
+Fl_Text_Display.html
+Fl_Text_Editor.html
Fl_Tile.html
Fl_Tiled_Image.html
Fl_Timer.html