140 lines
4.8 KiB
C
140 lines
4.8 KiB
C
/*
|
|
* Copyright (C) 1989-95 GROUPE BULL
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to
|
|
* deal in the Software without restriction, including without limitation the
|
|
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
* sell copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
*
|
|
* Except as contained in this notice, the name of GROUPE BULL shall not be
|
|
* used in advertising or otherwise to promote the sale, use or other dealings
|
|
* in this Software without prior written authorization from GROUPE BULL.
|
|
*/
|
|
|
|
/*****************************************************************************\
|
|
* simx.h: 0.1a *
|
|
* *
|
|
* This emulates some Xlib functionality for MSW. It's not a general solution, *
|
|
* it is close related to XPM-lib. It is only intended to satisfy what is need *
|
|
* there. Thus allowing to read XPM files under MS windows. *
|
|
* *
|
|
* Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) *
|
|
\*****************************************************************************/
|
|
|
|
|
|
#ifndef _SIMX_H
|
|
#define _SIMX_H
|
|
|
|
#ifdef FOR_MSW
|
|
|
|
#include "windows.h" /* MS windows GDI types */
|
|
|
|
/*
|
|
* minimal portability layer between ansi and KR C
|
|
*/
|
|
/* this comes from xpm.h, and is here again, to avoid complicated
|
|
includes, since this is included from xpm.h */
|
|
/* these defines get undefed at the end of this file */
|
|
#if __STDC__ || defined(__cplusplus) || defined(c_plusplus)
|
|
/* ANSI || C++ */
|
|
#define FUNC(f, t, p) extern t f p
|
|
#define LFUNC(f, t, p) static t f p
|
|
#else /* k&R */
|
|
#define FUNC(f, t, p) extern t f()
|
|
#define LFUNC(f, t, p) static t f()
|
|
#endif
|
|
|
|
|
|
FUNC(boundCheckingMalloc, void *, (long s));
|
|
FUNC(boundCheckingCalloc, void *, (long num, long s));
|
|
FUNC(boundCheckingRealloc, void *, (void *p, long s));
|
|
|
|
/* define MSW types for X window types,
|
|
I don't know much about MSW, but the following defines do the job */
|
|
|
|
typedef HDC Display; /* this should be similar */
|
|
typedef void *Screen; /* not used */
|
|
typedef void *Visual; /* not used yet, is for GRAY, COLOR,
|
|
* MONO */
|
|
|
|
typedef void *Colormap; /* should be COLORPALETTE, not done
|
|
* yet */
|
|
|
|
typedef COLORREF Pixel;
|
|
|
|
#define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */
|
|
|
|
typedef struct {
|
|
Pixel pixel;
|
|
BYTE red, green, blue;
|
|
} XColor;
|
|
|
|
typedef struct {
|
|
HBITMAP bitmap;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
unsigned int depth;
|
|
} XImage;
|
|
|
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
extern "C" {
|
|
#endif
|
|
/* some replacements for X... functions */
|
|
|
|
/* XDefaultXXX */
|
|
FUNC(XDefaultVisual, Visual *, (Display *display, Screen *screen));
|
|
FUNC(XDefaultScreen, Screen *, (Display *d));
|
|
FUNC(XDefaultColormap, Colormap *, (Display *display, Screen *screen));
|
|
FUNC(XDefaultDepth, int, (Display *d, Screen *s));
|
|
|
|
/* color related */
|
|
FUNC(XParseColor, int, (Display *, Colormap *, char *, XColor *));
|
|
FUNC(XAllocColor, int, (Display *, Colormap *, XColor *));
|
|
FUNC(XQueryColors, void, (Display *display, Colormap *colormap,
|
|
XColor *xcolors, int ncolors));
|
|
FUNC(XFreeColors, int, (Display *d, Colormap cmap,
|
|
unsigned long pixels[],
|
|
int npixels, unsigned long planes));
|
|
/* XImage */
|
|
FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format,
|
|
int x, int y, int width, int height,
|
|
int pad, int foo));
|
|
|
|
/* free and destroy bitmap */
|
|
FUNC(XDestroyImage, void /* ? */ , (XImage *));
|
|
/* free only, bitmap remains */
|
|
FUNC(XImageFree, void, (XImage *));
|
|
#if defined(__cplusplus) || defined(c_plusplus)
|
|
} /* end of extern "C" */
|
|
#endif /* cplusplus */
|
|
|
|
#define ZPixmap 1 /* not really used */
|
|
#define XYBitmap 1 /* not really used */
|
|
|
|
#ifndef True
|
|
#define True 1
|
|
#define False 0
|
|
#endif
|
|
#ifndef Bool
|
|
typedef BOOL Bool; /* take MSW bool */
|
|
#endif
|
|
/* make these local here, simx.c gets the same from xpm.h */
|
|
#undef LFUNC
|
|
#undef FUNC
|
|
|
|
#endif /* def FOR_MSW */
|
|
|
|
#endif /* _SIMX_H */
|