summaryrefslogtreecommitdiffstats
path: root/tk8.6/doc/CrtImgType.3
diff options
context:
space:
mode:
Diffstat (limited to 'tk8.6/doc/CrtImgType.3')
-rw-r--r--tk8.6/doc/CrtImgType.3283
1 files changed, 0 insertions, 283 deletions
diff --git a/tk8.6/doc/CrtImgType.3 b/tk8.6/doc/CrtImgType.3
deleted file mode 100644
index cbbc11e..0000000
--- a/tk8.6/doc/CrtImgType.3
+++ /dev/null
@@ -1,283 +0,0 @@
-'\"
-'\" Copyright (c) 1994 The Regents of the University of California.
-'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.
-'\"
-'\" See the file "license.terms" for information on usage and redistribution
-'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-'\"
-.TH Tk_CreateImageType 3 8.5 Tk "Tk Library Procedures"
-.so man.macros
-.BS
-.SH NAME
-Tk_CreateImageType, Tk_GetImageMasterData, Tk_InitImageArgs \- define new kind of image
-.SH SYNOPSIS
-.nf
-\fB#include <tk.h>\fR
-.sp
-\fBTk_CreateImageType\fR(\fItypePtr\fR)
-.sp
-ClientData
-\fBTk_GetImageMasterData\fR(\fIinterp, name, typePtrPtr\fR)
-.sp
-\fBTk_InitImageArgs\fR(\fIinterp, argc, argvPtr\fR)
-.SH ARGUMENTS
-.AS "const Tk_ImageType" *typePtrPtr
-.AP "const Tk_ImageType" *typePtr in
-Structure that defines the new type of image.
-For Tk 8.4 and earlier this must be static: a
-pointer to this structure is retained by the image code.
-In Tk 8.5, this limitation was relaxed.
-.AP Tcl_Interp *interp in
-Interpreter in which image was created.
-.AP "const char" *name in
-Name of existing image.
-.AP Tk_ImageType **typePtrPtr out
-Points to word in which to store a pointer to type information for
-the given image, if it exists.
-.AP int argc in
-Number of arguments
-.AP char ***argvPtr in/out
-Pointer to argument list
-.BE
-.SH DESCRIPTION
-.PP
-\fBTk_CreateImageType\fR is invoked to define a new kind of image.
-An image type corresponds to a particular value of the \fItype\fR
-argument for the \fBimage create\fR command. There may exist
-any number of different image types, and new types may be defined
-dynamically by calling \fBTk_CreateImageType\fR.
-For example, there might be one type for 2-color bitmaps,
-another for multi-color images, another for dithered images,
-another for video, and so on.
-.PP
-The code that implements a new image type is called an
-\fIimage manager\fR.
-It consists of a collection of procedures plus three different
-kinds of data structures.
-The first data structure is a Tk_ImageType structure, which contains
-the name of the image type and pointers to five procedures provided
-by the image manager to deal with images of this type:
-.CS
-typedef struct Tk_ImageType {
- const char *\fIname\fR;
- Tk_ImageCreateProc *\fIcreateProc\fR;
- Tk_ImageGetProc *\fIgetProc\fR;
- Tk_ImageDisplayProc *\fIdisplayProc\fR;
- Tk_ImageFreeProc *\fIfreeProc\fR;
- Tk_ImageDeleteProc *\fIdeleteProc\fR;
-} \fBTk_ImageType\fR;
-.CE
-The fields of this structure will be described in later subsections
-of this entry.
-.PP
-The second major data structure manipulated by an image manager
-is called an \fIimage master\fR; it contains overall information
-about a particular image, such as the values of the configuration
-options specified in an \fBimage create\fR command.
-There will usually be one of these structures for each
-invocation of the \fBimage create\fR command.
-.PP
-The third data structure related to images is an \fIimage instance\fR.
-There will usually be one of these structures for each usage of an
-image in a particular widget.
-It is possible for a single image to appear simultaneously
-in multiple widgets, or even multiple times in the same widget.
-Furthermore, different instances may be on different screens
-or displays.
-The image instance data structure describes things that may
-vary from instance to instance, such as colors and graphics
-contexts for redisplay.
-There is usually one instance structure for each \fB\-image\fR
-option specified for a widget or canvas item.
-.PP
-The following subsections describe the fields of a Tk_ImageType
-in more detail.
-.SS NAME
-.PP
-\fItypePtr->name\fR provides a name for the image type.
-Once \fBTk_CreateImageType\fR returns, this name may be used
-in \fBimage create\fR commands to create images of the new
-type.
-If there already existed an image type by this name then
-the new image type replaces the old one.
-.SS CREATEPROC
-.PP
-\fItypePtr->createProc\fR provides the address of a procedure for
-Tk to call whenever \fBimage create\fR is invoked to create
-an image of the new type.
-\fItypePtr->createProc\fR must match the following prototype:
-.CS
-typedef int \fBTk_ImageCreateProc\fR(
- Tcl_Interp *\fIinterp\fR,
- const char *\fIname\fR,
- int \fIobjc\fR,
- Tcl_Obj *const \fIobjv\fR[],
- const Tk_ImageType *\fItypePtr\fR,
- Tk_ImageMaster \fImaster\fR,
- ClientData *\fImasterDataPtr\fR);
-.CE
-The \fIinterp\fR argument is the interpreter in which the \fBimage\fR
-command was invoked, and \fIname\fR is the name for the new image,
-which was either specified explicitly in the \fBimage\fR command
-or generated automatically by the \fBimage\fR command.
-The \fIobjc\fR and \fIobjv\fR arguments describe all the configuration
-options for the new image (everything after the name argument to
-\fBimage\fR).
-The \fImaster\fR argument is a token that refers to Tk's information
-about this image; the image manager must return this token to
-Tk when invoking the \fBTk_ImageChanged\fR procedure.
-Typically \fIcreateProc\fR will parse \fIobjc\fR and \fIobjv\fR
-and create an image master data structure for the new image.
-\fIcreateProc\fR may store an arbitrary one-word value at
-*\fImasterDataPtr\fR, which will be passed back to the
-image manager when other callbacks are invoked.
-Typically the value is a pointer to the master data
-structure for the image.
-.PP
-If \fIcreateProc\fR encounters an error, it should leave an error
-message in the interpreter result and return \fBTCL_ERROR\fR; otherwise
-it should return \fBTCL_OK\fR.
-.PP
-\fIcreateProc\fR should call \fBTk_ImageChanged\fR in order to set the
-size of the image and request an initial redisplay.
-.SS GETPROC
-.PP
-\fItypePtr->getProc\fR is invoked by Tk whenever a widget
-calls \fBTk_GetImage\fR to use a particular image.
-This procedure must match the following prototype:
-.CS
-typedef ClientData \fBTk_ImageGetProc\fR(
- Tk_Window \fItkwin\fR,
- ClientData \fImasterData\fR);
-.CE
-The \fItkwin\fR argument identifies the window in which the
-image will be used and \fImasterData\fR is the value
-returned by \fIcreateProc\fR when the image master was created.
-\fIgetProc\fR will usually create a data structure for the new
-instance, including such things as the resources needed to
-display the image in the given window.
-\fIgetProc\fR returns a one-word token for the instance, which
-is typically the address of the instance data structure.
-Tk will pass this value back to the image manager when invoking
-its \fIdisplayProc\fR and \fIfreeProc\fR procedures.
-.SS DISPLAYPROC
-.PP
-\fItypePtr->displayProc\fR is invoked by Tk whenever an image needs
-to be displayed (i.e., whenever a widget calls \fBTk_RedrawImage\fR).
-\fIdisplayProc\fR must match the following prototype:
-.CS
-typedef void \fBTk_ImageDisplayProc\fR(
- ClientData \fIinstanceData\fR,
- Display *\fIdisplay\fR,
- Drawable \fIdrawable\fR,
- int \fIimageX\fR,
- int \fIimageY\fR,
- int \fIwidth\fR,
- int \fIheight\fR,
- int \fIdrawableX\fR,
- int \fIdrawableY\fR);
-.CE
-The \fIinstanceData\fR will be the same as the value returned by
-\fIgetProc\fR when the instance was created.
-\fIdisplay\fR and \fIdrawable\fR indicate where to display the
-image; \fIdrawable\fR may be a pixmap rather than
-the window specified to \fIgetProc\fR (this is usually the case,
-since most widgets double-buffer their redisplay to get smoother
-visual effects).
-\fIimageX\fR, \fIimageY\fR, \fIwidth\fR, and \fIheight\fR
-identify the region of the image that must be redisplayed.
-This region will always be within the size of the image
-as specified in the most recent call to \fBTk_ImageChanged\fR.
-\fIdrawableX\fR and \fIdrawableY\fR indicate where in \fIdrawable\fR
-the image should be displayed; \fIdisplayProc\fR should display
-the given region of the image so that point (\fIimageX\fR, \fIimageY\fR)
-in the image appears at (\fIdrawableX\fR, \fIdrawableY\fR) in \fIdrawable\fR.
-.SS FREEPROC
-.PP
-\fItypePtr->freeProc\fR contains the address of a procedure that
-Tk will invoke when an image instance is released (i.e., when
-\fBTk_FreeImage\fR is invoked).
-This can happen, for example, when a widget is deleted or a image item
-in a canvas is deleted, or when the image displayed in a widget or
-canvas item is changed.
-\fIfreeProc\fR must match the following prototype:
-.CS
-typedef void \fBTk_ImageFreeProc\fR(
- ClientData \fIinstanceData\fR,
- Display *\fIdisplay\fR);
-.CE
-The \fIinstanceData\fR will be the same as the value returned by
-\fIgetProc\fR when the instance was created, and \fIdisplay\fR
-is the display containing the window for the instance.
-\fIfreeProc\fR should release any resources associated with the
-image instance, since the instance will never be used again.
-.SS DELETEPROC
-.PP
-\fItypePtr->deleteProc\fR is a procedure that Tk invokes when an
-image is being deleted (i.e. when the \fBimage delete\fR command
-is invoked).
-Before invoking \fIdeleteProc\fR Tk will invoke \fIfreeProc\fR for
-each of the image's instances.
-\fIdeleteProc\fR must match the following prototype:
-.CS
-typedef void \fBTk_ImageDeleteProc\fR(
- ClientData \fImasterData\fR);
-.CE
-The \fImasterData\fR argument will be the same as the value
-stored in \fI*masterDataPtr\fR by \fIcreateProc\fR when the
-image was created.
-\fIdeleteProc\fR should release any resources associated with
-the image.
-.SH TK_GETIMAGEMASTERDATA
-.PP
-The procedure \fBTk_GetImageMasterData\fR may be invoked to retrieve
-information about an image. For example, an image manager can use this
-procedure to locate its image master data for an image.
-If there exists an image named \fIname\fR
-in the interpreter given by \fIinterp\fR, then \fI*typePtrPtr\fR is
-filled in with type information for the image (the \fItypePtr\fR value
-passed to \fBTk_CreateImageType\fR when the image type was registered)
-and the return value is the ClientData value returned by the
-\fIcreateProc\fR when the image was created (this is typically a
-pointer to the image master data structure). If no such image exists
-then NULL is returned and NULL is stored at \fI*typePtrPtr\fR.
-.SH "LEGACY INTERFACE SUPPORT"
-.PP
-In Tk 8.2 and earlier, the definition of \fBTk_ImageCreateProc\fR
-was incompatibly different, with the following prototype:
-.CS
-typedef int \fBTk_ImageCreateProc\fR(
- Tcl_Interp *\fIinterp\fR,
- char *\fIname\fR,
- int \fIargc\fR,
- char **\fIargv\fR,
- Tk_ImageType *\fItypePtr\fR,
- Tk_ImageMaster \fImaster\fR,
- ClientData *\fImasterDataPtr\fR);
-.CE
-Legacy programs and libraries dating from those days may still
-contain code that defines extended Tk image types using the old
-interface. The Tk header file will still support this legacy
-interface if the code is compiled with the macro \fBUSE_OLD_IMAGE\fR
-defined.
-.PP
-When the \fBUSE_OLD_IMAGE\fR legacy support is enabled, you may
-see the routine \fBTk_InitImageArgs\fR in use. This was a migration
-tool used to create stub-enabled extensions that could be loaded
-into interps containing all versions of Tk 8.1 and later. Tk 8.5 no longer
-provides this routine, but uses a macro to convert any attempted
-calls of this routine into an empty comment. Any stub-enabled
-extension providing an extended image type via the legacy interface
-that is compiled against Tk 8.5 headers and linked against the
-Tk 8.5 stub library will produce a file that can be loaded only
-into interps with Tk 8.5 or later; that is, the normal stub-compatibility
-rules. If a developer needs to generate from such code a file
-that is loadable into interps with Tk 8.4 or earlier, they must
-use Tk 8.4 headers and stub libraries to do so.
-.PP
-Any new code written today should not make use of the legacy
-interfaces. Expect their support to go away in Tk 9.
-.SH "SEE ALSO"
-Tk_ImageChanged, Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, Tk_SizeOfImage
-.SH KEYWORDS
-image manager, image type, instance, master