home *** CD-ROM | disk | FTP | other *** search
-
- /* $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
-