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 ([email protected]) * 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 */ 140