Tk_GetImage(3) Tk Library Procedures Tk_GetImage(3)
____________________________________________________________________________
NAME
Tk_GetImage, Tk_RedrawImage, Tk_SizeOfImage, Tk_FreeImage - use an
image in a widget
SYNOPSIS
#include <tk.h> Tk_Image
Tk_GetImage(
interp, tkwin, name, changeProc, clientData)
Tk_RedrawImage(
image, imageX, imageY, width, height, drawable, drawableX, drawableY)
Tk_SizeOfImage(
image, widthPtr, heightPtr)
Tk_FreeImage(
image)
ARGUMENTS
Tcl_Interp
*interp (in) Place to leave error
message.
Tk_Window
tkwin (in) Window in which image
will be used.
const char
*name (in) Name of image.
Tk_ImageChangedProc
*changeProc (in) Procedure for Tk to
invoke whenever image
content or size
changes.
ClientData
clientData (in) One-word value for Tk
to pass to
changeProc.
Tk_Image
image (in) Token for image
instance; must have
been returned by a
previous call to
Tk_GetImage.
int
imageX (in) X-coordinate of upper-
left corner of region
of image to redisplay
(measured in pixels
from the image's upper-
left corner).
int
imageY (in) Y-coordinate of upper-
left corner of region
of image to redisplay
(measured in pixels
from the image's upper-
left corner).
int
width ((in)) Width of region of
image to redisplay.
int
height ((in)) Height of region of
image to redisplay.
Drawable
drawable (in) Where to display image.
Must either be window
specified to
Tk_GetImage or a pixmap
compatible with that
window.
int
drawableX (in) Where to display image
in
drawable: this is
the x-coordinate in
drawable where x-
coordinate
imageX of
the image should be
displayed.
int
drawableY (in) Where to display image
in
drawable: this is
the y-coordinate in
drawable where y-
coordinate
imageY of
the image should be
displayed.
int
widthPtr (out) Store width of
image (in pixels) here.
int
heightPtr (out) Store height of
image (in pixels) here.
____________________________________________________________________________
DESCRIPTION
These procedures are invoked by widgets that wish to display images.
Tk_GetImage is invoked by a widget when it first decides to display
an image.
name gives the name of the desired image and
tkwin identifies the window where the image will be displayed.
Tk_GetImage looks up the image in the table of existing images and returns a
token for a new instance of the image. If the image does not exist
then
Tk_GetImage returns NULL and leaves an error message in
interpreter
interp's result.
When a widget wishes to actually display an image it must call
Tk_RedrawImage, identifying the image (
image), a region within the
image to redisplay (
imageX,
imageY,
width, and
height), and a place
to display the image (
drawable,
drawableX, and
drawableY). Tk will
then invoke the appropriate image manager, which will display the
requested portion of the image before returning.
A widget can find out the dimensions of an image by calling
Tk_SizeOfImage: the width and height will be stored in the locations
given by
widthPtr and
heightPtr, respectively.
When a widget is finished with an image (e.g., the widget is being
deleted or it is going to use a different image instead of the
current one), it must call
Tk_FreeImage to release the image
instance. The widget should never again use the image token after
passing it to
Tk_FreeImage. There must be exactly one call to
Tk_FreeImage for each call to
Tk_GetImage.
If the contents or size of an image changes, then any widgets using
the image will need to find out about the changes so that they can
redisplay themselves. The
changeProc and
clientData arguments to
Tk_GetImage are used for this purpose.
changeProc will be called by
Tk whenever a change occurs in the image; it must match the
following prototype:
typedef void
Tk_ImageChangedProc(
ClientData
clientData,
int
x,
int
y,
int
width,
int
height,
int
imageWidth,
int
imageHeight);
The
clientData argument to
changeProc is the same as the
clientData argument to
Tk_GetImage. It is usually a pointer to the widget
record for the widget or some other data structure managed by the
widget. The arguments
x,
y,
width, and
height identify a region
within the image that must be redisplayed; they are specified in
pixels measured from the upper-left corner of the image. The
arguments
imageWidth and
imageHeight give the image's (new) size.
SEE ALSO
Tk_CreateImageType
KEYWORDS
images, redisplay
Tk 4.0 Tk_GetImage(3)