Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / lib / site_perl / 5.8.0 / sun4-solaris / Tk / pTk / tixImgXpm.h
CommitLineData
86530b38
AT
1/*
2 * tixImgXpm.h --
3 *
4 * Generic header file for the pixmap image type. This is NOT a public
5 * header file!
6 *
7 * Copyright (c) 1996, Expert Interface Technologies
8 *
9 * See the file "license.terms" for information on usage and redistribution
10 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
11 *
12 */
13
14#ifndef _TIX_IMG_XPM_H_
15#define _TIX_IMG_XPM_H_
16#define _TIXIMGXPM
17/*
18 * Constants
19 */
20
21#define XPM_MONO 1
22#define XPM_GRAY_4 2
23#define XPM_GRAY 3
24#define XPM_COLOR 4
25#define XPM_SYMBOLIC 5
26#define XPM_UNKNOWN 6
27
28/*
29 * The following data structure represents the master for a pixmap
30 * image:
31 */
32
33typedef struct PixmapMaster {
34 Tk_ImageMaster tkMaster; /* Tk's token for image master. NULL means
35 * the image is being deleted. */
36 Tcl_Interp *interp; /* Interpreter for application that is
37 * using image. */
38 Tcl_Command imageCmd; /* Token for image command (used to delete
39 * it when the image goes away). NULL means
40 * the image command has already been
41 * deleted. */
42 char *fileString; /* Value of -file option (malloc'ed).
43 * valid only if the -file option is specified
44 */
45 char *dataString; /* Value of -data option (malloc'ed).
46 * valid only if the -data option is specified
47 */
48 Tk_Uid id; /* ID's for XPM data already compiled
49 * into the tixwish binary */
50 int size[2]; /* width and height */
51 int ncolors; /* number of colors */
52 int cpp; /* characters per pixel */
53 char ** data; /* The data that defines this pixmap
54 * image (array of strings). It is
55 * converted into an X Pixmap when this
56 * image is instanciated
57 */
58 int isDataAlloced; /* False iff the data is got from
59 * the -id switch */
60 /* First in list of all instances associated
61 * with this master. */
62 struct PixmapInstance *instancePtr;
63} PixmapMaster;
64
65typedef struct ColorStruct {
66 char c; /* This is used if CPP is one */
67 char * cstring; /* This is used if CPP is bigger than one */
68 XColor * colorPtr;
69} ColorStruct;
70
71/*----------------------------------------------------------------------
72 * PixmapInstance --
73 *
74 * Represents all of the instances of an image that lie within a
75 * particular window:
76 *
77 * %% ToDo
78 * Currently one instance is created for each window that uses
79 * this pixmap. This is usually OK because pixmaps are usually
80 * not shared or only shared by a small number of windows. To
81 * improve resource allocation, we can create an instance for
82 * each (Display x Visual x Depth) combo. This will usually
83 * reduce the number of instances to one.
84 *----------------------------------------------------------------------
85 */
86typedef struct PixmapInstance {
87 int refCount; /* Number of instances that share this
88 * data structure. */
89 PixmapMaster *masterPtr; /* Pointer to master for image. */
90 Tk_Window tkwin; /* Window in which the instances will be
91 * displayed. */
92 Pixmap pixmap; /* The pixmap to display. */
93 struct PixmapInstance *nextPtr;
94 /* Next in list of all instance structures
95 * associated with masterPtr (NULL means
96 * end of list).
97 */
98 ColorStruct * colors;
99 ClientData clientData; /* Place holder for platform specific
100 * instance data */
101} PixmapInstance;
102
103
104EXTERN void TixpInitPixmapInstance _ANSI_ARGS_((
105 PixmapMaster *masterPtr,
106 PixmapInstance *instancePtr));
107EXTERN void TixpXpmAllocTmpBuffer _ANSI_ARGS_((
108 PixmapMaster * masterPtr,
109 PixmapInstance * instancePtr,
110 XImage ** imagePtr, XImage ** maskPtr));
111EXTERN void TixpXpmFreeTmpBuffer _ANSI_ARGS_((
112 PixmapMaster * masterPtr,
113 PixmapInstance * instancePtr,
114 XImage * image, XImage * mask));
115EXTERN void TixpXpmSetPixel _ANSI_ARGS_((
116 PixmapInstance * instancePtr, XImage * image,
117 XImage * mask, int x, int y, XColor * colorPtr,
118 int * isTranspPtr));
119EXTERN void TixpXpmRealizePixmap _ANSI_ARGS_((
120 PixmapMaster * masterPtr,
121 PixmapInstance * instancePtr,
122 XImage * image, XImage * mask, int isTransp));
123EXTERN void TixpXpmFreeInstanceData _ANSI_ARGS_((
124 PixmapInstance *instancePtr, int delete,
125 Display *display));
126EXTERN void TixpXpmDisplay _ANSI_ARGS_((ClientData clientData,
127 Display *display, Drawable drawable,
128 int imageX, int imageY, int width, int height,
129 int drawableX, int drawableY));
130
131#endif