3764
|
1 /*
|
|
2 * Copyright (C) 1989-95 GROUPE BULL
|
|
3 *
|
|
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5 * of this software and associated documentation files (the "Software"), to
|
|
6 * deal in the Software without restriction, including without limitation the
|
|
7 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
8 * sell copies of the Software, and to permit persons to whom the Software is
|
|
9 * furnished to do so, subject to the following conditions:
|
|
10 *
|
|
11 * The above copyright notice and this permission notice shall be included in
|
|
12 * all copies or substantial portions of the Software.
|
|
13 *
|
|
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
17 * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
18 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
19 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
20 *
|
|
21 * Except as contained in this notice, the name of GROUPE BULL shall not be
|
|
22 * used in advertising or otherwise to promote the sale, use or other dealings
|
|
23 * in this Software without prior written authorization from GROUPE BULL.
|
|
24 */
|
|
25
|
|
26 /*****************************************************************************\
|
|
27 * simx.h: 0.1a *
|
|
28 * *
|
|
29 * This emulates some Xlib functionality for MSW. It's not a general solution, *
|
|
30 * it is close related to XPM-lib. It is only intended to satisfy what is need *
|
|
31 * there. Thus allowing to read XPM files under MS windows. *
|
|
32 * *
|
|
33 * Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) *
|
|
34 \*****************************************************************************/
|
|
35
|
|
36
|
|
37 #ifndef _SIMX_H
|
|
38 #define _SIMX_H
|
|
39
|
|
40 #ifdef FOR_MSW
|
|
41
|
|
42 #include "windows.h" /* MS windows GDI types */
|
|
43
|
|
44 /*
|
|
45 * minimal portability layer between ansi and KR C
|
|
46 */
|
|
47 /* this comes from xpm.h, and is here again, to avoid complicated
|
|
48 includes, since this is included from xpm.h */
|
|
49 /* these defines get undefed at the end of this file */
|
|
50 #if __STDC__ || defined(__cplusplus) || defined(c_plusplus)
|
|
51 /* ANSI || C++ */
|
|
52 #define FUNC(f, t, p) extern t f p
|
|
53 #define LFUNC(f, t, p) static t f p
|
|
54 #else /* k&R */
|
|
55 #define FUNC(f, t, p) extern t f()
|
|
56 #define LFUNC(f, t, p) static t f()
|
|
57 #endif
|
|
58
|
|
59
|
|
60 FUNC(boundCheckingMalloc, void *, (long s));
|
|
61 FUNC(boundCheckingCalloc, void *, (long num, long s));
|
|
62 FUNC(boundCheckingRealloc, void *, (void *p, long s));
|
|
63
|
|
64 /* define MSW types for X window types,
|
|
65 I don't know much about MSW, but the following defines do the job */
|
|
66
|
|
67 typedef HDC Display; /* this should be similar */
|
|
68 typedef void *Screen; /* not used */
|
|
69 typedef void *Visual; /* not used yet, is for GRAY, COLOR,
|
|
70 * MONO */
|
|
71
|
|
72 typedef void *Colormap; /* should be COLORPALETTE, not done
|
|
73 * yet */
|
|
74
|
|
75 typedef COLORREF Pixel;
|
|
76
|
|
77 #define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */
|
|
78
|
|
79 typedef struct {
|
|
80 Pixel pixel;
|
|
81 BYTE red, green, blue;
|
|
82 } XColor;
|
|
83
|
|
84 typedef struct {
|
|
85 HBITMAP bitmap;
|
|
86 unsigned int width;
|
|
87 unsigned int height;
|
|
88 unsigned int depth;
|
|
89 } XImage;
|
|
90
|
|
91 #if defined(__cplusplus) || defined(c_plusplus)
|
|
92 extern "C" {
|
|
93 #endif
|
|
94 /* some replacements for X... functions */
|
|
95
|
|
96 /* XDefaultXXX */
|
|
97 FUNC(XDefaultVisual, Visual *, (Display *display, Screen *screen));
|
|
98 FUNC(XDefaultScreen, Screen *, (Display *d));
|
|
99 FUNC(XDefaultColormap, Colormap *, (Display *display, Screen *screen));
|
|
100 FUNC(XDefaultDepth, int, (Display *d, Screen *s));
|
|
101
|
|
102 /* color related */
|
|
103 FUNC(XParseColor, int, (Display *, Colormap *, char *, XColor *));
|
|
104 FUNC(XAllocColor, int, (Display *, Colormap *, XColor *));
|
|
105 FUNC(XQueryColors, void, (Display *display, Colormap *colormap,
|
|
106 XColor *xcolors, int ncolors));
|
|
107 FUNC(XFreeColors, int, (Display *d, Colormap cmap,
|
|
108 unsigned long pixels[],
|
|
109 int npixels, unsigned long planes));
|
|
110 /* XImage */
|
|
111 FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format,
|
|
112 int x, int y, int width, int height,
|
|
113 int pad, int foo));
|
|
114
|
|
115 /* free and destroy bitmap */
|
|
116 FUNC(XDestroyImage, void /* ? */ , (XImage *));
|
|
117 /* free only, bitmap remains */
|
|
118 FUNC(XImageFree, void, (XImage *));
|
|
119 #if defined(__cplusplus) || defined(c_plusplus)
|
|
120 } /* end of extern "C" */
|
|
121 #endif /* cplusplus */
|
|
122
|
|
123 #define ZPixmap 1 /* not really used */
|
|
124 #define XYBitmap 1 /* not really used */
|
|
125
|
|
126 #ifndef True
|
|
127 #define True 1
|
|
128 #define False 0
|
|
129 #endif
|
|
130 #ifndef Bool
|
|
131 typedef BOOL Bool; /* take MSW bool */
|
|
132 #endif
|
|
133 /* make these local here, simx.c gets the same from xpm.h */
|
|
134 #undef LFUNC
|
|
135 #undef FUNC
|
|
136
|
|
137 #endif /* def FOR_MSW */
|
|
138
|
|
139 #endif /* _SIMX_H */
|