summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h')
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h b/Master/tlpkg/tlperl/lib/Tk/pTk/tixImgXpm.h
new file mode 100644
index 00000000000..deb68ea76e1
--- /dev/null
+++ b/Master/tlpkg/tlperl/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