Provided by: tk8.6-doc_8.6.14-1build1_all bug

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