]> git.saurik.com Git - wxWidgets.git/blame - src/mac/xpm/simx.h
Applied patch for non-Latin keyboards.
[wxWidgets.git] / src / mac / xpm / simx.h
CommitLineData
0240e8b1
SC
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#if __STDC__ || defined(__cplusplus) || defined(c_plusplus)
41 /* ANSI || C++ */
42#define FUNC(f, t, p) extern t f p
43#define LFUNC(f, t, p) static t f p
44#else /* k&R */
45#define FUNC(f, t, p) extern t f()
46#define LFUNC(f, t, p) static t f()
47#endif
48
49#ifdef FOR_MSW
50
51#include "windows.h" /* MS windows GDI types */
52
53/*
54 * minimal portability layer between ansi and KR C
55 */
56/* this comes from xpm.h, and is here again, to avoid complicated
57 includes, since this is included from xpm.h */
58/* these defines get undefed at the end of this file */
59
60
61FUNC(boundCheckingMalloc, void *, (long s));
62FUNC(boundCheckingCalloc, void *, (long num, long s));
63FUNC(boundCheckingRealloc, void *, (void *p, long s));
64
65/* define MSW types for X window types,
66 I don't know much about MSW, but the following defines do the job */
67
68typedef HDC Display; /* this should be similar */
69typedef void *Screen; /* not used */
70typedef void *Visual; /* not used yet, is for GRAY, COLOR,
71 * MONO */
72
73typedef void *Colormap; /* should be COLORPALETTE, not done
74 * yet */
75
76typedef COLORREF Pixel;
77
78#define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */
79
80typedef struct {
81 Pixel pixel;
82 BYTE red, green, blue;
83} XColor;
84
85typedef struct {
86 HBITMAP bitmap;
87 unsigned int width;
88 unsigned int height;
89 unsigned int depth;
90} XImage;
91
9c1175db
GD
92#elif defined(macintosh) || defined(__APPLE__)
93#if defined(__APPLE__)
94#include <Carbon/Carbon.h>
95#elif !defined(__MWERKS__)
2f1ae414
SC
96#include <wx/wxprec.h>
97#endif
0240e8b1
SC
98/* define Mac types for X window types */
99
100typedef GDevice* Display; /* this should be similar */
101typedef void *Screen; /* not used */
102typedef void *Visual; /* not used yet, is for GRAY, COLOR,
103 * MONO */
104
105typedef void *Colormap; /* should be COLORPALETTE, not done
106 * yet */
107
108typedef RGBColor Pixel;
109
110#define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */
111
112typedef struct {
113 Pixel pixel;
114 unsigned short red, green, blue;
115} XColor;
116
117typedef struct {
118 GWorldPtr gworldptr ;
119 unsigned int width;
120 unsigned int height;
121 unsigned int depth;
122} XImage;
123
124#endif
125
126#if defined(__cplusplus) || defined(c_plusplus)
127extern "C" {
128#endif
129/* some replacements for X... functions */
130
131/* XDefaultXXX */
132 FUNC(XDefaultVisual, Visual *, (Display *display, Screen *screen));
133 FUNC(XDefaultScreen, Screen *, (Display *d));
134 FUNC(XDefaultColormap, Colormap *, (Display *display, Screen *screen));
135 FUNC(XDefaultDepth, int, (Display *d, Screen *s));
136
137/* color related */
138 FUNC(XParseColor, int, (Display *, Colormap *, char *, XColor *));
139 FUNC(XAllocColor, int, (Display *, Colormap *, XColor *));
140 FUNC(XQueryColors, void, (Display *display, Colormap *colormap,
141 XColor *xcolors, int ncolors));
142 FUNC(XFreeColors, int, (Display *d, Colormap cmap,
9c1175db 143 Pixel *pixels,
0240e8b1
SC
144 int npixels, unsigned long planes));
145/* XImage */
146 FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format,
147 int x, int y, int width, int height,
148 int pad, int foo));
149
150/* free and destroy bitmap */
151 FUNC(XDestroyImage, void /* ? */ , (XImage *));
152/* free only, bitmap remains */
153 FUNC(XImageFree, void, (XImage *));
154#if defined(__cplusplus) || defined(c_plusplus)
155} /* end of extern "C" */
156#endif /* cplusplus */
157
158#define ZPixmap 1 /* not really used */
159#define XYBitmap 1 /* not really used */
160
161#ifndef True
162#define True 1
163#define False 0
164#endif
165#ifndef Bool
166#ifdef FOR_MSW
167typedef BOOL Bool; /* take MSW bool */
9c1175db 168#elif defined(macintosh) || defined(__APPLE__)
0240e8b1
SC
169typedef Boolean Bool; /* take MSW bool */
170#endif
171#endif
172/* make these local here, simx.c gets the same from xpm.h */
173#undef LFUNC
174#undef FUNC
175
176#endif /* _SIMX_H */