]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dib.cpp
some compilation fixes for mingw32 and not only
[wxWidgets.git] / src / msw / dib.cpp
index c488c6e19eb17b4f29846bc8975c34b7f1c257fb..2bc530afeb94a35a662617f1134c3b693eff0165 100644 (file)
@@ -6,12 +6,12 @@
  *                                                                            *
  *  FUNCTIONS  :                                                              *
  *                                                                            *
- *                ReadDIB()           - Reads a DIB                            *
+ *                wxReadDIB()           - Reads a DIB                            *
  *                                                                            *
  *               WriteDIB()          - Writes a global handle in CF_DIB format*
  *                                     to a file.                             *
  *                                                                            *
- *               PaletteSize()       - Calculates the palette size in bytes   *
+ *               wxPaletteSize()       - Calculates the palette size in bytes   *
  *                                     of given DIB                           *
  *                                                                            *
  *               DibNumColors()      - Determines the number of colors in DIB *
@@ -69,7 +69,7 @@
 /* Header signatutes for various resources */
 #define BFT_ICON        0x4349  /* 'IC' */
 #define BFT_BITMAP 0x4d42       /* 'BM' */
-#define BFT_CURSOR 0x5450       /* 'PT' */
+#define BFT_CURSOR 0x5450       /* 'PT(' */
 
 /* macro to determine if resource is a DIB */
 #define ISDIB(bft) ((bft) == BFT_BITMAP)
 #define PALVERSION             0x300
 #define MAXPALETTE     256       /* max. # supported palette entries */
 
-DWORD PASCAL lread(int fh, VOID FAR *pv, DWORD ul);
-DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul);
+static DWORD PASCAL lread(int fh, VOID FAR *pv, DWORD ul);
+static DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul);
 
-BOOL            WriteDIB (LPTSTR szFile,HANDLE hdib);
-WORD            PaletteSize (VOID FAR * pv);
-WORD            DibNumColors (VOID FAR * pv);
-// HANDLE               DibFromBitmap (HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal);
-BOOL             PASCAL MakeBitmapAndPalette(HDC,HANDLE,HPALETTE *,HBITMAP *);
-HPALETTE MakeDIBPalette(LPBITMAPINFOHEADER);
-BOOL             ReadDIB(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette);
+static BOOL    WriteDIB (LPTSTR szFile,HANDLE hdib);
+WORD   wxPaletteSize (VOID FAR * pv); // This is non-static as some apps use it externally
+static WORD    DibNumColors (VOID FAR * pv);
+// HANDLE      DibFromBitmap (HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal);
+static BOOL PASCAL MakeBitmapAndPalette(HDC,HANDLE,HPALETTE *,HBITMAP *);
 
 /****************************************************************************
  *                                                                         *
@@ -105,7 +103,7 @@ BOOL             ReadDIB(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette);
  *                                                                         *
  ****************************************************************************/
 
-BOOL WriteDIB(LPTSTR szFile, HANDLE hdib)
+static BOOL WriteDIB(LPTSTR szFile, HANDLE hdib)
 {
        BITMAPFILEHEADER        hdr;
        LPBITMAPINFOHEADER  lpbi;
@@ -130,7 +128,7 @@ BOOL WriteDIB(LPTSTR szFile, HANDLE hdib)
        hdr.bfReserved1 = 0;
        hdr.bfReserved2 = 0;
        hdr.bfOffBits = (DWORD) sizeof(BITMAPFILEHEADER) + lpbi->biSize +
-                PaletteSize(lpbi);
+                wxPaletteSize(lpbi);
 
     /* Write the file header */
        _lwrite(fh, (LPSTR) &hdr, sizeof(BITMAPFILEHEADER));
@@ -145,7 +143,7 @@ BOOL WriteDIB(LPTSTR szFile, HANDLE hdib)
 
 /****************************************************************************
  *                                                                         *
- *  FUNCTION   :  PaletteSize(VOID FAR * pv)                               *
+ *  FUNCTION   :  wxPaletteSize(VOID FAR * pv)                             *
  *                                                                         *
  *  PURPOSE    :  Calculates the palette size in bytes. If the info. block  *
  *               is of the BITMAPCOREHEADER type, the number of colors is  *
@@ -156,7 +154,7 @@ BOOL WriteDIB(LPTSTR szFile, HANDLE hdib)
  *                                                                         *
  ****************************************************************************/
 
-WORD PaletteSize(VOID FAR * pv)
+WORD wxPaletteSize(VOID FAR * pv)
 {
        LPBITMAPINFOHEADER lpbi;
        WORD           NumColors;
@@ -181,7 +179,7 @@ WORD PaletteSize(VOID FAR * pv)
  *                                                                         *
  ****************************************************************************/
 
-WORD DibNumColors(VOID FAR *pv)
+static WORD DibNumColors(VOID FAR *pv)
 {
        int             bits;
        BITMAPINFOHEADER        *lpbi;
@@ -228,7 +226,7 @@ WORD DibNumColors(VOID FAR *pv)
  ****************************************************************************/
 
 #if NOTHING
-HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal)
+static HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal)
 {
        BITMAP               bm;
        BITMAPINFOHEADER     bi;
@@ -261,7 +259,7 @@ HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal)
        bi.biClrUsed = 0;
        bi.biClrImportant = 0;
 
-       dwLen = bi.biSize + PaletteSize(&bi);
+       dwLen = bi.biSize + wxPaletteSize(&bi);
 
        hdc = GetDC((HWND) NULL);
        hpal = SelectPalette(hdc, hpal, FALSE);
@@ -301,7 +299,7 @@ HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal)
                }
 
     /* realloc the buffer big enough to hold all the bits */
-       dwLen = bi.biSize + PaletteSize(&bi) + bi.biSizeImage;
+       dwLen = bi.biSize + wxPaletteSize(&bi) + bi.biSizeImage;
        if (h = GlobalReAlloc(hdib, dwLen, 0))
                hdib = h;
        else {
@@ -326,7 +324,7 @@ HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal)
                 hbm,
                 0,
                 (WORD) bi.biHeight,
-                (LPSTR) lpbi + (WORD) lpbi->biSize + PaletteSize(lpbi),
+                (LPSTR) lpbi + (WORD) lpbi->biSize + wxPaletteSize(lpbi),
                 (LPBITMAPINFO) lpbi, DIB_RGB_COLORS) == 0) {
                GlobalUnlock(hdib);
                hdib = NULL;
@@ -356,7 +354,7 @@ HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal)
  *                                                                         *
  ****************************************************************************/
 
-DWORD PASCAL lread(int fh, void far *pv, DWORD ul)
+static DWORD PASCAL lread(int fh, void far *pv, DWORD ul)
 {
        DWORD     ulT = ul;
 #if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__) || defined(__WXWINE__)
@@ -386,7 +384,7 @@ DWORD PASCAL lread(int fh, void far *pv, DWORD ul)
  *                                                                         *
  ****************************************************************************/
 
-DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul)
+static DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul)
 {
        DWORD     ulT = ul;
 #if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__) || defined(__WXWINE__)
@@ -420,7 +418,7 @@ DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul)
  *              FALSE - otherwise
  *
  ****************************************************************************/
-BOOL ReadDIB(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette)
+BOOL wxReadDIB(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette)
 {
     int fh;
     LPBITMAPINFOHEADER lpbi;
@@ -438,8 +436,8 @@ BOOL ReadDIB(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette)
 
     fh = OpenFile (wxFNCONV(lpFileName), &of, OF_READ);
     if (fh == -1) {
-        wsprintf(str,_T("Can't open file '%s'"), lpFileName);
-       MessageBox(NULL, str, _T("Error"), MB_ICONSTOP | MB_OK);
+        wsprintf(str,wxT("Can't open file '%s'"), lpFileName);
+       MessageBox(NULL, str, wxT("Error"), MB_ICONSTOP | MB_OK);
        return (0);
     }
 
@@ -588,7 +586,7 @@ ErrExit2:
  *                         not valid
  *
  ****************************************************************************/
-BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB,
+static BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB,
                        HPALETTE * phPal, HBITMAP * phBitmap)
 {
     LPBITMAPINFOHEADER lpInfo;
@@ -603,7 +601,7 @@ BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB,
     lpInfo = (LPBITMAPINFOHEADER) GlobalLock(hDIB);
 #endif
 
-    hPalette = MakeDIBPalette(lpInfo);
+    hPalette = wxMakeDIBPalette(lpInfo);
     if ( hPalette )
     {
        // Need to realize palette for converting DIB to bitmap.
@@ -632,7 +630,7 @@ BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB,
 
 /****************************************************************************
  *                                                                         *
- *  FUNCTION   : MakeDIBPalette(lpInfo)                                            *
+ *  FUNCTION   : wxMakeDIBPalette(lpInfo)                                          *
  *                                                                         *
  *  PURPOSE    : Given a BITMAPINFOHEADER, create a palette based on
  *              the color table.
@@ -642,7 +640,7 @@ BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB,
  *              zero - unable to create palette
  *                                                                         *
  ****************************************************************************/
-HPALETTE MakeDIBPalette(LPBITMAPINFOHEADER lpInfo)
+HPALETTE wxMakeDIBPalette(LPBITMAPINFOHEADER lpInfo)
 {
 #ifdef __WXWINE__
         return (FALSE);
@@ -703,7 +701,7 @@ bool wxLoadIntoBitmap(wxChar *filename, wxBitmap *bitmap, wxPalette **pal)
   HBITMAP hBitmap;
   HPALETTE hPalette;
 
-  bool success = (ReadDIB(filename, &hBitmap, &hPalette) != 0);
+  bool success = (wxReadDIB(filename, &hBitmap, &hPalette) != 0);
 
   if (!success)
   {
@@ -733,7 +731,9 @@ bool wxLoadIntoBitmap(wxChar *filename, wxBitmap *bitmap, wxPalette **pal)
     bitmap->SetWidth(bm.bmWidth);
     bitmap->SetHeight(bm.bmHeight);
     bitmap->SetDepth(bm.bmPlanes * bm.bmBitsPixel);
+#if WXWIN_COMPATIBILITY_2
     bitmap->SetOk(TRUE);
+#endif // WXWIN_COMPATIBILITY_2
     return TRUE;
   }
   else return FALSE;
@@ -782,7 +782,7 @@ wxBitmap *wxLoadBitmap(wxChar *filename, wxPalette **pal)
 //
 //---------------------------------------------------------------------
 
-void InitBitmapInfoHeader (LPBITMAPINFOHEADER lpBmInfoHdr,
+static void InitBitmapInfoHeader (LPBITMAPINFOHEADER lpBmInfoHdr,
                                         DWORD dwWidth,
                                         DWORD dwHeight,
                                           int nBPP)
@@ -815,9 +815,9 @@ void InitBitmapInfoHeader (LPBITMAPINFOHEADER lpBmInfoHdr,
 
 
 
-LPSTR FindDIBBits (LPSTR lpbi)
+LPSTR wxFindDIBBits (LPSTR lpbi)
 {
-   return (lpbi + *(LPDWORD)lpbi + PaletteSize (lpbi));
+   return (lpbi + *(LPDWORD)lpbi + wxPaletteSize (lpbi));
 }
 
 //---------------------------------------------------------------------
@@ -840,7 +840,7 @@ LPSTR FindDIBBits (LPSTR lpbi)
 //
 //---------------------------------------------------------------------
 
-HANDLE BitmapToDIB (HBITMAP hBitmap, HPALETTE hPal)
+HANDLE wxBitmapToDIB (HBITMAP hBitmap, HPALETTE hPal)
 {
    BITMAP             Bitmap;
    BITMAPINFOHEADER   bmInfoHdr;
@@ -870,7 +870,7 @@ HANDLE BitmapToDIB (HBITMAP hBitmap, HPALETTE hPal)
       //  into this memory, and find out where the bitmap bits go.
 
    hDIB = GlobalAlloc (GHND, sizeof (BITMAPINFOHEADER) +
-             PaletteSize ((LPSTR) &bmInfoHdr) + bmInfoHdr.biSizeImage);
+             wxPaletteSize ((LPSTR) &bmInfoHdr) + bmInfoHdr.biSizeImage);
 
    if (!hDIB)
       return NULL;
@@ -882,7 +882,7 @@ HANDLE BitmapToDIB (HBITMAP hBitmap, HPALETTE hPal)
 #endif
 
    *lpbmInfoHdr = bmInfoHdr;
-   lpBits       = FindDIBBits ((LPSTR) lpbmInfoHdr);
+   lpBits       = wxFindDIBBits ((LPSTR) lpbmInfoHdr);
 
 
       // Now, we need a DC to hold our bitmap.  If the app passed us
@@ -934,7 +934,7 @@ bool wxSaveBitmap(wxChar *filename, wxBitmap *bitmap, wxPalette *colourmap)
   if (colourmap)
     hPalette = (HPALETTE) colourmap->GetHPALETTE();
 
-  HANDLE dibHandle = BitmapToDIB((HBITMAP) bitmap->GetHBITMAP(), hPalette);
+  HANDLE dibHandle = wxBitmapToDIB((HBITMAP) bitmap->GetHBITMAP(), hPalette);
   if (dibHandle)
   {
     bool success = (WriteDIB(filename, dibHandle) != 0);