]>
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)) 
  67 #endif /* else __OS2__ */ 
  71  * minimal portability layer between ansi and KR C 
  73 /* this comes from xpm.h, and is here again, to avoid complicated 
  74     includes, since this is included from xpm.h */ 
  75 /* these defines get undefed at the end of this file */ 
  76 #if __STDC__ || defined(__cplusplus) || defined(c_plusplus) 
  78 #  define FUNC(f, t, p) extern t f p 
  79 #  define LFUNC(f, t, p) static t f p 
  81 #  define FUNC(f, t, p) extern t f() 
  82 #  define LFUNC(f, t, p) static t f() 
  86 FUNC(boundCheckingMalloc
, void *, (long s
)); 
  87 FUNC(boundCheckingCalloc
, void *, (long num
, long s
)); 
  88 FUNC(boundCheckingRealloc
, void *, (void *p
, long s
)); 
  90 /* define MSW types for X window types, 
  91    I don't know much about MSW, but the following defines do the job */ 
  94 typedef HDC Display
;                    /* this should be similar */ 
  99 typedef void *Screen
;                   /* not used */ 
 100 typedef void *Visual
;                   /* not used yet, is for GRAY, COLOR, 
 103 typedef void *Colormap
;                 /* should be COLORPALETTE, not done 
 106 typedef COLORREF Pixel
; 
 108 #define PIXEL_ALREADY_TYPEDEFED         /* to let xpm.h know about it */ 
 112     BYTE red
, green
, blue
; 
 122 #if defined(__cplusplus) || defined(c_plusplus) 
 125 /* some replacements for X... functions */ 
 128     FUNC(XDefaultVisual
, Visual 
*, (Display 
*display
, Screen 
*screen
)); 
 129     FUNC(XDefaultScreen
, Screen 
*, (Display 
*d
)); 
 130     FUNC(XDefaultColormap
, Colormap 
*, (Display 
*display
, Screen 
*screen
)); 
 131     FUNC(XDefaultDepth
, int, (Display 
*d
, Screen 
*s
)); 
 134     FUNC(XParseColor
, int, (Display 
*, Colormap 
*, char *, XColor 
*)); 
 135     FUNC(XAllocColor
, int, (Display 
*, Colormap 
*, XColor 
*)); 
 136     FUNC(XQueryColors
, void, (Display 
*display
, Colormap 
*colormap
, 
 137                               XColor 
*xcolors
, int ncolors
)); 
 138     FUNC(XFreeColors
, int, (Display 
*d
, Colormap cmap
, 
 139                             unsigned long pixels
[], 
 140                             int npixels
, unsigned long planes
)); 
 142     FUNC(XCreateImage
, XImage 
*, (Display 
*, Visual 
*, int depth
, int format
, 
 143                                   int x
, int y
, int width
, int height
, 
 146 /* free and destroy bitmap */ 
 147     FUNC(XDestroyImage
, void /* ? */ , (XImage 
*)); 
 148 /* free only, bitmap remains */ 
 149     FUNC(XImageFree
, void, (XImage 
*)); 
 150 #if defined(__cplusplus) || defined(c_plusplus) 
 151 } /* end of extern "C" */ 
 152 #endif /* cplusplus */ 
 154 #define ZPixmap 1                       /* not really used */ 
 155 #define XYBitmap 1                      /* not really used */ 
 162 typedef BOOL Bool
;              /* take MSW bool */ 
 164 /* make these local here, simx.c gets the same from xpm.h */ 
 168 #endif /* def FOR_MSW */