diff options
Diffstat (limited to 'Master/tlpkg/tlperl0/lib/Tk/pTk/tixImgXpm.h')
-rwxr-xr-x | Master/tlpkg/tlperl0/lib/Tk/pTk/tixImgXpm.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl0/lib/Tk/pTk/tixImgXpm.h b/Master/tlpkg/tlperl0/lib/Tk/pTk/tixImgXpm.h new file mode 100755 index 00000000000..deb68ea76e1 --- /dev/null +++ b/Master/tlpkg/tlperl0/lib/Tk/pTk/tixImgXpm.h @@ -0,0 +1,134 @@ + +/* $Id: tixImgXpm.h,v 1.1.1.1 2000/05/17 11:08:42 idiscovery Exp $ */ + +/* + * tixImgXpm.h -- + * + * Generic header file for the pixmap image type. This is NOT a public + * header file! + * + * Copyright (c) 1996, Expert Interface Technologies + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + */ + +#ifndef _TIX_IMG_XPM_H_ +#define _TIX_IMG_XPM_H_ +#define _TIXIMGXPM +/* + * Constants + */ + +#define XPM_MONO 1 +#define XPM_GRAY_4 2 +#define XPM_GRAY 3 +#define XPM_COLOR 4 +#define XPM_SYMBOLIC 5 +#define XPM_UNKNOWN 6 + +/* + * The following data structure represents the master for a pixmap + * image: + */ + +typedef struct PixmapMaster { + Tk_ImageMaster tkMaster; /* Tk's token for image master. NULL means + * the image is being deleted. */ + Tcl_Interp *interp; /* Interpreter for application that is + * using image. */ + Tcl_Command imageCmd; /* Token for image command (used to delete + * it when the image goes away). NULL means + * the image command has already been + * deleted. */ + char *fileString; /* Value of -file option (malloc'ed). + * valid only if the -file option is specified + */ + char *dataString; /* Value of -data option (malloc'ed). + * valid only if the -data option is specified + */ + Tk_Uid id; /* ID's for XPM data already compiled + * into the tixwish binary */ + int size[2]; /* width and height */ + int ncolors; /* number of colors */ + int cpp; /* characters per pixel */ + char ** data; /* The data that defines this pixmap + * image (array of strings). It is + * converted into an X Pixmap when this + * image is instanciated + */ + int isDataAlloced; /* False iff the data is got from + * the -id switch */ + /* First in list of all instances associated + * with this master. */ + struct PixmapInstance *instancePtr; +} PixmapMaster; + +typedef struct ColorStruct { + char c; /* This is used if CPP is one */ + char * cstring; /* This is used if CPP is bigger than one */ + XColor * colorPtr; +} ColorStruct; + +/*---------------------------------------------------------------------- + * PixmapInstance -- + * + * Represents all of the instances of an image that lie within a + * particular window: + * + * %% ToDo + * Currently one instance is created for each window that uses + * this pixmap. This is usually OK because pixmaps are usually + * not shared or only shared by a small number of windows. To + * improve resource allocation, we can create an instance for + * each (Display x Visual x Depth) combo. This will usually + * reduce the number of instances to one. + *---------------------------------------------------------------------- + */ +typedef struct PixmapInstance { + int refCount; /* Number of instances that share this + * data structure. */ + PixmapMaster *masterPtr; /* Pointer to master for image. */ + Tk_Window tkwin; /* Window in which the instances will be + * displayed. */ + Pixmap pixmap; /* The pixmap to display. */ + struct PixmapInstance *nextPtr; + /* Next in list of all instance structures + * associated with masterPtr (NULL means + * end of list). + */ + ColorStruct * colors; + ClientData clientData; /* Place holder for platform specific + * instance data */ +} PixmapInstance; + + +EXTERN void TixpInitPixmapInstance _ANSI_ARGS_(( + PixmapMaster *masterPtr, + PixmapInstance *instancePtr)); +EXTERN void TixpXpmAllocTmpBuffer _ANSI_ARGS_(( + PixmapMaster * masterPtr, + PixmapInstance * instancePtr, + XImage ** imagePtr, XImage ** maskPtr)); +EXTERN void TixpXpmFreeTmpBuffer _ANSI_ARGS_(( + PixmapMaster * masterPtr, + PixmapInstance * instancePtr, + XImage * image, XImage * mask)); +EXTERN void TixpXpmSetPixel _ANSI_ARGS_(( + PixmapInstance * instancePtr, XImage * image, + XImage * mask, int x, int y, XColor * colorPtr, + int * isTranspPtr)); +EXTERN void TixpXpmRealizePixmap _ANSI_ARGS_(( + PixmapMaster * masterPtr, + PixmapInstance * instancePtr, + XImage * image, XImage * mask, int isTransp)); +EXTERN void TixpXpmFreeInstanceData _ANSI_ARGS_(( + PixmapInstance *instancePtr, int delete, + Display *display)); +EXTERN void TixpXpmDisplay _ANSI_ARGS_((ClientData clientData, + Display *display, Drawable drawable, + int imageX, int imageY, int width, int height, + int drawableX, int drawableY)); + +#endif |