#ifdef FOR_MSW
+#if !defined(__OS2__)
#include "windows.h" /* MS windows GDI types */
+#else
+#define INCL_PM
+#define INCL_GPI
+#define INCL_DEV
+#include<os2.h>
+typedef unsigned long COLORREF;
+/*
+// RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def
+// #define OS2RGB(r,g,b) ((ULONG ((BYTE) (r) | ((UINT) (g) << 8)) | (((ULONG)(BYTE)(b)) << 16)))
+*/
+#ifndef OS2RGB
+# define OS2RGB(r,g,b) ((unsigned long)r<<16|(unsigned long)g<<8|(unsigned long)b)
+#endif
+
+#ifndef GetBValue
+# define GetBValue(rgb) ((BYTE)((rgb) >> 16))
+#endif
+#ifndef GetGValue
+# define GetGValue(rgb) ((BYTE)(((UINT)(rgb)) >> 8))
+#endif
+#ifndef GetRValue
+# define GetRValue(rgb) ((BYTE)(rgb))
+#endif
+#endif /* else __OS2__ */
+
/*
* minimal portability layer between ansi and KR C
/* 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
+# 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()
+# define FUNC(f, t, p) extern t f()
+# define LFUNC(f, t, p) static t f()
#endif
/* define MSW types for X window types,
I don't know much about MSW, but the following defines do the job */
+#if !defined(__OS2__)
typedef HDC Display; /* this should be similar */
+#else
+typedef HPS Display;
+#endif
+
typedef void *Screen; /* not used */
typedef void *Visual; /* not used yet, is for GRAY, COLOR,
* MONO */