]>
git.saurik.com Git - wxWidgets.git/blob - src/xpm/simx.h
2 * Copyright (C) 1989-95 GROUPE BULL
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:
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
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.
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.
26 /*****************************************************************************\
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. *
33 * Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) *
34 \*****************************************************************************/
43 #include "windows.h" /* MS windows GDI types */
49 typedef unsigned long COLORREF
;
51 // RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def
52 // #define OS2RGB(r,g,b) ((ULONG ((BYTE) (r) | ((UINT) (g) << 8)) | (((ULONG)(BYTE)(b)) << 16)))
55 # define OS2RGB(r,g,b) ((unsigned long)r<<16|(unsigned long)g<<8|(unsigned long)b)
59 # define GetBValue(rgb) ((BYTE)((rgb) >> 16))
62 # define GetGValue(rgb) ((BYTE)(((UINT)(rgb)) >> 8))
65 # define GetRValue(rgb) ((BYTE)(rgb))
68 #endif /* else __OS2__ */
72 * minimal portability layer between ansi and KR C
74 /* this comes from xpm.h, and is here again, to avoid complicated
75 includes, since this is included from xpm.h */
76 /* these defines get undefed at the end of this file */
77 #if __STDC__ || defined(__cplusplus) || defined(c_plusplus)
79 # define FUNC(f, t, p) extern t f p
80 # define LFUNC(f, t, p) static t f p
82 # define FUNC(f, t, p) extern t f()
83 # define LFUNC(f, t, p) static t f()
87 FUNC(boundCheckingMalloc
, void *, (long s
));
88 FUNC(boundCheckingCalloc
, void *, (long num
, long s
));
89 FUNC(boundCheckingRealloc
, void *, (void *p
, long s
));
91 /* define MSW types for X window types,
92 I don't know much about MSW, but the following defines do the job */
95 typedef HDC Display
; /* this should be similar */
100 typedef void *Screen
; /* not used */
101 typedef void *Visual
; /* not used yet, is for GRAY, COLOR,
104 typedef void *Colormap
; /* should be COLORPALETTE, not done
107 typedef COLORREF Pixel
;
109 #define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */
113 BYTE red
, green
, blue
;
123 #if defined(__cplusplus) || defined(c_plusplus)
126 /* some replacements for X... functions */
129 FUNC(XDefaultVisual
, Visual
*, (Display
*display
, Screen
*screen
));
130 FUNC(XDefaultScreen
, Screen
*, (Display
*d
));
131 FUNC(XDefaultColormap
, Colormap
*, (Display
*display
, Screen
*screen
));
132 FUNC(XDefaultDepth
, int, (Display
*d
, Screen
*s
));
135 FUNC(XParseColor
, int, (Display
*, Colormap
*, char *, XColor
*));
136 FUNC(XAllocColor
, int, (Display
*, Colormap
*, XColor
*));
137 FUNC(XQueryColors
, void, (Display
*display
, Colormap
*colormap
,
138 XColor
*xcolors
, int ncolors
));
139 FUNC(XFreeColors
, int, (Display
*d
, Colormap cmap
,
140 unsigned long pixels
[],
141 int npixels
, unsigned long planes
));
143 FUNC(XCreateImage
, XImage
*, (Display
*, Visual
*, int depth
, int format
,
144 int x
, int y
, int width
, int height
,
147 /* free and destroy bitmap */
148 FUNC(XDestroyImage
, void /* ? */ , (XImage
*));
149 /* free only, bitmap remains */
150 FUNC(XImageFree
, void, (XImage
*));
151 #if defined(__cplusplus) || defined(c_plusplus)
152 } /* end of extern "C" */
153 #endif /* cplusplus */
155 #define ZPixmap 1 /* not really used */
156 #define XYBitmap 1 /* not really used */
163 typedef BOOL Bool
; /* take MSW bool */
165 /* make these local here, simx.c gets the same from xpm.h */
169 #endif /* def FOR_MSW */