fl_read_image() - not implemented for WIN32 or OSX yet.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2269 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet 2002-05-30 15:09:03 +00:00
parent 085eccc439
commit d5541b5cd6
7 changed files with 522 additions and 29 deletions

View File

@ -1,6 +1,7 @@
CHANGES IN FLTK 1.1.0rc3 CHANGES IN FLTK 1.1.0rc3
- Documentation updates. - Documentation updates.
- Added fl_read_image() function.
- Fixed Fl_Valuator::format() so that the correct format - Fixed Fl_Valuator::format() so that the correct format
type is used when step == 1.0. type is used when step == 1.0.
- Fl_Help_View didn't support the TT markup. - Fl_Help_View didn't support the TT markup.

View File

@ -1,5 +1,5 @@
// //
// "$Id: fl_draw.H,v 1.9.2.6.2.4 2002/01/01 15:11:28 easysw Exp $" // "$Id: fl_draw.H,v 1.9.2.6.2.5 2002/05/30 15:09:02 easysw Exp $"
// //
// Portable drawing function header file for the Fast Light Tool Kit (FLTK). // Portable drawing function header file for the Fast Light Tool Kit (FLTK).
// //
@ -171,6 +171,8 @@ FL_EXPORT void fl_draw_image(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta
FL_EXPORT void fl_draw_image_mono(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta=1); FL_EXPORT void fl_draw_image_mono(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta=1);
FL_EXPORT void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b); FL_EXPORT void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b);
FL_EXPORT uchar *fl_read_image(uchar *p, int x,int y, int w, int h, int alpha=0);
// pixmaps: // pixmaps:
FL_EXPORT int fl_draw_pixmap(/*const*/ char* const* data, int x,int y,Fl_Color=FL_GRAY); FL_EXPORT int fl_draw_pixmap(/*const*/ char* const* data, int x,int y,Fl_Color=FL_GRAY);
FL_EXPORT int fl_measure_pixmap(/*const*/ char* const* data, int &w, int &h); FL_EXPORT int fl_measure_pixmap(/*const*/ char* const* data, int &w, int &h);
@ -192,5 +194,5 @@ FL_EXPORT int fl_add_symbol(const char* name, void (*drawit)(Fl_Color), int scal
#endif #endif
// //
// End of "$Id: fl_draw.H,v 1.9.2.6.2.4 2002/01/01 15:11:28 easysw Exp $". // End of "$Id: fl_draw.H,v 1.9.2.6.2.5 2002/05/30 15:09:02 easysw Exp $".
// //

View File

@ -1,5 +1,5 @@
# #
# "$Id: Makefile,v 1.18.2.14.2.43 2002/05/16 12:47:43 easysw Exp $" # "$Id: Makefile,v 1.18.2.14.2.44 2002/05/30 15:09:03 easysw Exp $"
# #
# Library makefile for the Fast Light Tool Kit (FLTK). # Library makefile for the Fast Light Tool Kit (FLTK).
# #
@ -141,6 +141,7 @@ CPPFILES = \
fl_overlay.cxx \ fl_overlay.cxx \
fl_overlay_visual.cxx \ fl_overlay_visual.cxx \
fl_plastic.cxx \ fl_plastic.cxx \
fl_read_image.cxx \
fl_rect.cxx \ fl_rect.cxx \
fl_round_box.cxx \ fl_round_box.cxx \
fl_rounded_box.cxx \ fl_rounded_box.cxx \
@ -259,6 +260,7 @@ fl_color.o: fl_color_mac.cxx fl_color_win32.cxx
fl_dnd.o: fl_dnd_mac.cxx fl_dnd_win32.cxx fl_dnd_x.cxx fl_dnd.o: fl_dnd_mac.cxx fl_dnd_win32.cxx fl_dnd_x.cxx
fl_draw_image.o: fl_draw_image_mac.cxx fl_draw_image_win32.cxx fl_draw_image.o: fl_draw_image_mac.cxx fl_draw_image_win32.cxx
fl_font.o: fl_font_mac.cxx fl_font_x.cxx fl_font_xft.cxx fl_font_win32.cxx fl_font.o: fl_font_mac.cxx fl_font_x.cxx fl_font_xft.cxx fl_font_win32.cxx
fl_read_image.o: fl_read_image_mac.cxx fl_read_image_win32.cxx
fl_set_fonts.o: fl_set_fonts_mac.cxx fl_set_fonts_x.cxx \ fl_set_fonts.o: fl_set_fonts_mac.cxx fl_set_fonts_x.cxx \
fl_set_fonts_xft.cxx fl_set_fonts_win32.cxx fl_set_fonts_xft.cxx fl_set_fonts_win32.cxx
@ -292,6 +294,9 @@ fl_overlay_visual.o: ../FL/mac.H ../FL/win32.H
Fl_Overlay_Window.o: ../FL/mac.H ../FL/win32.H Fl_Overlay_Window.o: ../FL/mac.H ../FL/win32.H
Fl_own_colormap.o: ../FL/mac.H ../FL/win32.H Fl_own_colormap.o: ../FL/mac.H ../FL/win32.H
Fl_Pixmap.o: ../FL/mac.H ../FL/win32.H Fl_Pixmap.o: ../FL/mac.H ../FL/win32.H
fl_read_image.o: ../FL/mac.H ../FL/win32.H
fl_read_image_mac.o: ../FL/mac.H ../FL/win32.H
fl_read_image_win32.o: ../FL/mac.H ../FL/win32.H
fl_rect.o: ../FL/mac.H ../FL/win32.H fl_rect.o: ../FL/mac.H ../FL/win32.H
fl_scroll_area.o: ../FL/mac.H ../FL/win32.H fl_scroll_area.o: ../FL/mac.H ../FL/win32.H
fl_set_font.o: ../FL/mac.H ../FL/win32.H fl_set_font.o: ../FL/mac.H ../FL/win32.H
@ -433,5 +438,5 @@ uninstall:
# #
# End of "$Id: Makefile,v 1.18.2.14.2.43 2002/05/16 12:47:43 easysw Exp $". # End of "$Id: Makefile,v 1.18.2.14.2.44 2002/05/30 15:09:03 easysw Exp $".
# #

397
src/fl_read_image.cxx Normal file
View File

@ -0,0 +1,397 @@
//
// "$Id: fl_read_image.cxx,v 1.1.2.1 2002/05/30 15:09:03 easysw Exp $"
//
// X11 image reading routines for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2002 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs@fltk.org".
//
#include <FL/x.H>
#include <FL/fl_draw.H>
#include "flstring.h"
#ifdef DEBUG
# include <stdio.h>
#endif // DEBUG
#ifdef WIN32
# include "fl_read_image_win32.cxx"
#elif defined(__APPLE__)
# include "fl_read_image_mac.cxx"
#else
# include <X11/Xutil.h>
# ifdef __sgi
# include <X11/extensions/readdisplay.h>
# endif // __sgi
//
// 'fl_read_image()' - Read an image from the current window.
//
uchar * // O - Pixel buffer or NULL if failed
fl_read_image(uchar *p, // I - Pixel buffer or NULL to allocate
int X, // I - Left position
int Y, // I - Top position
int w, // I - Width of area to read
int h, // I - Height of area to read
int alpha) { // I - Alpha value for image (0 for none)
XImage *image; // Captured image
int i, maxindex; // Looping vars
int x, y; // Current X & Y in image
int d; // Depth of image
unsigned char *line, // Array to hold image row
*line_ptr; // Pointer to current line image
unsigned char *pixel; // Current color value
XColor colors[4096]; // Colors from the colormap...
unsigned char cvals[4096][3]; // Color values from the colormap...
unsigned index_mask,
index_shift,
red_mask,
red_shift,
green_mask,
green_shift,
blue_mask,
blue_shift;
//
// Under X11 we have the option of the XGetImage() interface or SGI's
// ReadDisplay extension which does all of the really hard work for
// us...
//
# ifdef __sgi
if (XReadDisplayQueryExtension(fl_display, &i, &i)) {
image = XReadDisplay(fl_display, fl_window, X, Y, w, h, 0, NULL);
} else
# else
image = 0;
# endif // __sgi
if (!image) {
image = XGetImage(fl_display, fl_window, X, Y, w, h, AllPlanes, ZPixmap);
}
if (!image) return 0;
#ifdef DEBUG
printf("width = %d\n", image->width);
printf("height = %d\n", image->height);
printf("xoffset = %d\n", image->xoffset);
printf("format = %d\n", image->format);
printf("data = %p\n", image->data);
printf("byte_order = %d\n", image->byte_order);
printf("bitmap_unit = %d\n", image->bitmap_unit);
printf("bitmap_bit_order = %d\n", image->bitmap_bit_order);
printf("bitmap_pad = %d\n", image->bitmap_pad);
printf("depth = %d\n", image->depth);
printf("bytes_per_line = %d\n", image->bytes_per_line);
printf("bits_per_pixel = %d\n", image->bits_per_pixel);
printf("red_mask = %08x\n", image->red_mask);
printf("green_mask = %08x\n", image->green_mask);
printf("blue_mask = %08x\n", image->blue_mask);
#endif // DEBUG
d = alpha ? 4 : 3;
// Allocate the image data array as needed...
if (!p) p = new uchar[w * h * d];
// Initialize the default colors/alpha in the whole image...
memset(p, alpha, w * h * d);
// Check if we have colormap image...
if (image->red_mask == 0) {
// Get the colormap entries for this window...
maxindex = fl_visual->visual->map_entries;
for (i = 0; i < maxindex; i ++) colors[i].pixel = i;
XQueryColors(fl_display, fl_colormap, colors, maxindex);
for (i = 0; i < maxindex; i ++) {
cvals[i][0] = colors[i].red >> 8;
cvals[i][1] = colors[i].green >> 8;
cvals[i][2] = colors[i].blue >> 8;
}
// Read the pixels and output an RGB image...
for (y = 0; y < image->height; y ++) {
pixel = (unsigned char *)(image->data + y * image->bytes_per_line);
line = p + y * w * d;
switch (image->bits_per_pixel) {
case 1 :
for (x = image->width, line_ptr = line, index_mask = 128;
x > 0;
x --, line_ptr += d) {
if (*pixel & index_mask) {
line_ptr[0] = cvals[1][0];
line_ptr[1] = cvals[1][1];
line_ptr[2] = cvals[1][2];
} else {
line_ptr[0] = cvals[0][0];
line_ptr[1] = cvals[0][1];
line_ptr[2] = cvals[0][2];
}
if (index_mask > 1) {
index_mask >>= 1;
} else {
index_mask = 128;
pixel ++;
}
}
break;
case 2 :
for (x = image->width, line_ptr = line, index_shift = 6;
x > 0;
x --, line_ptr += d) {
i = (*pixel >> index_shift) & 3;
line_ptr[0] = cvals[i][0];
line_ptr[1] = cvals[i][1];
line_ptr[2] = cvals[i][2];
if (index_shift > 0) {
index_mask >>= 2;
index_shift -= 2;
} else {
index_mask = 192;
index_shift = 6;
pixel ++;
}
}
break;
case 4 :
for (x = image->width, line_ptr = line, index_shift = 4;
x > 0;
x --, line_ptr += d) {
if (index_shift == 4) i = (*pixel >> 4) & 15;
else i = *pixel & 15;
line_ptr[0] = cvals[i][0];
line_ptr[1] = cvals[i][1];
line_ptr[2] = cvals[i][2];
if (index_shift > 0) {
index_shift = 0;
} else {
index_shift = 4;
pixel ++;
}
}
break;
case 8 :
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel ++) {
line_ptr[0] = cvals[*pixel][0];
line_ptr[1] = cvals[*pixel][1];
line_ptr[2] = cvals[*pixel][2];
}
break;
case 12 :
for (x = image->width, line_ptr = line, index_shift = 0;
x > 0;
x --, line_ptr += d) {
if (index_shift == 0) {
i = ((pixel[0] << 4) | (pixel[1] >> 4)) & 4095;
} else {
i = ((pixel[1] << 8) | pixel[2]) & 4095;
}
line_ptr[0] = cvals[i][0];
line_ptr[1] = cvals[i][1];
line_ptr[2] = cvals[i][2];
if (index_shift == 0) {
index_shift = 4;
} else {
index_shift = 0;
pixel += 3;
}
}
break;
}
}
} else {
// RGB(A) image, so figure out the shifts & masks...
red_mask = image->red_mask;
red_shift = 0;
while ((red_mask & 1) == 0) {
red_mask >>= 1;
red_shift ++;
}
green_mask = image->green_mask;
green_shift = 0;
while ((green_mask & 1) == 0) {
green_mask >>= 1;
green_shift ++;
}
blue_mask = image->blue_mask;
blue_shift = 0;
while ((blue_mask & 1) == 0) {
blue_mask >>= 1;
blue_shift ++;
}
// Read the pixels and output an RGB image...
for (y = 0; y < image->height; y ++) {
pixel = (unsigned char *)(image->data + y * image->bytes_per_line);
line = p + y * w * d;
switch (image->bits_per_pixel) {
case 8 :
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel ++) {
i = *pixel;
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
}
break;
case 12 :
for (x = image->width, line_ptr = line, index_shift = 0;
x > 0;
x --, line_ptr += d) {
if (index_shift == 0) {
i = ((pixel[0] << 4) | (pixel[1] >> 4)) & 4095;
} else {
i = ((pixel[1] << 8) | pixel[2]) & 4095;
}
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
if (index_shift == 0) {
index_shift = 4;
} else {
index_shift = 0;
pixel += 3;
}
}
break;
case 16 :
if (image->byte_order == LSBFirst) {
// Little-endian...
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel += 2) {
i = (pixel[1] << 8) | pixel[0];
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
}
} else {
// Big-endian...
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel += 2) {
i = (pixel[0] << 8) | pixel[1];
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
}
}
break;
case 24 :
if (image->byte_order == LSBFirst) {
// Little-endian...
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel += 3) {
i = (((pixel[2] << 8) | pixel[1]) << 8) | pixel[0];
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
}
} else {
// Big-endian...
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel += 3) {
i = (((pixel[0] << 8) | pixel[1]) << 8) | pixel[2];
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
}
}
break;
case 32 :
if (image->byte_order == LSBFirst) {
// Little-endian...
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel += 4) {
i = (((((pixel[3] << 8) | pixel[2]) << 8) | pixel[1]) << 8) | pixel[0];
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
}
} else {
// Big-endian...
for (x = image->width, line_ptr = line;
x > 0;
x --, line_ptr += d, pixel += 4) {
i = (((((pixel[0] << 8) | pixel[1]) << 8) | pixel[2]) << 8) | pixel[3];
line_ptr[0] = 255 * ((i >> red_shift) & red_mask) / red_mask;
line_ptr[1] = 255 * ((i >> green_shift) & green_mask) / green_mask;
line_ptr[2] = 255 * ((i >> blue_shift) & blue_mask) / blue_mask;
}
}
break;
}
}
}
// Destroy the X image we've read and return the RGB(A) image...
XDestroyImage(image);
return p;
}
#endif
//
// End of "$Id: fl_read_image.cxx,v 1.1.2.1 2002/05/30 15:09:03 easysw Exp $".
//

43
src/fl_read_image_mac.cxx Normal file
View File

@ -0,0 +1,43 @@
//
// "$Id: fl_read_image_mac.cxx,v 1.1.2.1 2002/05/30 15:09:03 easysw Exp $"
//
// WIN32 image reading routines for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2002 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs@fltk.org".
//
//
// 'fl_read_image()' - Read an image from the current window.
//
uchar * // O - Pixel buffer or NULL if failed
fl_read_image(uchar *p, // I - Pixel buffer or NULL to allocate
int x, // I - Left position
int y, // I - Top position
int w, // I - Width of area to read
int h, // I - Height of area to read
int alpha) { // I - Alpha value for image (0 for none)
return 0;
}
//
// End of "$Id: fl_read_image_mac.cxx,v 1.1.2.1 2002/05/30 15:09:03 easysw Exp $".
//

View File

@ -0,0 +1,43 @@
//
// "$Id: fl_read_image_win32.cxx,v 1.1.2.1 2002/05/30 15:09:03 easysw Exp $"
//
// WIN32 image reading routines for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2002 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs@fltk.org".
//
//
// 'fl_read_image()' - Read an image from the current window.
//
uchar * // O - Pixel buffer or NULL if failed
fl_read_image(uchar *p, // I - Pixel buffer or NULL to allocate
int x, // I - Left position
int y, // I - Top position
int w, // I - Width of area to read
int h, // I - Height of area to read
int alpha) { // I - Alpha value for image (0 for none)
return 0;
}
//
// End of "$Id: fl_read_image_win32.cxx,v 1.1.2.1 2002/05/30 15:09:03 easysw Exp $".
//

View File

@ -93,7 +93,7 @@ Fl_File_Chooser2.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
Fl_File_Chooser2.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H Fl_File_Chooser2.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
Fl_File_Chooser2.o: ../FL/filename.H ../FL/x.H ../FL/Fl_Window.H flstring.h Fl_File_Chooser2.o: ../FL/filename.H ../FL/x.H ../FL/Fl_Window.H flstring.h
Fl_File_Chooser2.o: ../config.h Fl_File_Chooser2.o: ../config.h
Fl_File_Icon.o: ../config.h flstring.h ../FL/Fl_File_Icon.H ../FL/Fl.H Fl_File_Icon.o: flstring.h ../config.h ../FL/Fl_File_Icon.H ../FL/Fl.H
Fl_File_Icon.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Widget.H Fl_File_Icon.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Widget.H
Fl_File_Icon.o: ../FL/fl_draw.H ../FL/filename.H Fl_File_Icon.o: ../FL/fl_draw.H ../FL/filename.H
Fl_File_Icon2.o: flstring.h ../config.h ../FL/math.h ../FL/Fl_File_Icon.H Fl_File_Icon2.o: flstring.h ../config.h ../FL/math.h ../FL/Fl_File_Icon.H
@ -106,7 +106,7 @@ Fl_File_Input.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
Fl_File_Input.o: ../FL/fl_draw.H flstring.h ../config.h Fl_File_Input.o: ../FL/fl_draw.H flstring.h ../config.h
Fl_GIF_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_GIF_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_GIF_Image.o: ../FL/Fl_GIF_Image.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H Fl_GIF_Image.o: ../FL/Fl_GIF_Image.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
Fl_GIF_Image.o: ../FL/x.H ../FL/Fl_Window.H ../config.h flstring.h Fl_GIF_Image.o: ../FL/x.H ../FL/Fl_Window.H flstring.h ../config.h
Fl_Group.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Group.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_Group.o: ../FL/Fl_Group.H ../FL/Fl_Window.H ../FL/Fl_Group.H Fl_Group.o: ../FL/Fl_Group.H ../FL/Fl_Window.H ../FL/Fl_Group.H
Fl_Group.o: ../FL/Fl_Widget.H ../FL/fl_draw.H Fl_Group.o: ../FL/Fl_Widget.H ../FL/fl_draw.H
@ -178,7 +178,7 @@ Fl_PNG_Image.o: ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Window.H
Fl_PNG_Image.o: ../config.h Fl_PNG_Image.o: ../config.h
Fl_PNM_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_PNM_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_PNM_Image.o: ../FL/Fl_PNM_Image.H ../FL/Fl_Image.H ../FL/x.H Fl_PNM_Image.o: ../FL/Fl_PNM_Image.H ../FL/Fl_Image.H ../FL/x.H
Fl_PNM_Image.o: ../FL/Fl_Window.H ../config.h flstring.h Fl_PNM_Image.o: ../FL/Fl_Window.H flstring.h ../config.h
Fl_Positioner.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Positioner.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_Positioner.o: ../FL/Fl_Positioner.H ../FL/Fl_Widget.H ../FL/fl_draw.H Fl_Positioner.o: ../FL/Fl_Positioner.H ../FL/Fl_Widget.H ../FL/fl_draw.H
Fl_Preferences.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Preferences.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
@ -267,10 +267,10 @@ Fl_Wizard.o: ../FL/Fl_Wizard.H ../FL/Fl_Group.H ../FL/fl_draw.H
Fl_Wizard.o: ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Wizard.o: ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_XBM_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_XBM_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_XBM_Image.o: ../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H Fl_XBM_Image.o: ../FL/Fl_XBM_Image.H ../FL/Fl_Bitmap.H ../FL/Fl_Image.H
Fl_XBM_Image.o: ../FL/x.H ../FL/Fl_Window.H ../config.h flstring.h Fl_XBM_Image.o: ../FL/x.H ../FL/Fl_Window.H flstring.h ../config.h
Fl_XPM_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_XPM_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_XPM_Image.o: ../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H Fl_XPM_Image.o: ../FL/Fl_XPM_Image.H ../FL/Fl_Pixmap.H ../FL/Fl_Image.H
Fl_XPM_Image.o: ../FL/x.H ../FL/Fl_Window.H ../config.h flstring.h Fl_XPM_Image.o: ../FL/x.H ../FL/Fl_Window.H flstring.h ../config.h
Fl_abort.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H flstring.h Fl_abort.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H flstring.h
Fl_abort.o: ../config.h Fl_abort.o: ../config.h
Fl_add_idle.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_add_idle.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
@ -295,14 +295,14 @@ Fl_own_colormap.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H
Fl_own_colormap.o: ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H Fl_own_colormap.o: ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H
Fl_visual.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_visual.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
Fl_visual.o: ../FL/x.H ../FL/Fl_Window.H Fl_visual.o: ../FL/x.H ../FL/Fl_Window.H
Fl_x.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_x.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H
Fl_x.o: ../FL/x.H ../FL/Fl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H Fl_x.o: ../FL/Fl_Window.H ../FL/Fl_Window.H ../FL/Fl_Group.H
Fl_x.o: ../FL/Fl_Widget.H flstring.h Fl_x.o: ../FL/Fl_Widget.H flstring.h ../config.h
filename_absolute.o: ../FL/filename.H flstring.h ../config.h filename_absolute.o: ../FL/filename.H flstring.h ../config.h
filename_expand.o: ../FL/filename.H flstring.h ../config.h filename_expand.o: ../FL/filename.H flstring.h ../config.h
filename_ext.o: ../FL/filename.H filename_ext.o: ../FL/filename.H
filename_isdir.o: flstring.h ../config.h ../FL/filename.H filename_isdir.o: flstring.h ../config.h ../FL/filename.H
filename_list.o: ../config.h ../FL/filename.H flstring.h filename_list.o: ../FL/filename.H flstring.h ../config.h
filename_match.o: ../FL/filename.H filename_match.o: ../FL/filename.H
filename_setext.o: ../FL/filename.H flstring.h ../config.h filename_setext.o: ../FL/filename.H flstring.h ../config.h
fl_arc.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/math.h fl_arc.o: ../FL/fl_draw.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/math.h
@ -334,9 +334,9 @@ fl_draw.o: ../config.h
fl_draw_image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_draw_image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_draw_image.o: ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H Fl_XColor.H fl_draw_image.o: ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H Fl_XColor.H
fl_draw_image.o: ../config.h ../FL/Enumerations.H flstring.h fl_draw_image.o: ../config.h ../FL/Enumerations.H flstring.h
fl_draw_pixmap.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H fl_draw_pixmap.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_draw_pixmap.o: ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H fl_draw_pixmap.o: ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H flstring.h
fl_draw_pixmap.o: ../FL/Fl_Window.H flstring.h fl_draw_pixmap.o: ../config.h
fl_engraved_label.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_engraved_label.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_engraved_label.o: ../FL/Fl_Widget.H ../FL/fl_draw.H fl_engraved_label.o: ../FL/Fl_Widget.H ../FL/fl_draw.H
fl_file_dir.o: flstring.h ../config.h ../FL/filename.H fl_file_dir.o: flstring.h ../config.h ../FL/filename.H
@ -349,9 +349,9 @@ fl_file_dir.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
fl_file_dir.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H fl_file_dir.o: ../FL/Fl_File_Icon.H ../FL/Fl.H ../FL/filename.H
fl_file_dir.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H fl_file_dir.o: ../FL/Fl_File_Input.H ../FL/Fl_Input.H ../FL/Fl_Input_.H
fl_file_dir.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H fl_file_dir.o: ../FL/Fl_Return_Button.H ../FL/Fl_Button.H
fl_font.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_font.o: flstring.h ../config.h ../FL/Fl.H ../FL/Enumerations.H
fl_font.o: ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H Fl_Font.H flstring.h fl_font.o: ../FL/Fl_Export.H ../FL/fl_draw.H ../FL/x.H ../FL/Fl_Window.H
fl_font.o: fl_font_x.cxx fl_font.o: Fl_Font.H fl_font_x.cxx
fl_labeltype.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_labeltype.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_labeltype.o: ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/fl_draw.H fl_labeltype.o: ../FL/Fl_Widget.H ../FL/Fl_Group.H ../FL/fl_draw.H
fl_labeltype.o: ../FL/Fl_Image.H ../FL/x.H ../FL/Fl_Window.H fl_labeltype.o: ../FL/Fl_Image.H ../FL/x.H ../FL/Fl_Window.H
@ -365,16 +365,18 @@ fl_overlay.o: ../FL/Fl_Window.H ../FL/fl_draw.H
fl_overlay_visual.o: ../config.h fl_overlay_visual.o: ../config.h
fl_plastic.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_plastic.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_plastic.o: ../FL/fl_draw.H flstring.h ../config.h fl_plastic.o: ../FL/fl_draw.H flstring.h ../config.h
fl_read_image.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_read_image.o: ../FL/Fl_Window.H ../FL/fl_draw.H flstring.h ../config.h
fl_rect.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Enumerations.H fl_rect.o: ../FL/Fl_Widget.H ../FL/fl_draw.H ../FL/Enumerations.H
fl_rect.o: ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H fl_rect.o: ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H
fl_round_box.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_round_box.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_round_box.o: ../FL/fl_draw.H fl_round_box.o: ../FL/fl_draw.H
fl_rounded_box.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_rounded_box.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_rounded_box.o: ../FL/fl_draw.H fl_rounded_box.o: ../FL/fl_draw.H
fl_set_font.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_set_font.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H
fl_set_font.o: ../FL/x.H ../FL/Fl_Window.H Fl_Font.H flstring.h fl_set_font.o: ../FL/Fl_Window.H flstring.h ../config.h Fl_Font.H
fl_set_fonts.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_set_fonts.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/x.H
fl_set_fonts.o: ../FL/x.H ../FL/Fl_Window.H Fl_Font.H flstring.h fl_set_fonts.o: ../FL/Fl_Window.H Fl_Font.H flstring.h ../config.h
fl_set_fonts.o: fl_set_fonts_x.cxx fl_set_fonts.o: fl_set_fonts_x.cxx
fl_scroll_area.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H fl_scroll_area.o: ../FL/x.H ../FL/Enumerations.H ../FL/Fl_Export.H
fl_scroll_area.o: ../FL/Fl_Window.H fl_scroll_area.o: ../FL/Fl_Window.H
@ -396,12 +398,12 @@ Fl_Gl_Choice.o: ../FL/x.H ../FL/Fl_Window.H Fl_Gl_Choice.H
Fl_Gl_Overlay.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H Fl_Gl_Overlay.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H
Fl_Gl_Overlay.o: ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H Fl_Gl_Choice.H Fl_Gl_Overlay.o: ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H Fl_Gl_Choice.H
Fl_Gl_Overlay.o: ../FL/Fl_Gl_Window.H Fl_Gl_Overlay.o: ../FL/Fl_Gl_Window.H
Fl_Gl_Window.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H Fl_Gl_Window.o: flstring.h ../config.h ../FL/Fl.H ../FL/Enumerations.H
Fl_Gl_Window.o: ../FL/x.H ../FL/Fl_Window.H Fl_Gl_Choice.H Fl_Gl_Window.o: ../FL/Fl_Export.H ../FL/x.H ../FL/Fl_Window.H Fl_Gl_Choice.H
Fl_Gl_Window.o: ../FL/Fl_Gl_Window.H flstring.h Fl_Gl_Window.o: ../FL/Fl_Gl_Window.H
gl_draw.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H gl_draw.o: flstring.h ../config.h ../FL/Fl.H ../FL/Enumerations.H
gl_draw.o: ../FL/gl.h ../FL/x.H ../FL/Fl_Window.H ../FL/fl_draw.H gl_draw.o: ../FL/Fl_Export.H ../FL/gl.h ../FL/x.H ../FL/Fl_Window.H
gl_draw.o: Fl_Gl_Choice.H Fl_Font.H flstring.h gl_draw.o: ../FL/fl_draw.H Fl_Gl_Choice.H Fl_Font.H
gl_start.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H gl_start.o: ../config.h ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
gl_start.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H gl_start.o: ../FL/Fl_Window.H ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/x.H
gl_start.o: ../FL/Fl_Window.H ../FL/fl_draw.H Fl_Gl_Choice.H gl_start.o: ../FL/Fl_Window.H ../FL/fl_draw.H Fl_Gl_Choice.H