class fltk::Image
This class holds an image, normally used to label a widget. The
subclasses define how the data is interpreted, and usually store
server-side cached versions of the image. All the current types
define pixel arrays, but other types of images, such as vector
graphics, can be defined.
Methods
void* id, mask;
int w,h;
void _draw(int x, int y, fltk::Flags flags)
Subclasses that draw a fixed-size and unchanging image can use these
protected methods that use system-specific code to cache images in a
form that is ready to be drawn on the screen quickly. In the first
call to draw() they can set w and h to the
size of the image, id and mask to the color and
transparency offscreen windows, using system-specific code. Then they
can call _draw() to draw them, and all subsequent calls they
can just call _draw(). To test if this is the first call to
draw() a subclass can check if id is zero.
The two parameters are set to the size the image will occupy when
drawn. For image types that can scale these are also input parameters:
they must be preset to the rectangle the caller intends to pass to
draw(). This is for scaling and tiling image types. To find
the "natural" size of a scaling image, preset w and h to zero before
calling this.
Draw the image with the upper-left corner at x,y. If the image
can scale or tile or otherwise uses a size, the w,h describe
the size of the box it is wanted to fill. The flags can be used
by subclasses to draw differently if fltk::INACTIVE or any other
flags are set.
virtual fltk::Image::~Image();
The destructor throws away temporary data created to draw the image,
but in most cases does not destroy the local data passed to a
constructor.
void draw(int x, int y, fltk::Flags = 0)
Draws the image with the upper-left corner at x,y. This is
the same as doing draw(x, y, this->w, this->h, flags).
The base class destructor will destroy anything created for id or
mask.