Commit 190e20c8 authored by Aaron M. Ucko's avatar Aaron M. Ucko

Load fltk-1.1.5rc2 into branches/upstream/current.

parent 2fb75f14
This diff is collapsed.
CHANGES IN FLTK 1.1.5rc2
- Documentation updates (STR #365, STR #399, STR #407,
STR #412, STR #414, STR #452, STR #462)
- Fl_Text_Display did not handle drawing of overlapping
text (italic next to plain, etc.) properly (STR #381)
- All of the core widgets now consistently set changed()
before calling the callback function for a change in
value; this allows programs to check the changed()
state in a callback to see why they are being called
(STR #475)
- Fl_File_Chooser did not handle some cases for filename
completion (STR #376)
- Fl_Help_View didn't properly compute the default
maximum width of the page properly, resulting in
non-wrapped text in table cells (STR #464)
- Fl_Text_Editor no longer tries to emulate the Emacs
CTRL-A shortcut to move to the first column, since
there is a key for that and the widget does not
emulate any other Emacs keys (STR #421)
- Fl_File_Chooser always disabled the OK button when the
user pressed DELETE or BACKSPACE (STR #397)
- Added Fl_Browser::swap() methods (STR #459)
- Fl_Counter didn't use a thin down box for the text
field if the box type was set to FL_THIN_UP_BOX (STR
#467)
- Fl_Help_View now resets the scrollbars if they go
outside the current view (STR #464)
- fl_dir_chooser() did not show the previous selection
as documented (STR #443)
- Fl_Text_Display used delete[] instead of free() in
some places (STR #466)
- FLTK now includes copies of the PNG, JPEG, and ZLIB
libraries for platforms that do not have them (STR
#441)
- The fltk-config script did not include the
"-mno-cygwin" option under CygWin (STR #434)
- Fl_Help_View::find() did not check for a NULL value
(STR #442)
- Added search symbol to the search field of
Fl_Help_Dialog (STR #417)
- Added two new symbols, @search and @FLTK, which can be
used in labels.
- MacOS X: fixed NumLock mixup, added support for
FL_Menu and FL_Delete keys on external (PC) keyboards
(STR #445)
- Fl_File_Icon::draw() did not support drawing of complex
polygons in icon descriptions (STR #474)
- The configure script now offers options for JPEG, PNG,
and ZLIB libraries (STR #416)
- The first menu item in a list would not go invisible
(STR #406)
- Fl_Text_Buffer::replace() now range checks its input
(STR #385)
- FLTK now builds with the current release of MinGW (STR
#325, STR #401, STR #402)
- FLTK now honors the numlock key state (STR #369)
- The Fl_Text_Display widget did not redraw selections
when focus changed (STR #390)
- The plastic background image is now less contrasty
(STR #394)
- Fl_Scroll now uses a full redraw when the scheme is
set to plastic and the box type is a frame (STR #205)
- Fl_Window::resize() did not work properly with KDE 3.2
(STR #356)
- FLTK didn't delete font bitmaps when the last OpenGL
window was deleted, preventing future text from
displaying (STR #310)
- FLUID didn't include a full initialization record for
the trailing NULL menu items (STR #375)
- Fl_Browser::item_width() did not properly handle
format modifiers (STR #372)
- Fl_Browser::item_height() did not handle columns
properly (STR #371)
- Fl_Gl_Window's on WIN32 now prefer accelerated pixel
formats over generic formats (STR #382)
- Fl_Window::resize() did not work on some systems if
the window was not shown (STR #373)
- FLUID did not write the user_data type if the
user_data field was empty (STR #374)
- The value(const Fl_Menu_Item*) method was not
implemented for Fl_Choice (STR #366)
- Fl_Pack didn't draw child widget labels the same way
as Fl_Group, causing display problems (STR #360)
- fl_read_image() didn't work when reading from an
offscreen buffer with some X11 servers (STR #364)
CHANGES IN FLTK 1.1.5rc1
- Documentation updates (STR #186, STR #245, STR #250,
......@@ -85,7 +173,7 @@ CHANGES IN FLTK 1.1.5rc1
size of the number buffer (STR #268)
- The keypad Enter key works as the normal Enter/Return
key in common widgets (STR #191)
- Fixed some OS/2-specific build problems (STR #185 and
- Fixed some OS/2-specific build problems (STR #185, STR
#197)
- Calling Fl_Text_Display::buffer() with the same buffer
would cause an application to lockup (STR #196)
......
//
// "$Id: Fl_Browser.H,v 1.8.2.7.2.6 2004/04/11 04:38:54 easysw Exp $"
// "$Id: Fl_Browser.H,v 1.8.2.7.2.7 2004/07/26 20:52:50 easysw Exp $"
//
// Browser header file for the Fast Light Tool Kit (FLTK).
//
......@@ -64,6 +64,7 @@ protected:
FL_BLINE* _remove(int) ;
void insert(int, FL_BLINE*);
int lineno(void*) const ;
void swap(FL_BLINE *a, FL_BLINE *b);
public:
......@@ -72,6 +73,7 @@ public:
void insert(int, const char*, void* = 0);
void move(int to, int from);
int load(const char* filename);
void swap(int a, int b);
void clear();
int size() const {return lines;}
......@@ -124,5 +126,5 @@ public:
#endif
//
// End of "$Id: Fl_Browser.H,v 1.8.2.7.2.6 2004/04/11 04:38:54 easysw Exp $".
// End of "$Id: Fl_Browser.H,v 1.8.2.7.2.7 2004/07/26 20:52:50 easysw Exp $".
//
//
// "$Id: Fl_Choice.H,v 1.5.2.3.2.4 2004/04/11 04:38:54 easysw Exp $"
// "$Id: Fl_Choice.H,v 1.5.2.3.2.5 2004/04/29 02:47:09 easysw Exp $"
//
// Choice header file for the Fast Light Tool Kit (FLTK).
//
......@@ -34,6 +34,7 @@ protected:
public:
int handle(int);
Fl_Choice(int,int,int,int,const char * = 0);
int value(const Fl_Menu_Item*);
int value(int i);
int value() const {return Fl_Menu_::value();}
};
......@@ -41,5 +42,5 @@ public:
#endif
//
// End of "$Id: Fl_Choice.H,v 1.5.2.3.2.4 2004/04/11 04:38:54 easysw Exp $".
// End of "$Id: Fl_Choice.H,v 1.5.2.3.2.5 2004/04/29 02:47:09 easysw Exp $".
//
......@@ -6,6 +6,7 @@
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Help_View.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Group.H>
#include <FL/Fl_Input.H>
class FL_EXPORT Fl_Help_Dialog {
......
//
// "$Id: Fl_Menu_Item.H,v 1.5.2.4.2.8 2004/04/11 04:38:54 easysw Exp $"
// "$Id: Fl_Menu_Item.H,v 1.5.2.4.2.9 2004/06/07 19:22:45 matthiaswm Exp $"
//
// Menu item header file for the Fast Light Tool Kit (FLTK).
//
......@@ -64,6 +64,8 @@ struct FL_EXPORT Fl_Menu_Item {
const Fl_Menu_Item *next(int=1) const;
Fl_Menu_Item *next(int i=1) {
return (Fl_Menu_Item*)(((const Fl_Menu_Item*)this)->next(i));}
const Fl_Menu_Item *first() const { return next(0); }
Fl_Menu_Item *first() { return next(0); }
// methods on menu items:
const char* label() const {return text;}
......@@ -159,5 +161,5 @@ enum { // back-compatability enum:
#endif
//
// End of "$Id: Fl_Menu_Item.H,v 1.5.2.4.2.8 2004/04/11 04:38:54 easysw Exp $".
// End of "$Id: Fl_Menu_Item.H,v 1.5.2.4.2.9 2004/06/07 19:22:45 matthiaswm Exp $".
//
//
// "$Id: Fl_Widget.H,v 1.6.2.4.2.23 2004/04/11 04:38:54 easysw Exp $"
// "$Id: Fl_Widget.H,v 1.6.2.4.2.24 2004/07/27 16:02:18 easysw Exp $"
//
// Widget header file for the Fast Light Tool Kit (FLTK).
//
......@@ -185,9 +185,9 @@ public:
int visible_focus() { return flags_ & VISIBLE_FOCUS; }
static void default_callback(Fl_Widget*, void*);
void do_callback() {callback_(this,user_data_);}
void do_callback(Fl_Widget* o,void* arg=0) {callback_(o,arg);}
void do_callback(Fl_Widget* o,long arg) {callback_(o,(void*)arg);}
void do_callback() {callback_(this,user_data_); if (callback_ != default_callback) clear_changed();}
void do_callback(Fl_Widget* o,void* arg=0) {callback_(o,arg); if (callback_ != default_callback) clear_changed();}
void do_callback(Fl_Widget* o,long arg) {callback_(o,(void*)arg); if (callback_ != default_callback) clear_changed();}
int test_shortcut();
static int test_shortcut(const char*);
int contains(const Fl_Widget*) const ;
......@@ -217,5 +217,5 @@ public:
#endif
//
// End of "$Id: Fl_Widget.H,v 1.6.2.4.2.23 2004/04/11 04:38:54 easysw Exp $".
// End of "$Id: Fl_Widget.H,v 1.6.2.4.2.24 2004/07/27 16:02:18 easysw Exp $".
//
//
// "$Id: gl_draw.H,v 1.4.2.3.2.3 2004/04/11 04:38:55 easysw Exp $"
// "$Id: gl_draw.H,v 1.4.2.3.2.4 2004/05/15 22:58:18 easysw Exp $"
//
// OpenGL header file for the Fast Light Tool Kit (FLTK).
//
......@@ -25,6 +25,9 @@
#include "gl.h"
extern FL_EXPORT void gl_remove_displaylist_fonts();
//
// End of "$Id: gl_draw.H,v 1.4.2.3.2.3 2004/04/11 04:38:55 easysw Exp $".
// End of "$Id: gl_draw.H,v 1.4.2.3.2.4 2004/05/15 22:58:18 easysw Exp $".
//
#
# "$Id: Makefile,v 1.12.2.6.2.17 2004/04/11 04:38:53 easysw Exp $"
# "$Id: Makefile,v 1.12.2.6.2.18 2004/07/06 00:18:48 easysw Exp $"
#
# Top-level makefile for the Fast Light Tool Kit (FLTK).
#
......@@ -25,7 +25,7 @@
include makeinclude
DIRS = src fluid test documentation
DIRS = $(IMAGEDIRS) src fluid test documentation
all: makeinclude
for dir in $(DIRS); do\
......@@ -97,5 +97,5 @@ native-dist:
#
# End of "$Id: Makefile,v 1.12.2.6.2.17 2004/04/11 04:38:53 easysw Exp $".
# End of "$Id: Makefile,v 1.12.2.6.2.18 2004/07/06 00:18:48 easysw Exp $".
#
This diff is collapsed.
dnl -*- sh -*-
dnl the "configure" script is made from this by running GNU "autoconf"
dnl
dnl "$Id: configure.in,v 1.33.2.31.2.108 2004/04/11 04:38:53 easysw Exp $"
dnl "$Id: configure.in,v 1.33.2.31.2.115 2004/07/26 17:46:36 easysw Exp $"
dnl
dnl Configuration script for the Fast Light Tool Kit (FLTK).
dnl
......@@ -35,7 +35,7 @@ dnl FLTK library versions...
FL_MAJOR_VERSION=1
FL_MINOR_VERSION=1
FL_PATCH_VERSION=5
FL_RELEASE_VERSION=rc1
FL_RELEASE_VERSION=rc2
FL_API_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}
AC_SUBST(FL_MAJOR_VERSION)
......@@ -72,6 +72,7 @@ case $uname in
CFLAGS="$CFLAGS -mno-cygwin"
CPPFLAGS="$CPPFLAGS -mno-cygwin"
CXXFLAGS="$CXXFLAGS -mno-cygwin"
LDFLAGS="$LDFLAGS -mno-cygwin"
fi
;;
esac
......@@ -82,6 +83,7 @@ LINKFLTKGL="-lfltk_gl"
LINKFLTKIMG="-lfltk_images"
GLDEMOS="gldemos"
LIBEXT=".a"
LIBNAME="../lib/libfltk.a"
FLLIBNAME="../lib/libfltk_forms.a"
GLLIBNAME="../lib/libfltk_gl.a"
......@@ -91,6 +93,7 @@ AC_SUBST(FLLIBNAME)
AC_SUBST(GLDEMOS)
AC_SUBST(GLLIBNAME)
AC_SUBST(IMGLIBNAME)
AC_SUBST(LIBEXT)
AC_SUBST(LIBNAME)
AC_SUBST(LINKFLTK)
AC_SUBST(LINKFLTKGL)
......@@ -361,27 +364,59 @@ IMAGELIBS=""
AC_SUBST(IMAGELIBS)
AC_CHECK_HEADER(jpeglib.h,
AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
AC_DEFINE(HAVE_LIBJPEG)
IMAGELIBS="$IMAGELIBS -ljpeg"))
AC_CHECK_HEADER(zlib.h,
AC_CHECK_LIB(z, gzopen,
AC_DEFINE(HAVE_LIBZ)
IMAGELIBS="$IMAGELIBS -lz"
LIBS="$LIBS -lz"))
AC_CHECK_HEADER(png.h, AC_DEFINE(HAVE_PNG_H))
AC_CHECK_HEADER(libpng/png.h, AC_DEFINE(HAVE_LIBPNG_PNG_H))
if test x$ac_cv_header_png_h = xyes -o x$ac_cv_header_libpng_png_h = xyes; then
AC_CHECK_LIB(png, png_read_rows,
[AC_DEFINE(HAVE_LIBPNG)
IMAGELIBS="-lpng $IMAGELIBS"
LIBS="-lpng $LIBS"
AC_CHECK_FUNCS(png_get_valid png_set_tRNS_to_alpha)])
fi
AC_ARG_ENABLE(localjpeg, [ --enable-localjpeg use local JPEG library, default=auto],
[if eval "test x$enable_localjpeg = xyes"; then
ac_cv_lib_jpeg_jpeg_CreateCompress=no
fi])
AC_CHECK_LIB(jpeg,jpeg_CreateCompress,
JPEGINC=""
JPEG=""
IMAGELIBS="-ljpeg $IMAGELIBS",
JPEGINC="-I../jpeg"
JPEG="jpeg"
IMAGELIBS="../lib/libjpeg.a $IMAGELIBS")
AC_ARG_ENABLE(localzlib, [ --enable-localzlib use local ZLIB library, default=auto],
[if eval "test x$enable_localzlib = xyes"; then
ac_cv_lib_z_gzgets=no
fi])
AC_CHECK_LIB(z,gzgets,
ZLIBINC=""
ZLIB=""
LIBS="-lz $LIBS"
IMAGELIBS="-lz $IMAGELIBS",
ZLIBINC="-I../zlib"
ZLIB="zlib"
LIBS="../lib/libz.a $LIBS"
IMAGELIBS="../lib/libz.a $IMAGELIBS")
AC_ARG_ENABLE(localpng, [ --enable-localpng use local PNG library, default=auto],
[if eval "test x$enable_localpng = xyes"; then
ac_cv_lib_png_png_set_tRNS_to_alpha=no
fi])
AC_CHECK_LIB(png,png_set_tRNS_to_alpha, [
PNGINC=""
PNG=""
IMAGELIBS="-lpng $IMAGELIBS"
AC_CHECK_HEADER(png.h, AC_DEFINE(HAVE_PNG_H))],[
AC_DEFINE(HAVE_PNG_H)
PNGINC="-I../png"
PNG="png"
IMAGELIBS="../lib/libpng.a $IMAGELIBS"])
AC_SUBST(JPEG)
AC_SUBST(JPEGINC)
AC_SUBST(PNG)
AC_SUBST(PNGINC)
AC_SUBST(ZLIB)
AC_SUBST(ZLIBINC)
AC_DEFINE(HAVE_LIBJPEG)
AC_DEFINE(HAVE_LIBPNG)
AC_DEFINE(HAVE_LIBZ)
dnl Restore original LIBS settings...
LIBS="$SAVELIBS"
......@@ -685,7 +720,7 @@ if test -n "$GCC"; then
OPTIM="-Wall -Wunused $OPTIM"
# The following additional warnings are useful for tracking down problems...
#OPTIM="-Wshadow -Wconversion -Winline $OPTIM"
OPTIM="-Wshadow -Wconversion -Winline $OPTIM"
# Set the default compiler optimizations...
if test -z "$DEBUGFLAG"; then
......@@ -863,5 +898,5 @@ dnl Make sure the fltk-config script is executable...
chmod +x fltk-config
dnl
dnl End of "$Id: configure.in,v 1.33.2.31.2.108 2004/04/11 04:38:53 easysw Exp $".
dnl End of "$Id: configure.in,v 1.33.2.31.2.115 2004/07/26 17:46:36 easysw Exp $".
dnl
......@@ -81,8 +81,13 @@ subclass of <TT>Fl_Browser_</TT>. </P>
</TD><TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser.size>size</A></LI>
<LI><A href=#Fl_Browser.swap>swap</A></LI>
<LI><A href=#Fl_Browser.text>text</A></LI>
<LI><A href=#Fl_Browser.topline>topline</A></LI>
</UL>
</TD>
<TD align=left valign=top>
<UL>
<LI><A href=#Fl_Browser.visible>visible</A></LI>
</UL>
</TD></TR>
......@@ -192,6 +197,8 @@ will always return 0.
<H4><A name=Fl_Browser.size>int Fl_Browser::size() const</A></H4>
Returns how many lines are in the browser. The last line number is
equal to this.
<H4><A name=Fl_Browser.swap>void Fl_Browser::swap(int a, int b)</A></H4>
Swaps two lines in the browser.
<H4><A name=Fl_Browser.text>const char *Fl_Browser::text(int n) const
<BR> void Fl_Browser::text(int n, const char *)</A></H4>
The first form returns the text for line <TT>n</TT>. If <TT>n</TT> is
......
......@@ -20,7 +20,7 @@
</UL>
<H3>Description</H3>
This is the base class for browsers. To be useful it must be
subclassed and several virtual functions defined. The Forms-compatable
subclassed and several virtual functions defined. The Forms-compatible
browser and the file chooser's browser are subclassed off of this.
<P>This has been designed so that the subclass has complete control
over the storage of the data, although because <TT>next()</TT> and <TT>
......
......@@ -120,13 +120,14 @@ const</A></H4>
already been erased to <TT>color()</TT>. Otherwise it does
minimal update and erases the area itself.
<H4><A name="Fl_Input_.handletext">void Fl_Input_::handletext(int
<H4><A name="Fl_Input_.handletext">int Fl_Input_::handletext(int
e,int,int,int,int)</A></H4>
<P>Default handler for all event types. Your <TT>handle()</TT>
method should call this for all events that it does not handle
completely. You must pass it the same bounding box as passed to
<TT>draw()</TT>. Handles <TT>FL_PUSH</TT>, <TT>FL_DRAG</TT>,
completely. You must pass it the same bounding box as you do
when calling <TT>drawtext()</TT> from your <tt>draw()</tt>
method. Handles <TT>FL_PUSH</TT>, <TT>FL_DRAG</TT>,
<TT>FL_RELEASE</TT> to select text, handles <TT>FL_FOCUS</TT>
and <TT>FL_UNFOCUS</TT> to show and hide the cursor.
......
......@@ -127,16 +127,28 @@ char* shortcut, Fl_Callback*, void *user_data=0, int flags=0)</a><br>
int Fl_Menu_::add(const char* label, int shortcut, Fl_Callback*,
void *user_data=0, int flags=0)</h4>
Adds a new menu item, with a <TT>title</TT> string, <TT> shortcut</TT>
string, <TT>callback</TT>, argument to the callback, and flags. If
the menu array was directly set with menu(x) then copy() is done to
make a private array.
<P>Text is a string of the form &quot;foo/bar/baz&quot;, this example
will result in a submenu called &quot;foo&quot; and one in that called
&quot;bar&quot; and and entry called &quot;baz&quot;. The text is
copied to new memory and can be freed. The other arguments (including
the shortcut) are copied into the menu item unchanged. </P>
<p>Adds a new menu item, with a <TT>title</TT> string, <TT>
shortcut</TT> string, <TT>callback</TT>, argument to the
callback, and flags. If the menu array was directly set with
<tt>menu(x)</tt> then <tt>copy()</tt> is done to make a private
array.
<p>The characters "&amp;", "/", "\", and "_" are treated as
special characters in the label string. The "&amp;" character
specifies that the following character is an accelerator and
will be underlined. The "\" character is used to escape the next
character in the string. Labels starting with the "_" character
cause a divider to be placed before that menu item.</p>
<p>A label of the form &quot;foo/bar/baz&quot; will create a
submenus called &quot;foo&quot; and &quot;bar&quot; with an
entry called &quot;baz&quot;. The "/" character is ignored if it
appears as the first character of the label string, e.g.
"/foo/bar/baz".</p>
<p>The label string is copied to new memory and can be freed.
The other arguments (including the shortcut) are copied into the
menu item unchanged. </P>
<P>If an item exists already with that name then it is replaced with
this new one. Otherwise this new one is added to the end of the
......@@ -166,10 +178,12 @@ Text shortcuts are converted to integer shortcut by calling
<h4>int Fl_Menu_::add(const char *)</H4>
<P>The passed string is split at any '|' characters and then <TT>
add(s,0,0,0,0)</TT> is done with each section. This is often useful
if you are just using the value, and is compatable with Forms
and other GL programs. </P>
<P>The passed string is split at any '|' characters and then
<TT>add(s,0,0,0,0)</TT> is done with each section. This is
often useful if you are just using the value, and is compatible
with Forms and other GL programs. The section strings use the
same special characters as described for the long version of <a
href='#Fl_Menu_.add'><tt>add()</tt></a></p>
<H4><A name=Fl_Menu_.replace>void Fl_Menu_::replace(int n, const char *)</A>
</H4>
......
......@@ -128,7 +128,7 @@ entry names. The index must be within the range given by
the base preference group. This function is rarely used as
deleting the base preferences flushes automatically.
<H4><a name="Fl_Preferences.getUserdataPath">int Fl_Preferences::getUserdataPath(char *path)</a></H4>
<H4><a name="Fl_Preferences.getUserdataPath">int Fl_Preferences::getUserdataPath(char *path, int path_size)</a></H4>
<P>Creates a path that is related to the preferences file and
that is usable for application data beyond what is covered by
......
......@@ -219,7 +219,7 @@ response to an &quot;OK&quot; button.
the program sets the stored value. </P>
<H4><A NAME="Fl_Widget.clear_visible">void Fl_Window::clear_visible();</A></H4>
<H4><A NAME="Fl_Widget.clear_visible">void Fl_Widget::clear_visible();</A></H4>
<P>Hides the widget; you must still redraw the parent to see a
change in the window. Normally you want to use the <A
......@@ -300,7 +300,11 @@ with arbitrary arguments.
<P>Handles the specified event. You normally don't call this
method directly, but instead let FLTK do it when the user
interacts with the widget.
interacts with the widget.</p>
<p>When implemented in a new widget, this function must return 0
if the widget does not use the event or 1 if it uses the
event.</p>
<H4><A name="Fl_Widget.image">Fl_Image* Fl_Widget::image()</A><BR>
......@@ -478,7 +482,7 @@ widget. Note: for an <TT>Fl_Window</TT> widget, this returns
its <I>parent</I> window (if any), not <I>this</I> window.
<H4><A NAME="Fl_Widget.set_visible">void Fl_Window::set_visible();</A></H4>
<H4><A NAME="Fl_Widget.set_visible">void Fl_Widget::set_visible();</A></H4>
<P>Makes the widget visible; you must still redraw the parent
widget to see a change in the window. Normally you want to use
......@@ -486,7 +490,7 @@ the <A HREF="#Fl_Widget.show"><CODE>show()</CODE> method
instead.
<H4><A NAME="Fl_Widget.set_visible_focus">void Fl_Window::set_visible_focus();</A></H4>
<H4><A NAME="Fl_Widget.set_visible_focus">void Fl_Widget::set_visible_focus();</A></H4>
<P>Enables keyboard focus navigation with this widget; note,
however, that this will not necessarily mean that the widget
......@@ -512,7 +516,7 @@ visible, as this will send false <TT>FL_SHOW</TT> or <TT>FL_HIDE</TT>
events to the widget</I>. <TT>redraw()</TT> is called if necessary on
this or the parent.
<H4><A NAME="Fl_Widget.visible_focus">void Fl_Window::visible_focus();</A></H4>
<H4><A NAME="Fl_Widget.visible_focus">void Fl_Widget::visible_focus();</A></H4>
<P>Returns non-zero if this widget will participate in keyboard
focus navigation.
......
......@@ -746,6 +746,25 @@ function finds and returns the width and height. The return
value is non-zero if the dimensions were parsed ok and zero if
there was any problem.
<H3>Direct Image Reading</H3>
<p>FLTK provides a single function for reading from the current
window or off-screen buffer into a RGB(A) image buffer.</p>
<H4><A NAME="fl_read_image">uchar *fl_read_image(uchar *p, int
X, int Y, int W, int H, int alpha = 0);</A></H4>
<p>Read a RGB(A) image from the current window or off-screen
buffer. The <tt>p</tt> argument points to a buffer that can hold
the image and must be at least <tt>W*H*3</tt> bytes when reading
RGB images and <tt>W*H*4</tt> bytes when reading RGBA images. If
<tt>NULL</tt>, <tt>fl_read_image()</tt> will create an array of
the proper size which can be freed using <tt>delete[]</tt>.</p>
<p>The <tt>alpha</tt> parameter controls whether an alpha
channel is created and the value that is placed in the alpha
channel. If 0, no alpha channel is generated.</p>
<H3><A name="Fl_Image">Image Classes</A></H3>
<P>FLTK provides a base image class called <A
......
......@@ -20,7 +20,7 @@ functions. Most of the XForms demo programs work without changes.
<P>You will also have to compile your Forms or XForms program using a
C++ compiler. The FLTK library does not provide C bindings or header
files. </P>
<P>Although FLTK was designed to be compatable with the GL Forms
<P>Although FLTK was designed to be compatible with the GL Forms
library (version 0.3 or so), XForms has bloated severely and it's
interface is X-specific. Therefore, XForms compatibility is no longer
a goal of FLTK. Compatibility was limited to things that were free, or
......
......@@ -340,18 +340,36 @@ is shown using the <TT>Fl_Window::icon()</TT> method.
<P>Sets the icon for the window to the passed pointer. You will
need to cast the icon <TT>Pixmap</TT> to a <TT>char *</TT> when
calling this method. To set the icon using a bitmap compiled
calling this method. To set a monochrome icon using a bitmap compiled
with your application use:
<UL><PRE>
#include &quot;icon.xbm&quot;
fl_opendisplay(); // needed if display has not been previously opened
Pixmap p = XCreateBitmapFromData(fl_display, DefaultRootWindow(fl_display),
icon_bits, icon_width, icon_height);
window-&gt;icon((char *)p);
</PRE></UL>
<P>To use a multi-colored icon, the XPM format and library
should be used as follows:
<UL><PRE>
#include &quot;icon.xpm&quot;
fl_opendisplay(); // needed if display has not been previously opened
Pixmap p, mask;
XpmCreatePixmapFromData(fl_display, DefaultRootWindow(fl_display),
icon_xpm, &amp;p, &amp;mask, NULL);
window-&gt;icon((char *)p);
</PRE></UL>
<CENTER><TABLE WIDTH="90%" BORDER="1" CELLPADDING="5" CELLSPACING="0" BGCOLOR="#cccccc">
<TR>
<TD><B>NOTE:</B>
......
#!/bin/sh
#
# "$Id: fltk-config.in,v 1.12.2.20 2004/04/11 04:38:53 easysw Exp $"
# "$Id: fltk-config.in,v 1.12.2.23 2004/07/26 17:46:36 easysw Exp $"
#
# FLTK configuration utility.
#
......@@ -59,7 +59,7 @@ LDLIBS="@LIBS@"
LIBNAME="@LIBNAME@"
DSONAME="@DSONAME@"
DSOLINK="@DSOLINK@"
IMAGELIBS="@IMAGELIBS@"
IMAGELIBS="-ljpeg -lpng -lz"
SHAREDSUFFIX="@SHAREDSUFFIX@"
usage ()
......@@ -175,9 +175,9 @@ else
fi
# Calculate needed libraries
LDSTATIC="$libdir/libfltk.a $LDLIBS"
LDSTATIC="$libs $libdir/libfltk.a $LDLIBS"
LDLIBS="$libs -lfltk$SHAREDSUFFIX $LDLIBS"
LIBS="$LIBS $libdir/libfltk.a"
LIBS="$LIBS $libs $libdir/libfltk.a"
if test x$use_forms = xyes; then
LDLIBS="-lfltk_forms$SHAREDSUFFIX $LDLIBS"
......@@ -266,5 +266,5 @@ if test "$echo_libs" = "yes"; then
fi
#
# End of "$Id: fltk-config.in,v 1.12.2.20 2004/04/11 04:38:53 easysw Exp $".
# End of "$Id: fltk-config.in,v 1.12.2.23 2004/07/26 17:46:36 easysw Exp $".
#
#
# "$Id: fltk.spec,v 1.1.2.9.2.28 2004/04/11 04:38:53 easysw Exp $"
# "$Id: fltk.spec,v 1.1.2.9.2.29 2004/06/01 14:49:51 easysw Exp $"
#
# RPM spec file for FLTK.
#
......@@ -23,7 +23,7 @@
# Please report all bugs and problems to "fltk-bugs@fltk.org".
#
%define version 1.1.5rc1
%define version 1.1.5rc2
%define release 0
%define prefix /usr
......@@ -96,5 +96,5 @@ rm -rf $RPM_BUILD_ROOT
%{prefix}/share/doc/fltk/*