]> git.saurik.com Git - wxWidgets.git/blobdiff - src/xpm/simx.h
Applied patch sent to me for xpmdecod.cpp/VC++ compilation, and changed
[wxWidgets.git] / src / xpm / simx.h
index 001cfdb4eb83832efd1a9b2b8d13e47c289a1f00..9b916182f790f14388819e7811b170c03de4596c 100644 (file)
 
 #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
 
 
@@ -64,7 +90,12 @@ 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 */
 
+#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 */