Doco updates.

Added filename_setext() macro for FLTK_1_0_COMPAT.

Fixed copy() methods so they don't overflow the source image buffer.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2881 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet
2002-12-19 21:34:26 +00:00
parent 11a7b522c1
commit 74d47ce80c
7 changed files with 66 additions and 14 deletions

View File

@@ -1,5 +1,11 @@
CHANGES IN FLTK 1.1.3
- Documentation updates.
- Added backward-compatibility macro for
filename_setext().
- Fl_Bitmap::copy(), Fl_Pixmap::copy(), and
Fl_RGB_Image::copy() all could overflow the source
image when scaling the image.
- Double/triple clicks in Fl_Input fields didn't copy
the expanded selection to the clipboard.
- Fl_Glut_Window and Fl_Gl_Window didn't always initialize

View File

@@ -1,5 +1,5 @@
/*
* "$Id: filename.H,v 1.11.2.4.2.10 2002/07/08 15:20:57 easysw Exp $"
* "$Id: filename.H,v 1.11.2.4.2.11 2002/12/19 21:34:25 easysw Exp $"
*
* Filename header file for the Fast Light Tool Kit (FLTK).
*
@@ -109,6 +109,7 @@ FL_EXPORT int fl_filename_list(const char *d, struct dirent ***l,
# define filename_match fl_filename_match
# define filename_name fl_filename_name
# define filename_relative fl_filename_relative
# define filename_setext fl_filename_setext
# define numericsort fl_numericsort
# endif /* FLTK_1_0_COMPAT */
@@ -116,5 +117,5 @@ FL_EXPORT int fl_filename_list(const char *d, struct dirent ***l,
#endif /* FL_FILENAME_H */
/*
* End of "$Id: filename.H,v 1.11.2.4.2.10 2002/07/08 15:20:57 easysw Exp $".
* End of "$Id: filename.H,v 1.11.2.4.2.11 2002/12/19 21:34:25 easysw Exp $".
*/

View File

@@ -46,6 +46,8 @@ following types of drawing functions:
<UL>
<LI><A href="#boxdraw">Boxes</A></LI>
<LI><A href="#clipping">Clipping</A></LI>
<LI><A href="#colors">Colors</A></LI>
@@ -64,6 +66,45 @@ following types of drawing functions:
</UL>
<H3><A name="boxdraw">Boxes</A></H3>
<P>FLTK provides three functions that can be used to draw boxes
for buttons and other UI controls. Each function uses the
supplied upper-lefthand corner and width and height to determine
where to draw the box.
<H4><A NAME="fl_draw_box">void fl_draw_box(Fl_Boxtype b, int x, int y, int w, int h, Fl_Color c);</A></H4>
<P>The first box drawing function is <CODE>fl_draw_box()</CODE>
which draws a standard boxtype <CODE>c</CODE> in the specified
color <CODE>c</CODE>.
<H4><A NAME="fl_frame">void fl_frame(const char *s, int x, int y, int w, int h);</A></H4>
<P>The <CODE>fl_frame()</CODE> function draws a series of line
segments around the given box. The string <CODE>s</CODE> must
contain groups of 4 letters which specify one of 24 standard
grayscale values, where 'A' is black and 'X' is white. The order
of each set of 4 characters is: top, left, bottom, right. The
results of calling <CODE>fl_frame()</CODE> with a string that is
not a multiple of 4 characters in length are undefined.
<P>The only difference between this function and
<CODE>fl_frame2()</CODE> is the order of the line segments.
<H4><A NAME="fl_frame2">void fl_frame2(const char *s, int x, int y, int w, int h);</A></H4>
<P>The <CODE>fl_frame2()</CODE> function draws a series of line
segments around the given box. The string <CODE>s</CODE> must
contain groups of 4 letters which specify one of 24 standard
grayscale values, where 'A' is black and 'X' is white. The order
of each set of 4 characters is: bottom, right, top, left. The
results of calling <CODE>fl_frame2()</CODE> with a string that is
not a multiple of 4 characters in length are undefined.
<P>The only difference between this function and
<CODE>fl_frame()</CODE> is the order of the line segments.
<H3><A name="clipping">Clipping</A></H3>
<P>You can limit all your drawing to a rectangular region by calling

View File

@@ -91,6 +91,10 @@ symbol on the command-line when you compile
<TD>filename_relative()</TD>
<TD>fl_filename_relative()</TD>
</TR>
<TR>
<TD>filename_setext()</TD>
<TD>fl_filename_setext()</TD>
</TR>
<TR>
<TD>frame()</TD>
<TD>fl_frame()</TD>

View File

@@ -1,5 +1,5 @@
//
// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.19 2002/11/19 16:37:34 easysw Exp $"
// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.20 2002/12/19 21:34:25 easysw Exp $"
//
// Bitmap drawing routines for the Fast Light Tool Kit (FLTK).
//
@@ -437,8 +437,8 @@ Fl_Image *Fl_Bitmap::copy(int W, int H) {
memset(new_array, 0, H * (W + 7) / 8);
// Scale the image using a nearest-neighbor algorithm...
for (dy = H, sy = 0, yerr = H / 2, new_ptr = new_array; dy > 0; dy --) {
for (dx = W, xerr = W / 2, old_ptr = array + sy * (w() + 7) / 8, sx = 0, new_bit = 128;
for (dy = H, sy = 0, yerr = H, new_ptr = new_array; dy > 0; dy --) {
for (dx = W, xerr = W, old_ptr = array + sy * (w() + 7) / 8, sx = 0, new_bit = 128;
dx > 0;
dx --) {
old_bit = (uchar)(128 >> (sx & 7));
@@ -474,5 +474,5 @@ Fl_Image *Fl_Bitmap::copy(int W, int H) {
//
// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.19 2002/11/19 16:37:34 easysw Exp $".
// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.20 2002/12/19 21:34:25 easysw Exp $".
//

View File

@@ -1,5 +1,5 @@
//
// "$Id: Fl_Image.cxx,v 1.5.2.3.2.25 2002/11/19 16:37:35 easysw Exp $"
// "$Id: Fl_Image.cxx,v 1.5.2.3.2.26 2002/12/19 21:34:25 easysw Exp $"
//
// Image drawing code for the Fast Light Tool Kit (FLTK).
//
@@ -169,8 +169,8 @@ Fl_Image *Fl_RGB_Image::copy(int W, int H) {
new_image->alloc_array = 1;
// Scale the image using a nearest-neighbor algorithm...
for (dy = H, sy = 0, yerr = H / 2, new_ptr = new_array; dy > 0; dy --) {
for (dx = W, xerr = W / 2, old_ptr = array + sy * (w() * d() + ld());
for (dy = H, sy = 0, yerr = H, new_ptr = new_array; dy > 0; dy --) {
for (dx = W, xerr = W, old_ptr = array + sy * (w() * d() + ld());
dx > 0;
dx --) {
for (c = 0; c < d(); c ++) *new_ptr++ = old_ptr[c];
@@ -392,5 +392,5 @@ void Fl_RGB_Image::label(Fl_Menu_Item* m) {
//
// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.25 2002/11/19 16:37:35 easysw Exp $".
// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.26 2002/12/19 21:34:25 easysw Exp $".
//

View File

@@ -1,5 +1,5 @@
//
// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.23 2002/11/19 16:37:35 easysw Exp $"
// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.24 2002/12/19 21:34:26 easysw Exp $"
//
// Pixmap drawing code for the Fast Light Tool Kit (FLTK).
//
@@ -279,11 +279,11 @@ Fl_Image *Fl_Pixmap::copy(int W, int H) {
}
// Scale the image using a nearest-neighbor algorithm...
for (dy = H, sy = 0, yerr = H / 2; dy > 0; dy --, new_row ++) {
for (dy = H, sy = 0, yerr = H; dy > 0; dy --, new_row ++) {
*new_row = new char[chars_per_line];
new_ptr = *new_row;
for (dx = W, xerr = W / 2, old_ptr = data()[sy + ncolors + 1];
for (dx = W, xerr = W, old_ptr = data()[sy + ncolors + 1];
dx > 0;
dx --) {
for (c = 0; c < chars_per_pixel; c ++) *new_ptr++ = old_ptr[c];
@@ -461,5 +461,5 @@ void Fl_Pixmap::desaturate() {
}
//
// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.23 2002/11/19 16:37:35 easysw Exp $".
// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.24 2002/12/19 21:34:26 easysw Exp $".
//