Added XBM, XPM, and PNM image file classes.
The pixmap_browser demo now supports all image formats via Fl_Shared_Image. Dropped image file stuff from image demo. Added Fl_Tiled_Image class, which tiles an Fl_Image, useful for tiling a background image in groups. Added tiled_image demo. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1725 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
e016a249b2
commit
b650366d80
5
CHANGES
5
CHANGES
@ -5,9 +5,10 @@ CHANGES IN FLTK 1.1.0b6
|
||||
environment.
|
||||
- Added new fl_beep() function to do audible
|
||||
notifications of various types.
|
||||
- Added new Fl_GIF_Image, Fl_PNG_Image, and
|
||||
Fl_JPEG_Image classes.
|
||||
- Added new Fl_GIF_Image, Fl_JPEG_Image, Fl_PNG_Image,
|
||||
Fl_PNM_Image, Fl_XBM_Image, and Fl_XPM_Image classes.
|
||||
- Added new Fl_Shared_Image class, a la FLTK 2.0.
|
||||
- Added new Fl_Tiled_Image class for tiled backgrounds.
|
||||
- Added new copy(), desaturate(), inactive(), and
|
||||
color_average() methods to the Fl_Image classes.
|
||||
- Added a horizontal scrollbar to the Fl_Help_View
|
||||
|
41
FL/Fl_PNM_Image.H
Normal file
41
FL/Fl_PNM_Image.H
Normal file
@ -0,0 +1,41 @@
|
||||
//
|
||||
// "$Id: Fl_PNM_Image.H,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// PNM image header file for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2001 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".
|
||||
//
|
||||
|
||||
#ifndef Fl_PNM_Image_H
|
||||
#define Fl_PNM_Image_H
|
||||
# include "Fl_Image.H"
|
||||
|
||||
class FL_EXPORT Fl_PNM_Image : public Fl_RGB_Image {
|
||||
|
||||
public:
|
||||
|
||||
Fl_PNM_Image(const char* filename);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_PNM_Image.H,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Pixmap.H,v 1.6.2.8.2.5 2001/11/22 15:35:01 easysw Exp $"
|
||||
// "$Id: Fl_Pixmap.H,v 1.6.2.8.2.6 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Pixmap header file for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -39,6 +39,9 @@ class FL_EXPORT Fl_Pixmap : public Fl_Image {
|
||||
void copy_data();
|
||||
void delete_data();
|
||||
void set_data(const char * const *p);
|
||||
|
||||
protected:
|
||||
|
||||
void measure();
|
||||
|
||||
public:
|
||||
@ -65,5 +68,5 @@ class FL_EXPORT Fl_Pixmap : public Fl_Image {
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Pixmap.H,v 1.6.2.8.2.5 2001/11/22 15:35:01 easysw Exp $".
|
||||
// End of "$Id: Fl_Pixmap.H,v 1.6.2.8.2.6 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
||||
|
41
FL/Fl_XBM_Image.H
Normal file
41
FL/Fl_XBM_Image.H
Normal file
@ -0,0 +1,41 @@
|
||||
//
|
||||
// "$Id: Fl_XBM_Image.H,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// XBM image header file for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2001 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".
|
||||
//
|
||||
|
||||
#ifndef Fl_XBM_Image_H
|
||||
#define Fl_XBM_Image_H
|
||||
# include "Fl_Bitmap.H"
|
||||
|
||||
class FL_EXPORT Fl_XBM_Image : public Fl_Bitmap {
|
||||
|
||||
public:
|
||||
|
||||
Fl_XBM_Image(const char* filename);
|
||||
};
|
||||
|
||||
#endif // !Fl_XBM_Image_H
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_XBM_Image.H,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
41
FL/Fl_XPM_Image.H
Normal file
41
FL/Fl_XPM_Image.H
Normal file
@ -0,0 +1,41 @@
|
||||
//
|
||||
// "$Id: Fl_XPM_Image.H,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// XPM image header file for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2001 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".
|
||||
//
|
||||
|
||||
#ifndef Fl_XPM_Image_H
|
||||
#define Fl_XPM_Image_H
|
||||
# include "Fl_Pixmap.H"
|
||||
|
||||
class FL_EXPORT Fl_XPM_Image : public Fl_Pixmap {
|
||||
|
||||
public:
|
||||
|
||||
Fl_XPM_Image(const char* filename);
|
||||
};
|
||||
|
||||
#endif // !Fl_XPM_Image
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_XPM_Image.H,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
@ -1,10 +1,9 @@
|
||||
//
|
||||
// "$Id: Fl_GIF_Image.cxx,v 1.1.2.4 2001/11/24 02:46:19 easysw Exp $"
|
||||
// "$Id: Fl_GIF_Image.cxx,v 1.1.2.5 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Fl_GIF_Image routines.
|
||||
//
|
||||
// Copyright 1997-2001 by Easy Software Products.
|
||||
// Image support donated by Matthias Melcher, Copyright 2000.
|
||||
// Copyright 1997-2001 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
|
||||
@ -366,5 +365,5 @@ Fl_GIF_Image::Fl_GIF_Image(const char *infname) : Fl_Pixmap((char *const*)0) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_GIF_Image.cxx,v 1.1.2.4 2001/11/24 02:46:19 easysw Exp $".
|
||||
// End of "$Id: Fl_GIF_Image.cxx,v 1.1.2.5 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
||||
|
161
src/Fl_PNM_Image.cxx
Normal file
161
src/Fl_PNM_Image.cxx
Normal file
@ -0,0 +1,161 @@
|
||||
//
|
||||
// "$Id: Fl_PNM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Fl_PNM_Image routines.
|
||||
//
|
||||
// Copyright 1997-2001 by Easy Software Products.
|
||||
//
|
||||
// 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".
|
||||
//
|
||||
// Contents:
|
||||
//
|
||||
//
|
||||
|
||||
//
|
||||
// Include necessary header files...
|
||||
//
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_PNM_Image.H>
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
|
||||
//
|
||||
// 'Fl_PNM_Image::Fl_PNM_Image()' - Load a PNM image...
|
||||
//
|
||||
|
||||
Fl_PNM_Image::Fl_PNM_Image(const char *name) // I - File to read
|
||||
: Fl_RGB_Image(0,0,0) {
|
||||
FILE *fp; // File pointer
|
||||
int x, y; // Looping vars
|
||||
char line[1024], // Input line
|
||||
*lineptr; // Pointer in line
|
||||
uchar *ptr, // Pointer to pixel values
|
||||
byte, // Byte from file
|
||||
bit; // Bit in pixel
|
||||
int format, // Format of PNM file
|
||||
val, // Pixel value
|
||||
maxval; // Maximum pixel value
|
||||
|
||||
|
||||
//
|
||||
// Read the file header in the format:
|
||||
//
|
||||
// Pformat
|
||||
// # comment1
|
||||
// # comment2
|
||||
// ...
|
||||
// # commentN
|
||||
// width
|
||||
// height
|
||||
// max sample
|
||||
//
|
||||
|
||||
lineptr = fgets(line, sizeof(line), fp);
|
||||
lineptr ++;
|
||||
|
||||
format = atoi(lineptr);
|
||||
while (isdigit(*lineptr)) lineptr ++;
|
||||
|
||||
while (lineptr != NULL && w() == 0) {
|
||||
if (*lineptr == '\0' || *lineptr == '#') {
|
||||
lineptr = fgets(line, sizeof(line), fp);
|
||||
} else if (isdigit(*lineptr)) {
|
||||
w(atoi(lineptr));
|
||||
while (isdigit(*lineptr)) lineptr ++;
|
||||
} else lineptr ++;
|
||||
}
|
||||
|
||||
while (lineptr != NULL && h()) {
|
||||
if (*lineptr == '\0' || *lineptr == '#') {
|
||||
lineptr = fgets(line, sizeof(line), fp);
|
||||
} else if (isdigit(*lineptr)) {
|
||||
h(atoi(lineptr));
|
||||
while (isdigit(*lineptr)) lineptr ++;
|
||||
} else lineptr ++;
|
||||
}
|
||||
|
||||
if (format != 1 && format != 4) {
|
||||
maxval = 0;
|
||||
|
||||
while (lineptr != NULL && maxval == 0) {
|
||||
if (*lineptr == '\0' || *lineptr == '#') {
|
||||
lineptr = fgets(line, sizeof(line), fp);
|
||||
} else if (isdigit(*lineptr)) {
|
||||
maxval = atoi(lineptr);
|
||||
while (isdigit(*lineptr)) lineptr ++;
|
||||
} else lineptr ++;
|
||||
}
|
||||
} else maxval = 1;
|
||||
|
||||
// Allocate memory...
|
||||
if (format == 1 || format == 2 || format == 4 || format == 5) d(1);
|
||||
else d(3);
|
||||
|
||||
array = new uchar[w() * h() * d()];
|
||||
|
||||
// Read the image file...
|
||||
for (y = 0; y < h(); y ++) {
|
||||
ptr = (uchar *)array + y * w() * d();
|
||||
|
||||
switch (format) {
|
||||
case 1 :
|
||||
case 2 :
|
||||
for (x = w(); x > 0; x --)
|
||||
if (fscanf(fp, "%d", &val) == 1) *ptr++ = 255 * val / maxval;
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
for (x = w(); x > 0; x --) {
|
||||
if (fscanf(fp, "%d", &val) == 1) *ptr++ = 255 * val / maxval;
|
||||
if (fscanf(fp, "%d", &val) == 1) *ptr++ = 255 * val / maxval;
|
||||
if (fscanf(fp, "%d", &val) == 1) *ptr++ = 255 * val / maxval;
|
||||
}
|
||||
break;
|
||||
|
||||
case 4 :
|
||||
for (x = w(), byte = getc(fp), bit = 128; x > 0; x --) {
|
||||
if (byte & bit) *ptr++ = 255;
|
||||
else *ptr++ = 0;
|
||||
|
||||
if (bit > 1) bit >>= 1;
|
||||
else {
|
||||
bit = 128;
|
||||
byte = getc(fp);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 5 :
|
||||
case 6 :
|
||||
fread(ptr, w(), d(), fp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_PNM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Shared_Image.cxx,v 1.23.2.1 2001/11/24 02:46:19 easysw Exp $"
|
||||
// "$Id: Fl_Shared_Image.cxx,v 1.23.2.2 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Shared image code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -32,8 +32,9 @@
|
||||
#include <FL/Fl_GIF_Image.H>
|
||||
#include <FL/Fl_JPEG_Image.H>
|
||||
#include <FL/Fl_PNG_Image.H>
|
||||
//#include <FL/Fl_XBM_Image.H>
|
||||
//#include <FL/Fl_XPM_Image.H>
|
||||
#include <FL/Fl_PNM_Image.H>
|
||||
#include <FL/Fl_XBM_Image.H>
|
||||
#include <FL/Fl_XPM_Image.H>
|
||||
|
||||
|
||||
//
|
||||
@ -224,6 +225,12 @@ Fl_Shared_Image::reload() {
|
||||
else if (memcmp(header, "\377\330\377", 3) == 0 && // Start-of-Image
|
||||
header[3] >= 0xe0 && header[3] <= 0xef) // APPn
|
||||
img = new Fl_JPEG_Image(name_);
|
||||
else if (header[0] == 'P' && header[1] >= '1' && header[1] <= '6') // Portable anymap
|
||||
img = new Fl_PNM_Image(name_);
|
||||
else if (memcmp(header, "#define", 7) == 0) // XBM file
|
||||
img = new Fl_XBM_Image(name_);
|
||||
else if (memcmp(header, "/* XPM */", 9) == 0) // XPM file
|
||||
img = new Fl_XPM_Image(name_);
|
||||
else
|
||||
img = 0;
|
||||
|
||||
@ -369,5 +376,5 @@ Fl_Shared_Image::get(const char *n, int W, int H) {
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Shared_Image.cxx,v 1.23.2.1 2001/11/24 02:46:19 easysw Exp $".
|
||||
// End of "$Id: Fl_Shared_Image.cxx,v 1.23.2.2 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
||||
|
133
src/Fl_Tiled_Image.cxx
Normal file
133
src/Fl_Tiled_Image.cxx
Normal file
@ -0,0 +1,133 @@
|
||||
//
|
||||
// "$Id: Fl_Tiled_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Tiled image code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2001 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/Fl.H>
|
||||
#include <FL/Fl_Tiled_Image.H>
|
||||
#include <FL/fl_draw.H>
|
||||
|
||||
|
||||
//
|
||||
// 'Fl_Tiled_Image::Fl_Tiled_Image()' - Constructor.
|
||||
//
|
||||
// Use a width and height of 0 to tile the whole window/widget.
|
||||
//
|
||||
|
||||
Fl_Tiled_Image::Fl_Tiled_Image(Fl_Image *i, // I - Image to tile
|
||||
int W, // I - Width of tiled area
|
||||
int H) : // I - Height of tiled area
|
||||
Fl_Image(W,H,0) {
|
||||
image_ = i;
|
||||
alloc_image_ = 0;
|
||||
|
||||
if (W == 0) w(Fl::w());
|
||||
if (H == 0) h(Fl::h());
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'Fl_Tiled_Image::~Fl_Tiled_Image()' - Destructor.
|
||||
//
|
||||
|
||||
Fl_Tiled_Image::~Fl_Tiled_Image() {
|
||||
if (alloc_image_) delete image_;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'Fl_Tiled_Image::copy()' - Copy and resize a tiled image...
|
||||
//
|
||||
|
||||
Fl_Image * // O - New image
|
||||
Fl_Tiled_Image::copy(int W, // I - New width
|
||||
int H) { // I - New height
|
||||
if (W == w() && H == h()) return this;
|
||||
else return new Fl_Tiled_Image(image_, W, H);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'Fl_Tiled_Image::color_average()' - Blend colors...
|
||||
//
|
||||
|
||||
void
|
||||
Fl_Tiled_Image::color_average(Fl_Color c, // I - Color to blend with
|
||||
float i) { // I - Blend fraction
|
||||
Fl_Image *temp = image_->copy();
|
||||
|
||||
temp->color_average(c, i);
|
||||
|
||||
image_ = temp;
|
||||
alloc_image_ = 1;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'Fl_Tiled_Image::desaturate()' - Convert the image to grayscale...
|
||||
//
|
||||
|
||||
void
|
||||
Fl_Tiled_Image::desaturate() {
|
||||
Fl_Image *temp = image_->copy();
|
||||
|
||||
temp->desaturate();
|
||||
|
||||
image_ = temp;
|
||||
alloc_image_ = 1;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'Fl_Tiled_Image::draw()' - Draw a shared image...
|
||||
//
|
||||
|
||||
void
|
||||
Fl_Tiled_Image::draw(int X, // I - Starting X position
|
||||
int Y, // I - Starting Y position
|
||||
int W, // I - Width of area to be filled
|
||||
int H, // I - Height of area to be filled
|
||||
int cx, // I - "Source" X position
|
||||
int cy) { // I - "Source" Y position
|
||||
if (!image_->w() || !image_->h()) return;
|
||||
if (W == 0) W = Fl::w();
|
||||
if (H == 0) H = Fl::h();
|
||||
|
||||
X += cx;
|
||||
Y += cy;
|
||||
|
||||
X = X - (X % image_->w());
|
||||
Y = Y - (Y % image_->h());
|
||||
|
||||
W += X;
|
||||
H += Y;
|
||||
|
||||
for (int yy = Y; yy < H; yy += image_->h())
|
||||
for (int xx = X; xx < W; xx += image_->w())
|
||||
image_->draw(xx, yy);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Tiled_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
88
src/Fl_XBM_Image.cxx
Normal file
88
src/Fl_XBM_Image.cxx
Normal file
@ -0,0 +1,88 @@
|
||||
//
|
||||
// "$Id: Fl_XBM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Fl_XBM_Image routines.
|
||||
//
|
||||
// Copyright 1997-2001 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".
|
||||
//
|
||||
// Contents:
|
||||
//
|
||||
//
|
||||
|
||||
//
|
||||
// Include necessary header files...
|
||||
//
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_XBM_Image.H>
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
Fl_XBM_Image::Fl_XBM_Image(const char *name) : Fl_Bitmap((const char *)0,0,0) {
|
||||
FILE *f;
|
||||
uchar *data;
|
||||
|
||||
if ((f = fopen(name, "rb")) == NULL) return;
|
||||
|
||||
char buffer[1024];
|
||||
char junk[1024];
|
||||
int wh[2]; // width and height
|
||||
int i;
|
||||
for (i = 0; i<2; i++) {
|
||||
for (;;) {
|
||||
if (!fgets(buffer,1024,f)) return;
|
||||
int r = sscanf(buffer,"#define %s %d",junk,&wh[i]);
|
||||
if (r >= 2) break;
|
||||
}
|
||||
}
|
||||
|
||||
// skip to data array:
|
||||
for (;;) {
|
||||
if (!fgets(buffer,1024,f)) return;
|
||||
if (!strncmp(buffer,"static ",7)) break;
|
||||
}
|
||||
|
||||
// Allocate memory...
|
||||
w(wh[0]);
|
||||
h(wh[1]);
|
||||
|
||||
int n = ((wh[0]+7)/8)*wh[1];
|
||||
array = new uchar[((w() + 7) / 8) * h()];
|
||||
|
||||
// read the data:
|
||||
for (i = 0, data = (uchar *)array; i < n;) {
|
||||
if (!fgets(buffer,1024,f)) return;
|
||||
const char *a = buffer;
|
||||
while (*a && i<n) {
|
||||
int t;
|
||||
if (sscanf(a," 0x%x",&t)>0) *data++ = t;
|
||||
while (*a && *a++ != ',');
|
||||
}
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_XBM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
129
src/Fl_XPM_Image.cxx
Normal file
129
src/Fl_XPM_Image.cxx
Normal file
@ -0,0 +1,129 @@
|
||||
//
|
||||
// "$Id: Fl_XPM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Fl_XPM_Image routines.
|
||||
//
|
||||
// Copyright 1997-2001 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".
|
||||
//
|
||||
// Contents:
|
||||
//
|
||||
//
|
||||
|
||||
//
|
||||
// Include necessary header files...
|
||||
//
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_XPM_Image.H>
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
|
||||
//
|
||||
// 'hexdigit()' - Convert a hex digit to an integer.
|
||||
//
|
||||
|
||||
static int hexdigit(int x) { // I - Hex digit...
|
||||
if (isdigit(x)) return x-'0';
|
||||
if (isupper(x)) return x-'A'+10;
|
||||
if (islower(x)) return x-'a'+10;
|
||||
return 20;
|
||||
}
|
||||
|
||||
#define MAXSIZE 2048
|
||||
#define INITIALLINES 256
|
||||
|
||||
Fl_XPM_Image::Fl_XPM_Image(const char *name) : Fl_Pixmap((char *const*)0) {
|
||||
FILE *f;
|
||||
|
||||
if ((f = fopen(name, "rb")) == NULL) return;
|
||||
|
||||
// read all the c-strings out of the file:
|
||||
char** new_data = new char *[INITIALLINES];
|
||||
char** temp_data;
|
||||
int malloc_size = INITIALLINES;
|
||||
char buffer[MAXSIZE+20];
|
||||
int i = 0;
|
||||
while (fgets(buffer,MAXSIZE+20,f)) {
|
||||
if (buffer[0] != '\"') continue;
|
||||
char *myp = buffer;
|
||||
char *q = buffer+1;
|
||||
while (*q != '\"' && myp < buffer+MAXSIZE) {
|
||||
if (*q == '\\') switch (*++q) {
|
||||
case '\r':
|
||||
case '\n':
|
||||
fgets(q,(buffer+MAXSIZE+20)-q,f); break;
|
||||
case 0:
|
||||
break;
|
||||
case 'x': {
|
||||
q++;
|
||||
int n = 0;
|
||||
for (int x = 0; x < 3; x++) {
|
||||
int d = hexdigit(*q);
|
||||
if (d > 15) break;
|
||||
n = (n<<4)+d;
|
||||
q++;
|
||||
}
|
||||
*myp++ = n;
|
||||
} break;
|
||||
default: {
|
||||
int c = *q++;
|
||||
if (c>='0' && c<='7') {
|
||||
c -= '0';
|
||||
for (int x=0; x<2; x++) {
|
||||
int d = hexdigit(*q);
|
||||
if (d>7) break;
|
||||
c = (c<<3)+d;
|
||||
q++;
|
||||
}
|
||||
}
|
||||
*myp++ = c;
|
||||
} break;
|
||||
} else {
|
||||
*myp++ = *q++;
|
||||
}
|
||||
}
|
||||
*myp++ = 0;
|
||||
if (i >= malloc_size) {
|
||||
temp_data = new char *[malloc_size + INITIALLINES];
|
||||
memcpy(temp_data, new_data, sizeof(char *) * malloc_size);
|
||||
delete[] new_data;
|
||||
new_data = temp_data;
|
||||
malloc_size += INITIALLINES;
|
||||
}
|
||||
new_data[i] = new char[myp-buffer+1];
|
||||
memcpy(new_data[i], buffer,myp-buffer);
|
||||
new_data[i][myp-buffer] = 0;
|
||||
i++;
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
|
||||
data(new_data, i);
|
||||
measure();
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_XPM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# "$Id: Makefile,v 1.18.2.14.2.19 2001/11/24 02:46:19 easysw Exp $"
|
||||
# "$Id: Makefile,v 1.18.2.14.2.20 2001/11/24 18:07:57 easysw Exp $"
|
||||
#
|
||||
# Library makefile for the Fast Light Tool Kit (FLTK).
|
||||
#
|
||||
@ -68,6 +68,7 @@ CPPFILES = \
|
||||
Fl_Pack.cxx \
|
||||
Fl_Pixmap.cxx \
|
||||
Fl_PNG_Image.cxx \
|
||||
Fl_PNM_Image.cxx \
|
||||
Fl_Positioner.cxx \
|
||||
Fl_Progress.cxx \
|
||||
Fl_Repeat_Button.cxx \
|
||||
@ -84,6 +85,7 @@ CPPFILES = \
|
||||
Fl_Text_Display.cxx \
|
||||
Fl_Text_Editor.cxx \
|
||||
Fl_Tile.cxx \
|
||||
Fl_Tiled_Image.cxx \
|
||||
Fl_Tooltip.cxx \
|
||||
Fl_Valuator.cxx \
|
||||
Fl_Value_Input.cxx \
|
||||
@ -95,6 +97,8 @@ CPPFILES = \
|
||||
Fl_Window_hotspot.cxx \
|
||||
Fl_Window_iconize.cxx \
|
||||
Fl_Wizard.cxx \
|
||||
Fl_XBM_Image.cxx \
|
||||
Fl_XPM_Image.cxx \
|
||||
Fl_abort.cxx \
|
||||
Fl_add_idle.cxx \
|
||||
Fl_arg.cxx \
|
||||
@ -280,5 +284,5 @@ uninstall:
|
||||
|
||||
|
||||
#
|
||||
# End of "$Id: Makefile,v 1.18.2.14.2.19 2001/11/24 02:46:19 easysw Exp $".
|
||||
# End of "$Id: Makefile,v 1.18.2.14.2.20 2001/11/24 18:07:57 easysw Exp $".
|
||||
#
|
||||
|
@ -207,6 +207,9 @@ Fl_Text_Editor.o: ../FL/Fl_Scrollbar.H ../FL/Fl_Slider.H ../FL/Fl_Valuator.H
|
||||
Fl_Text_Editor.o: ../FL/Fl_Text_Buffer.H
|
||||
Fl_Tile.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H ../FL/Fl_Tile.H
|
||||
Fl_Tile.o: ../FL/Fl_Group.H ../FL/Fl_Widget.H ../FL/Fl_Window.H
|
||||
Fl_Tiled_Image.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Tiled_Image.o: ../FL/Fl_Tiled_Image.H ../FL/Fl_Image.H ../FL/x.H
|
||||
Fl_Tiled_Image.o: ../FL/Fl_Window.H
|
||||
Fl_Tooltip.o: ../FL/Fl.H ../FL/Enumerations.H ../FL/Fl_Export.H
|
||||
Fl_Tooltip.o: ../FL/Fl_Menu_Window.H ../FL/Fl_Single_Window.H
|
||||
Fl_Tooltip.o: ../FL/Fl_Window.H ../FL/Fl_Box.H ../FL/Fl_Widget.H
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# "$Id: Makefile,v 1.19.2.7.2.11 2001/11/24 02:46:19 easysw Exp $"
|
||||
# "$Id: Makefile,v 1.19.2.7.2.12 2001/11/24 18:07:57 easysw Exp $"
|
||||
#
|
||||
# Test/example program makefile for the Fast Light Tool Kit (FLTK).
|
||||
#
|
||||
@ -26,20 +26,66 @@
|
||||
include ../makeinclude
|
||||
|
||||
CPPFILES =\
|
||||
CubeMain.cxx CubeView.cxx adjuster.cxx arc.cxx ask.cxx \
|
||||
bitmap.cxx boxtype.cxx browser.cxx button.cxx \
|
||||
buttons.cxx checkers.cxx clock.cxx colbrowser.cxx \
|
||||
color_chooser.cxx cube.cxx cursor.cxx curve.cxx demo.cxx \
|
||||
doublebuffer.cxx editor.cxx file_chooser.cxx fonts.cxx \
|
||||
forms.cxx fractals.cxx fullscreen.cxx gl_overlay.cxx \
|
||||
glpuzzle.cxx hello.cxx help.cxx iconize.cxx image.cxx input.cxx \
|
||||
keyboard.cxx label.cxx list_visuals.cxx mandelbrot.cxx \
|
||||
menubar.cxx message.cxx minimum.cxx navigation.cxx \
|
||||
output.cxx overlay.cxx pixmap.cxx pixmap_browser.cxx \
|
||||
radio.cxx resizebox.cxx scroll.cxx shape.cxx shiny.cxx \
|
||||
subwindow.cxx symbols.cxx tabs.cxx tile.cxx \
|
||||
valuators.cxx fast_slow.cxx resize.cxx pack.cxx \
|
||||
inactive.cxx line_style.cxx
|
||||
adjuster.cxx \
|
||||
arc.cxx \
|
||||
ask.cxx \
|
||||
bitmap.cxx \
|
||||
boxtype.cxx \
|
||||
browser.cxx \
|
||||
button.cxx \
|
||||
buttons.cxx \
|
||||
checkers.cxx \
|
||||
clock.cxx \
|
||||
colbrowser.cxx \
|
||||
color_chooser.cxx \
|
||||
cube.cxx \
|
||||
CubeMain.cxx \
|
||||
CubeView.cxx \
|
||||
cursor.cxx \
|
||||
curve.cxx \
|
||||
demo.cxx \
|
||||
doublebuffer.cxx \
|
||||
editor.cxx \
|
||||
fast_slow.cxx \
|
||||
file_chooser.cxx \
|
||||
fonts.cxx \
|
||||
forms.cxx \
|
||||
fractals.cxx \
|
||||
fullscreen.cxx \
|
||||
gl_overlay.cxx \
|
||||
glpuzzle.cxx \
|
||||
hello.cxx \
|
||||
help.cxx \
|
||||
iconize.cxx \
|
||||
image.cxx \
|
||||
inactive.cxx \
|
||||
input.cxx \
|
||||
keyboard.cxx \
|
||||
label.cxx \
|
||||
line_style.cxx \
|
||||
list_visuals.cxx \
|
||||
mandelbrot.cxx \
|
||||
menubar.cxx \
|
||||
message.cxx \
|
||||
minimum.cxx \
|
||||
navigation.cxx \
|
||||
output.cxx \
|
||||
overlay.cxx \
|
||||
pack.cxx \
|
||||
pixmap_browser.cxx \
|
||||
pixmap.cxx \
|
||||
radio.cxx \
|
||||
resizebox.cxx \
|
||||
resize.cxx \
|
||||
scroll.cxx \
|
||||
shape.cxx \
|
||||
shiny.cxx \
|
||||
subwindow.cxx \
|
||||
symbols.cxx \
|
||||
tabs.cxx \
|
||||
tile.cxx \
|
||||
tiled_image.cxx \
|
||||
valuators.cxx
|
||||
|
||||
ALL = \
|
||||
adjuster$(EXEEXT) \
|
||||
@ -90,6 +136,7 @@ ALL = \
|
||||
symbols$(EXEEXT) \
|
||||
tabs$(EXEEXT) \
|
||||
tile$(EXEEXT) \
|
||||
tiled_image$(EXEEXT) \
|
||||
valuators$(EXEEXT)
|
||||
|
||||
GLALL = \
|
||||
@ -129,9 +176,6 @@ file_chooser$(EXEEXT): file_chooser.cxx
|
||||
help$(EXEEXT): help.cxx
|
||||
echo Compiling and linking $@...
|
||||
$(CXX) -I.. $(CXXFLAGS) help.cxx -o $@ $(LINKFLTK) $(LDLIBS) $(IMAGELIBS)
|
||||
image$(EXEEXT): image.cxx
|
||||
echo Compiling and linking $@...
|
||||
$(CXX) -I.. $(CXXFLAGS) image.cxx -o $@ $(LINKFLTK) $(LDLIBS) $(IMAGELIBS)
|
||||
keyboard$(EXEEXT): keyboard.cxx keyboard_ui.cxx
|
||||
echo Compiling and linking $@...
|
||||
$(CXX) -I.. $(CXXFLAGS) keyboard.cxx $(LINKFLTK) $(LDLIBS) -o $@
|
||||
@ -192,5 +236,5 @@ uninstall:
|
||||
@echo Nothing to uninstall in test directory.
|
||||
|
||||
#
|
||||
# End of "$Id: Makefile,v 1.19.2.7.2.11 2001/11/24 02:46:19 easysw Exp $".
|
||||
# End of "$Id: Makefile,v 1.19.2.7.2.12 2001/11/24 18:07:57 easysw Exp $".
|
||||
#
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: image.cxx,v 1.6.2.3.2.4 2001/11/24 02:46:19 easysw Exp $"
|
||||
// "$Id: image.cxx,v 1.6.2.3.2.5 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Fl_Image test program for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -30,7 +30,7 @@
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Shared_Image.H>
|
||||
#include <FL/Fl_Image.H>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
@ -96,9 +96,9 @@ int arg(int argc, char **argv, int &i) {
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
#ifndef WIN32
|
||||
int i = 1;
|
||||
|
||||
#ifndef WIN32
|
||||
Fl::args(argc,argv,i,arg);
|
||||
|
||||
if (visid >= 0) {
|
||||
@ -123,21 +123,11 @@ int main(int argc, char **argv) {
|
||||
window.color(FL_WHITE);
|
||||
Fl_Button b(140,160,120,120,"Image w/Alpha"); ::b = &b;
|
||||
|
||||
Fl_Image *rgb;
|
||||
Fl_RGB_Image *rgb;
|
||||
Fl_Image *dergb;
|
||||
|
||||
if (argv[1]) {
|
||||
rgb = Fl_Shared_Image::get(argv[1]);
|
||||
if (rgb->w() > 100 || rgb->h() > 100) {
|
||||
if (rgb->w() > rgb->h()) rgb = rgb->copy(100, 100 * rgb->h() / rgb->w());
|
||||
else rgb = rgb->copy(100 * rgb->w() / rgb->h(), 100);
|
||||
}
|
||||
b.label(argv[1]);
|
||||
} else {
|
||||
make_image();
|
||||
rgb = new Fl_RGB_Image(image, width, height,4);
|
||||
}
|
||||
|
||||
make_image();
|
||||
rgb = new Fl_RGB_Image(image, width, height,4);
|
||||
dergb = rgb->copy();
|
||||
dergb->inactive();
|
||||
|
||||
@ -165,5 +155,5 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: image.cxx,v 1.6.2.3.2.4 2001/11/24 02:46:19 easysw Exp $".
|
||||
// End of "$Id: image.cxx,v 1.6.2.3.2.5 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
||||
|
@ -1,10 +1,7 @@
|
||||
//
|
||||
// "$Id: pixmap_browser.cxx,v 1.5.2.4.2.2 2001/09/30 17:37:06 easysw Exp $"
|
||||
// "$Id: pixmap_browser.cxx,v 1.5.2.4.2.3 2001/11/24 18:07:57 easysw Exp $"
|
||||
//
|
||||
// Another pixmap test program for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// On purpose, I do NOT provide a fltk method to turn a file
|
||||
// into a pixmap. This program uses a rather simplistic one.
|
||||
// A shared image test program for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2001 by Bill Spitzak and others.
|
||||
//
|
||||
@ -30,9 +27,7 @@
|
||||
#include <FL/Fl_Box.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <FL/Fl_Shared_Image.H>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <FL/Fl_File_Chooser.H>
|
||||
@ -40,107 +35,39 @@
|
||||
|
||||
Fl_Box *b;
|
||||
Fl_Window *w;
|
||||
Fl_Shared_Image *img;
|
||||
|
||||
char **data;
|
||||
int sizeofdata;
|
||||
int numlines;
|
||||
|
||||
static int hexdigit(int x) {
|
||||
if (isdigit(x)) return x-'0';
|
||||
if (isupper(x)) return x-'A'+10;
|
||||
if (islower(x)) return x-'a'+10;
|
||||
return 20;
|
||||
}
|
||||
|
||||
int load_file(const char *name) {
|
||||
FILE *f = fopen(name,"r");
|
||||
if (!f) {
|
||||
fl_message("Can't open %s, %s",name,strerror(errno));
|
||||
return 0;
|
||||
}
|
||||
if (data) {
|
||||
for (int i=numlines; i--;) delete[] data[i];
|
||||
}
|
||||
#define BUFSIZE 2048
|
||||
char buffer[BUFSIZE];
|
||||
int i = 0;
|
||||
while (fgets(buffer, BUFSIZE, f)) {
|
||||
if (buffer[0] != '\"') continue;
|
||||
char *p = buffer;
|
||||
char *q = buffer+1;
|
||||
while (*q != '\"') {
|
||||
if (*q == '\\') switch (*++q) {
|
||||
case '\n':
|
||||
fgets(q,(buffer+BUFSIZE)-q,f); break;
|
||||
case 0:
|
||||
break;
|
||||
case 'x': {
|
||||
q++;
|
||||
int n = 0;
|
||||
for (int x = 0; x < 3; x++) {
|
||||
int d = hexdigit(*q);
|
||||
if (d > 15) break;
|
||||
n = (n<<4)+d;
|
||||
q++;
|
||||
}
|
||||
*p++ = n;
|
||||
} break;
|
||||
default: {
|
||||
int c = *q++;
|
||||
if (c>='0' && c<='7') {
|
||||
c -= '0';
|
||||
for (int x=0; x<2; x++) {
|
||||
int d = hexdigit(*q);
|
||||
if (d>7) break;
|
||||
c = (c<<3)+d;
|
||||
q++;
|
||||
}
|
||||
}
|
||||
*p++ = c;
|
||||
} break;
|
||||
} else {
|
||||
*p++ = *q++;
|
||||
}
|
||||
}
|
||||
*p++ = 0;
|
||||
if (i >= sizeofdata) {
|
||||
sizeofdata = 2*sizeofdata+100;
|
||||
char **newdata = new char *[sizeofdata];
|
||||
for (int j=0; j<i; j++) newdata[j] = data[j];
|
||||
delete[] data;
|
||||
data = newdata;
|
||||
}
|
||||
data[i] = new char[p-buffer];
|
||||
memcpy(data[i],buffer,p-buffer);
|
||||
i++;
|
||||
}
|
||||
numlines = i;
|
||||
fclose(f);
|
||||
return i;
|
||||
}
|
||||
|
||||
Fl_Pixmap *pixmap;
|
||||
void newpixmap() {
|
||||
delete pixmap;
|
||||
pixmap = new Fl_Pixmap(data);
|
||||
b->image(pixmap);
|
||||
b->redraw();
|
||||
w->redraw();
|
||||
}
|
||||
|
||||
static char name[1024];
|
||||
|
||||
void load_file(const char *n) {
|
||||
if (img) img->release();
|
||||
|
||||
img = Fl_Shared_Image::get(n);
|
||||
if (img->w() > b->w() || img->h() > b->h()) {
|
||||
Fl_Image *temp;
|
||||
if (img->w() > img->h()) temp = img->copy(b->w(), b->h() * img->h() / img->w());
|
||||
else temp = img->copy(b->w() * img->w() / img->h(), b->h());
|
||||
|
||||
img->release();
|
||||
img = (Fl_Shared_Image *)temp;
|
||||
}
|
||||
|
||||
b->label(name);
|
||||
b->image(img);
|
||||
b->redraw();
|
||||
}
|
||||
|
||||
void file_cb(const char *n) {
|
||||
if (!strcmp(name,n)) return;
|
||||
if (!load_file(n)) return;
|
||||
load_file(n);
|
||||
strcpy(name,n);
|
||||
w->label(name);
|
||||
newpixmap();
|
||||
}
|
||||
|
||||
void button_cb(Fl_Widget *,void *) {
|
||||
fl_file_chooser_callback(file_cb);
|
||||
fl_file_chooser("XPM file","*.xpm",name);
|
||||
fl_file_chooser("Image file?","*.{gif,jpg,pbm,pgm,png,ppm,xbm,xpm}", name);
|
||||
fl_file_chooser_callback(0);
|
||||
}
|
||||
|
||||
@ -152,19 +79,20 @@ int arg(int, char **argv, int &i) {
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int i = 1;
|
||||
if (Fl::args(argc,argv,i,arg) < argc)
|
||||
Fl::fatal(" -8 # : use default visual\n%s\n",Fl::help);
|
||||
Fl::args(argc,argv,i,arg);
|
||||
|
||||
Fl_Window window(400,400); ::w = &window;
|
||||
Fl_Box b(0,0,window.w(),window.h()); ::b = &b;
|
||||
b.box(FL_FLAT_BOX);
|
||||
Fl_Button button(5,5,100,35,"load");
|
||||
button.callback(button_cb);
|
||||
if (!dvisual) Fl::visual(FL_RGB);
|
||||
if (argv[1]) load_file(argv[1]);
|
||||
window.resizable(window);
|
||||
window.show(argc,argv);
|
||||
return Fl::run();
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: pixmap_browser.cxx,v 1.5.2.4.2.2 2001/09/30 17:37:06 easysw Exp $".
|
||||
// End of "$Id: pixmap_browser.cxx,v 1.5.2.4.2.3 2001/11/24 18:07:57 easysw Exp $".
|
||||
//
|
||||
|
120
test/tile.xpm
Normal file
120
test/tile.xpm
Normal file
@ -0,0 +1,120 @@
|
||||
/* XPM */
|
||||
static char * tile_xpm[] = {
|
||||
"100 100 17 1",
|
||||
" c None",
|
||||
". c #565656",
|
||||
"+ c #888888",
|
||||
"@ c #A8A8A8",
|
||||
"# c #8E8E8E",
|
||||
"$ c #A0A0A0",
|
||||
"% c #6E6E6E",
|
||||
"& c #727272",
|
||||
"* c #BFBFBF",
|
||||
"= c #989898",
|
||||
"- c #767676",
|
||||
"; c #7A7A7A",
|
||||
"> c #B4B4B4",
|
||||
", c #808080",
|
||||
"' c #AEAEAE",
|
||||
") c #656565",
|
||||
"! c #929292",
|
||||
"$=>$@@,++,,,-;%$$+,;+)#;*!+,+@*!,!++;+;$@;+==,#=!!$--%)++=$,!@!%#+@!>$=!+*!=%)==>>@+,$==@!))#$%;=!!*",
|
||||
"++$-,>$@!;+;-&++-,#!;++!-+#+!@$$#,,+&#=$=!==$+$#=>>>,&$#&$$#>$=,+.-''!$'*=+>+);+>*@$=--=$=,+!==,,@==",
|
||||
"!$,-,=@=$+==,+!%,#,-&=$++-)===#+##,+=+=#$@$=>''$$*@=,+#!,$=>!=$+)++)+*@=$@=,+$$$+!'**#,,,$+,=@=;==-;",
|
||||
"!,###$$);'#;$=+%;+#;++%-,=,==!)+#===========@>>>*>@!==#,+#==@$===+-;%@$=#+*>=!$$$==,*>@-+;+#$,%,@@%#",
|
||||
"+@,!=,,+!$==$++!&;+#!,%),=>!+;,=+$@=+!$==+#$!@>>>*@=;!,+#!==$$>@$!=>=$@$=+@='$!+@*+!!=*@$+,'@+%+,,@=",
|
||||
"=;&+,.-!=!=!=;+!!,!=!;)-==,++;+@>@+,#=$+!'$=#='>=*$$!+,!,#$$@!>$,#+$@@$@'@##==@$=+'$!+!$>@@*+!*+,!=!",
|
||||
"!!,,,+++&#=,+!,'!,!##!$$!-.++=@'=$$!==++==@=@>=!@@!#!+$+$===$@#+=$!=@$!@=#@+$>!=@$=!@'!=$*@$$!!====$",
|
||||
"#%)#@@+%,+!$,++=#+++,=$+-+++!$!+==$$===#+##$=@$=+$$+#=!@=,+$#!$$$$=$==$=!,,$@*$,=>-=@#$>>$+'>$@=>'!+",
|
||||
"),,-=+$!@##-,,!;,=++$@;%&,!!=$#!=!@@$$$,+==+$!==+!$$=#+!+!!+=!$!@@$=++=>!&+@$==!!!+==$*==$*@=@**$+!+",
|
||||
"!'$#,,,@$#+&)&-;===$,%;+#!==###$=#==!===>>+====$$,$$=+=-,$=;#!==$=#=;+=@===$$$=#$+=@@>$+>*@$'*@-+=%,",
|
||||
"$$$@++!!#%)+,%++>=$#%%#%=@=+=;,@$+=+=>$=='!+!##+$$!!;!=&=!##@$,+@+=+!$+-=@$,=>'+#!=@@==@>''@>>-+>$$=",
|
||||
"=,%++,@!,)),%,+=@!%++!+#,#+$=$!!='==@$$==+#$++,$$!@#$=,@+,,@#$+#=$$=!$+!+=!$$>==$$;=@!=$@*>@$==='$=$",
|
||||
"$$=&%#+,!=!+,;-+-%)#=@=+%%$$#!@!@$@@@>=,+!!,,#=>@$!#$;#$=-$@+;$*$!$@,&=$++!!+@@==#=!@;$>*@++@>=+,>>$",
|
||||
"$$#=$,+%,!@@!!&%-,,++==,,+!!#,#$!@@$=@#==#@=#=$*$$@,,+!+#!+=%,=@$'$$$=+!+==+#-=@,+$+@>!#=@$!@!=$=+#!",
|
||||
"+#=>==;,++,=>!;-,,;-#++$@!$,,!==@>>@$!=+$#+@='@$!'@$$&+#+=#+;+#=!'>$$@!#$++!=-!;,$!+>*'=#!@@@-##@$#+",
|
||||
",,#=$!$#+%,,,!=+=,!-,+!!$=%,+$!#@@'@$@,+$=+!=$>$!@+;@+,,#=;$=!,++>$=>$$=!,+==,-+@=!$@!@>@$-,,==!=$!!",
|
||||
"!+=$=,$#-#+=!,!=!=++;;,=;,=!+=+!,+$+#>=+@@####@=@@+;,+&;-==$#$=#$@=#@*==!=;+++==!!$@#%>>$=!#,-#+#+,)",
|
||||
"+&$=!&;###@=#-,@,,!+;!,%+!=!!++,+++=+'>==@#==-=$!$#!-,)+!#!==+$$@=#==,=@!==!%++==='@==$$=##!+!+%-=$$",
|
||||
"+!#=+-,,=@++==+#,--+++&+!!===+!+#;$=++*$$=!=@@=+=#%$--!+,@$+#+'>!=!+!!===$=$;++#,$+=@'=-!#!#=!+=,%!,",
|
||||
"+@$-+!)#=,=$!==,;,+-%,!!#@!$!-#-$!=+==#+$=+!='@$#++-;!!+$,!#-@'$++++==!$+!#=!+$@$,#==#+#==@!,%$==!,%",
|
||||
"#+#+,!,+%+@$>!!,;+;%+#++=+,$+-&=+,@$%!==-#,*@;$$=!+=,=#!!@$#$>!+$=!=#!@==!,,===$==!=@++,+@@$!==;,=#$",
|
||||
",=+,#$!;,@=+$'$$!+%;,-,##+,+,=!,,+++&==!=!$>@=$!,$!'#@#,!@!@==!+$+$!$=#$,+$!==++,=!@+!=!,!$+$+,=$,!#",
|
||||
")+>@$$+,=#+=#!+$=!,,&,;=++#!+,,++=##!-&+@$@@$$$,@$',&@*=-!=@!=,;=$#=@!++#!$'=!=,,+=$===;=$$=!=+!@=$%",
|
||||
"#+#@@@=>'#=,,#!,$=$+,,+$+$,;+--!$!!#=#,-,=$=$$,=@=,+$'$+,++=@;##-!@==+!!=!#@==,,+==!+!++=='$=>$#;@!;",
|
||||
";++=>+=@!$$$!,#!&,==!#@-!!-&%-&;===$+,)%,,+'$$@!++==*=%@+#=!==!==$+$$=,#$=!=,++=!$#-!@=!;$==@@>#+!+)",
|
||||
"+,+@!$==,=@=++=,&+-$!#@=,-,--+)#!,$'=%;-%;$@#@$!+!>>,#@$;+$$!=!@>$$=!,+>!!$-+,#!++,+!=+=+=-!>$@@$=;;",
|
||||
"+;$$=+$#=@!=$,,!#;,,+=#=++,!+&+#+;+$#+=,%!+;,==!=*=&$$!,+#'+,@@>=@$$,+$+#!!+,++#%%$$,++!=!==,#>$-=*@",
|
||||
"+>>+&=,=$+$@$%-!+++,&#+-+,=$+-$+;;=%,=@+$++&#+;,*$-%$$+,,;$$$=!$#$@+$@=$>,++$!,)-!!!+#;@+#@,!=#@=@>$",
|
||||
"'>$#%!$#,>$#=$,&&++%$#%#=+;!$$#%-+%,=!-!=+!=#+,#!$-'$=+,=@!=!@$#$!+!$!$*',,##+#+!!,;+#+=@##=@+@*'=!$",
|
||||
"@@=)$$=!=$$$=+=#,--!;-!+!#+++;=!+;!++++%)$=#@@+!,,!'='=+'!++=@!+=#=$=#$++#,,%=+=#!#&,!#====$$**@++@@",
|
||||
"@=+>>#==$==+!#=$+;+),++#+$>+;,+$!=#+==&+-#-$*+>==+,+$!+=+,@@@$=;=@$!+==&@+,+-,+;+,#+=$=!@@=='$=@''$+",
|
||||
"$)+@@'>$++,+#$$#!=+,-+-+==$#=!=++=#+#$==@,,>#@,$@+$%;,@!;=+,+=$$=##+==##='#,&+=&%+##$@@=$==$@=@$@$!$",
|
||||
"@>'@=@>$+=+,!==!!##!=+;-+#=++,%@=-,=;;=@!=>$$@$&,!@#!;!='++!+$@#+,+,-#!++!$,+$+),##'>,++$$=$@@'=!,$,",
|
||||
"$$>*@>==#=#++==$$+#='=+,#$#=&)+,=+!!%+$,='=@>=+,*;)!+=$$,%++@$)%;+==,#+-++-,$#+&++$=+#$-!=@''@=;#,;-",
|
||||
"*>+=$#++@=,=;,==,#;$=+++=!=+;-,-!=#&!>%+=,@$+;$$-&&-$=@$#,-,#+--$,%-,!,+%;=$--!$=$=#!$##+$@$==!=&&-$",
|
||||
"'=$$,-=+,#$!==+!+++!@!=$+=+,-!,;$=-$=,=+,$>--=@+)%!!@#++$@$,-+-=$+%&!&;,==$+++$=$=+#==+!!@=!;$#+$$>>",
|
||||
",#=+!$-%)#==>$$,,!+=''++$+,#,##%%+@$,,,,@@#==@=,%,$$$#+;=+=$!++,-,;+,%%!@,-,,=!==!+#+==#+=+),==$='>+",
|
||||
"$+#==$);,++#=$=,=#$$==$$$!#;=+#++$',#=!==+=$=+#$#!!$#=+,!--$@+-&)-+!%)!=+--!=@=##=!$=@===!&+$#$@@=,@",
|
||||
"$$$@+++;%+=,=!=$$$$=!=$#'==#,,+!$=!=,!==@=@*=$,==$,@==,++,+=;-=!+%+%%=+&%++=$!$-++=+@$++!+++$#==++#-",
|
||||
"+=$=+=;=-#,+,,$=$'@#@=+%-@>!#,$$+@#==%,!$@'@=$$=@!!+,--=##!!,)=@#=)%,,-,+==!!,,++=+$+,!;,++=,+#%,!;+",
|
||||
"$+#'$,,+@!=%,,+!'@>@##=$+;%=@$!!$=+=$,===++!+$@*$#=,#,-==+&,!==$=+=!!%,&===!;+!#=;#!+,!+=-;+==-)#+,,",
|
||||
"+==#=$+=,,++,,+!=@$+$>$+#,==;*@=!#$-,>$'@%&->=>>$$;,!++=+,+,+@#=!#@++,#=!=+,+,+==-+-##+#,-,;-##+#!,+",
|
||||
"+=%,@=!+-&&==!$=,@$'=++=#;+$'==;+=$&!$+#'#$@$#@>=++,#$$+)++;!#=!!+,,,$'=&,+++,#=++=$===;=#,+#+!+#!#,",
|
||||
";,,!!##,,,,==@$,=+$>+#$$+=$#@=-!$=;$#$$,-!'$#=#$$;+#!++=+;&;-+'$&;,+,,&$$==+!#,++==#-=!+++,+!!$$==--",
|
||||
"&-,!!=;+=++$$=#@$=@,+=$=$!=#+,$+=;,==!$+==@>@,&,$'++#,)++=,,)+=,!$=#-.&+#$'@!+++==!+,+&#!,++$=+!@=-=",
|
||||
"&+!+;,+++!!$$##$$!=$=!+=!=!!;!@=-++@$@$'$#>'++$$$+$-%,=--+!+@+;!#;#;%-&,#=$@@!!=$,=!;)&++=!#$#,&++!!",
|
||||
"$=!,))-,!=,-$$@=+!+!,'=+==!=$+=++,=+'@'@@===;,!>'@+),=&+$,)=+++-+,);;%-,++$#+=@$#,+$,#=+!+!##+#;,+#%",
|
||||
"!#-%%%;#+;!%!@=@@+.$;+*@+=,@!;%$=+,=$,@$,=>+#;+=@$$@=%=>@-,);!$$&);#),,#,%&#!==@>++,=>=+++,,!=--=#,@",
|
||||
"#&%,=,##.+%!+=$$+=@!!+-,=@!$#,,$!=@#@=!,+@@###+-=#@,-=$,#++)-#$#-#)#,,%,;),!$!##$@'$!$!,+!!!+-;#+#$$",
|
||||
";.%.-+$@&)-!=++@##=*$,!=$;+@='!!-!>#!!!$>%+-&#!=$!#=$*$#-+%=;!=-!+#;#++&),==+$+!$++=-,#++!+$+%$%;++;",
|
||||
"$--%)++=$,!@!%#+@!>$=!+*!=%)==>>@+,$==@!))#$%;=!!*$=>$@@,++,,,-;%$$+,;+)#;*!+,+@*!,!++;+;$@;+==,#=!!",
|
||||
">>,&$#&$$#>$=,+.-''!$'*=+>+);+>*@$=--=$=,+!==,,@==++$-,>$@!;+;-&++-,#!;++!-+#+!@$$#,,+&#=$=!==$+$#=>",
|
||||
"@=,+#!,$=>!=$+)++)+*@=$@=,+$$$+!'**#,,,$+,=@=;==-;!$,-,=@=$+==,+!%,#,-&=$++-)===#+##,+=+=#$@$=>''$$*",
|
||||
"@!==#,+#==@$===+-;%@$=#+*>=!$$$==,*>@-+;+#$,%,@@%#!,###$$);'#;$=+%;+#;++%-,=,==!)+#===========@>>>*>",
|
||||
"@=;!,+#!==$$>@$!=>=$@$=+@='$!+@*+!!=*@$+,'@+%+,,@=+@,!=,,+!$==$++!&;+#!,%),=>!+;,=+$@=+!$==+#$!@>>>*",
|
||||
"$$!+,!,#$$@!>$,#+$@@$@'@##==@$=+'$!+!$>@@*+!*+,!=!=;&+,.-!=!=!=;+!!,!=!;)-==,++;+@>@+,#=$+!'$=#='>=*",
|
||||
"!#!+$+$===$@#+=$!=@$!@=#@+$>!=@$=!@'!=$*@$$!!====$!!,,,+++&#=,+!,'!,!##!$$!-.++=@'=$$!==++==@=@>=!@@",
|
||||
"$+#=!@=,+$#!$$$$=$==$=!,,$@*$,=>-=@#$>>$+'>$@=>'!+#%)#@@+%,+!$,++=#+++,=$+-+++!$!+==$$===#+##$=@$=+$",
|
||||
"$$=#+!+!!+=!$!@@$=++=>!&+@$==!!!+==$*==$*@=@**$+!+),,-=+$!@##-,,!;,=++$@;%&,!!=$#!=!@@$$$,+==+$!==+!",
|
||||
"$$=+=-,$=;#!==$=#=;+=@===$$$=#$+=@@>$+>*@$'*@-+=%,!'$#,,,@$#+&)&-;===$,%;+#!==###$=#==!===>>+====$$,",
|
||||
"!!;!=&=!##@$,+@+=+!$+-=@$,=>'+#!=@@==@>''@>>-+>$$=$$$@++!!#%)+,%++>=$#%%#%=@=+=;,@$+=+=>$=='!+!##+$$",
|
||||
"@#$=,@+,,@#$+#=$$=!$+!+=!$$>==$$;=@!=$@*>@$==='$=$=,%++,@!,)),%,+=@!%++!+#,#+$=$!!='==@$$==+#$++,$$!",
|
||||
"!#$;#$=-$@+;$*$!$@,&=$++!!+@@==#=!@;$>*@++@>=+,>>$$$=&%#+,!=!+,;-+-%)#=@=+%%$$#!@!@$@@@>=,+!!,,#=>@$",
|
||||
"@,,+!+#!+=%,=@$'$$$=+!+==+#-=@,+$+@>!#=@$!@!=$=+#!$$#=$,+%,!@@!!&%-,,++==,,+!!#,#$!@@$=@#==#@=#=$*$$",
|
||||
"@$$&+#+=#+;+#=!'>$$@!#$++!=-!;,$!+>*'=#!@@@-##@$#++#=>==;,++,=>!;-,,;-#++$@!$,,!==@>>@$!=+$#+@='@$!'",
|
||||
"+;@+,,#=;$=!,++>$=>$$=!,+==,-+@=!$@!@>@$-,,==!=$!!,,#=$!$#+%,,,!=+=,!-,+!!$=%,+$!#@@'@$@,+$=+!=$>$!@",
|
||||
"+;,+&;-==$#$=#$@=#@*==!=;+++==!!$@#%>>$=!#,-#+#+,)!+=$=,$#-#+=!,!=!=++;;,=;,=!+=+!,+$+#>=+@@####@=@@",
|
||||
"#!-,)+!#!==+$$@=#==,=@!==!%++==='@==$$=##!+!+%-=$$+&$=!&;###@=#-,@,,!+;!,%+!=!!++,+++=+'>==@#==-=$!$",
|
||||
"%$--!+,@$+#+'>!=!+!!===$=$;++#,$+=@'=-!#!#=!+=,%!,+!#=+-,,=@++==+#,--+++&+!!===+!+#;$=++*$$=!=@@=+=#",
|
||||
"+-;!!+$,!#-@'$++++==!$+!#=!+$@$,#==#+#==@!,%$==!,%+@$-+!)#=,=$!==,;,+-%,!!#@!$!-#-$!=+==#+$=+!='@$#+",
|
||||
"+=,=#!!@$#$>!+$=!=#!@==!,,===$==!=@++,+@@$!==;,=#$#+#+,!,+%+@$>!!,;+;%+#++=+,$+-&=+,@$%!==-#,*@;$$=!",
|
||||
"!'#@#,!@!@==!+$+$!$=#$,+$!==++,=!@+!=!,!$+$+,=$,!#,=+,#$!;,@=+$'$$!+%;,-,##+,+,=!,,+++&==!=!$>@=$!,$",
|
||||
"',&@*=-!=@!=,;=$#=@!++#!$'=!=,,+=$===;=$$=!=+!@=$%)+>@$$+,=#+=#!+$=!,,&,;=++#!+,,++=##!-&+@$@@$$$,@$",
|
||||
",+$'$+,++=@;##-!@==+!!=!#@==,,+==!+!++=='$=>$#;@!;#+#@@@=>'#=,,#!,$=$+,,+$+$,;+--!$!!#=#,-,=$=$$,=@=",
|
||||
"==*=%@+#=!==!==$+$$=,#$=!=,++=!$#-!@=!;$==@@>#+!+);++=>+=@!$$$!,#!&,==!#@-!!-&%-&;===$+,)%,,+'$$@!++",
|
||||
">>,#@$;+$$!=!@>$$=!,+>!!$-+,#!++,+!=+=+=-!>$@@$=;;+,+@!$==,=@=++=,&+-$!#@=,-,--+)#!,$'=%;-%;$@#@$!+!",
|
||||
"=&$$!,+#'+,@@>=@$$,+$+#!!+,++#%%$$,++!=!==,#>$-=*@+;$$=+$#=@!=$,,!#;,,+=#=++,!+&+#+;+$#+=,%!+;,==!=*",
|
||||
"-%$$+,,;$$$=!$#$@+$@=$>,++$!,)-!!!+#;@+#@,!=#@=@>$+>>+&=,=$+$@$%-!+++,&#+-+,=$+-$+;;=%,=@+$++&#+;,*$",
|
||||
"-'$=+,=@!=!@$#$!+!$!$*',,##+#+!!,;+#+=@##=@+@*'=!$'>$#%!$#,>$#=$,&&++%$#%#=+;!$$#%-+%,=!-!=+!=#+,#!$",
|
||||
"!'='=+'!++=@!+=#=$=#$++#,,%=+=#!#&,!#====$$**@++@@@@=)$$=!=$$$=+=#,--!;-!+!#+++;=!+;!++++%)$=#@@+!,,",
|
||||
",+$!+=+,@@@$=;=@$!+==&@+,+-,+;+,#+=$=!@@=='$=@''$+@=+>>#==$==+!#=$+;+),++#+$>+;,+$!=#+==&+-#-$*+>==+",
|
||||
"$%;,@!;=+,+=$$=##+==##='#,&+=&%+##$@@=$==$@=@$@$!$$)+@@'>$++,+#$$#!=+,-+-+==$#=!=++=#+#$==@,,>#@,$@+",
|
||||
"@#!;!='++!+$@#+,+,-#!++!$,+$+),##'>,++$$=$@@'=!,$,@>'@=@>$+=+,!==!!##!=+;-+#=++,%@=-,=;;=@!=>$$@$&,!",
|
||||
")!+=$$,%++@$)%;+==,#+-++-,$#+&++$=+#$-!=@''@=;#,;-$$>*@>==#=#++==$$+#='=+,#$#=&)+,=+!!%+$,='=@>=+,*;",
|
||||
"&-$=@$#,-,#+--$,%-,!,+%;=$--!$=$=#!$##+$@$==!=&&-$*>+=$#++@=,=;,==,#;$=+++=!=+;-,-!=#&!>%+=,@$+;$$-&",
|
||||
"!!@#++$@$,-+-=$+%&!&;,==$+++$=$=+#==+!!@=!;$#+$$>>'=$$,-=+,#$!==+!+++!@!=$+=+,-!,;$=-$=,=+,$>--=@+)%",
|
||||
"$$$#+;=+=$!++,-,;+,%%!@,-,,=!==!+#+==#+=+),==$='>+,#=+!$-%)#==>$$,,!+=''++$+,#,##%%+@$,,,,@@#==@=,%,",
|
||||
"!$#=+,!--$@+-&)-+!%)!=+--!=@=##=!$=@===!&+$#$@@=,@$+#==$);,++#=$=,=#$$==$$$!#;=+#++$',#=!==+=$=+#$#!",
|
||||
",@==,++,+=;-=!+%+%%=+&%++=$!$-++=+@$++!+++$#==++#-$$$@+++;%+=,=!=$$$$=!=$#'==#,,+!$=!=,!==@=@*=$,==$",
|
||||
"!+,--=##!!,)=@#=)%,,-,+==!!,,++=+$+,!;,++=,+#%,!;++=$=+=;=-#,+,,$=$'@#@=+%-@>!#,$$+@#==%,!$@'@=$$=@!",
|
||||
"=,#,-==+&,!==$=+=!!%,&===!;+!#=;#!+,!+=-;+==-)#+,,$+#'$,,+@!=%,,+!'@>@##=$+;%=@$!!$=+=$,===++!+$@*$#",
|
||||
";,!++=+,+,+@#=!#@++,#=!=+,+,+==-+-##+#,-,;-##+#!,++==#=$+=,,++,,+!=@$+$>$+#,==;*@=!#$-,>$'@%&->=>>$$",
|
||||
"+,#$$+)++;!#=!!+,,,$'=&,+++,#=++=$===;=#,+#+!+#!#,+=%,@=!+-&&==!$=,@$'=++=#;+$'==;+=$&!$+#'#$@$#@>=+",
|
||||
"+#!++=+;&;-+'$&;,+,,&$$==+!#,++==#-=!+++,+!!$$==--;,,!!##,,,,==@$,=+$>+#$$+=$#@=-!$=;$#$$,-!'$#=#$$;",
|
||||
"++#,)++=,,)+=,!$=#-.&+#$'@!+++==!+,+&#!,++$=+!@=-=&-,!!=;+=++$$=#@$=@,+=$=$!=#+,$+=;,==!$+==@>@,&,$'",
|
||||
"$-%,=--+!+@+;!#;#;%-&,#=$@@!!=$,=!;)&++=!#$#,&++!!&+!+;,+++!!$$##$$!=$=!+=!=!!;!@=-++@$@$'$#>'++$$$+",
|
||||
"+),=&+$,)=+++-+,);;%-,++$#+=@$#,+$,#=+!+!##+#;,+#%$=!,))-,!=,-$$@=+!+!,'=+==!=$+=++,=+'@'@@===;,!>'@",
|
||||
"$@=%=>@-,);!$$&);#),,#,%&#!==@>++,=>=+++,,!=--=#,@!#-%%%;#+;!%!@=@@+.$;+*@+=,@!;%$=+,=$,@$,=>+#;+=@$",
|
||||
"@,-=$,#++)-#$#-#)#,,%,;),!$!##$@'$!$!,+!!!+-;#+#$$#&%,=,##.+%!+=$$+=@!!+-,=@!$#,,$!=@#@=!,+@@###+-=#",
|
||||
"#=$*$#-+%=;!=-!+#;#++&),==+$+!$++=-,#++!+$+%$%;++;;.%.-+$@&)-!=++@##=*$,!=$;+@='!!-!>#!!!$>%+-&#!=$!"};
|
103
test/tiled_image.cxx
Normal file
103
test/tiled_image.cxx
Normal file
@ -0,0 +1,103 @@
|
||||
//
|
||||
// "$Id: tiled_image.cxx,v 1.1.2.1 2001/11/24 18:07:58 easysw Exp $"
|
||||
//
|
||||
// Fl_Tiled_Image test program for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
// Copyright 1998-2001 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/Fl.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Tiled_Image.H>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "tile.xpm"
|
||||
|
||||
Fl_Button *b;
|
||||
Fl_Window *w;
|
||||
|
||||
void button_cb(Fl_Widget *,void *) {
|
||||
w->hide();
|
||||
}
|
||||
|
||||
#include <FL/x.H>
|
||||
#ifndef WIN32
|
||||
#include "list_visuals.cxx"
|
||||
#endif
|
||||
|
||||
int visid = -1;
|
||||
int arg(int argc, char **argv, int &i) {
|
||||
if (argv[i][1] == 'v') {
|
||||
if (i+1 >= argc) return 0;
|
||||
visid = atoi(argv[i+1]);
|
||||
i += 2;
|
||||
return 2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
#ifndef WIN32
|
||||
int i = 1;
|
||||
|
||||
Fl::args(argc,argv,i,arg);
|
||||
|
||||
if (visid >= 0) {
|
||||
fl_open_display();
|
||||
XVisualInfo templt; int num;
|
||||
templt.visualid = visid;
|
||||
fl_visual = XGetVisualInfo(fl_display, VisualIDMask, &templt, &num);
|
||||
if (!fl_visual) {
|
||||
fprintf(stderr, "No visual with id %d, use one of:\n",visid);
|
||||
list_visuals();
|
||||
exit(1);
|
||||
}
|
||||
fl_colormap = XCreateColormap(fl_display, RootWindow(fl_display,fl_screen),
|
||||
fl_visual->visual, AllocNone);
|
||||
fl_xpixel(FL_BLACK); // make sure black is allocated in overlay visuals
|
||||
} else {
|
||||
Fl::visual(FL_RGB);
|
||||
}
|
||||
#endif
|
||||
|
||||
Fl_Window window(400,400); ::w = &window;
|
||||
Fl_Group group(0,0,400,400);
|
||||
group.image(new Fl_Tiled_Image(new Fl_Pixmap(tile_xpm)));
|
||||
group.align(FL_ALIGN_INSIDE);
|
||||
|
||||
Fl_Button b(340,365,50,25,"Close"); ::b = &b;
|
||||
b.callback(button_cb);
|
||||
|
||||
group.end();
|
||||
|
||||
window.resizable(group);
|
||||
window.end();
|
||||
window.show(argc, argv);
|
||||
|
||||
return Fl::run();
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: tiled_image.cxx,v 1.1.2.1 2001/11/24 18:07:58 easysw Exp $".
|
||||
//
|
Loading…
x
Reference in New Issue
Block a user