]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/bitmap.cpp
MinGW compilation fixes.
[wxWidgets.git] / src / msw / bitmap.cpp
index dbb6114bee59ec7d9c3b5f7421d0231320a305d3..bac7a9c0cae9b7bacc37881131bc7189a0076316 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "bitmap.h"
 #endif
 
@@ -260,10 +260,6 @@ bool wxBitmap::CopyFromIconOrCursor(const wxGDIImage& icon)
     // delete the old one now as we don't need it any more
     ::DeleteObject(iconInfo.hbmMask);
 
-#if WXWIN_COMPATIBILITY_2
-    refData->m_ok = TRUE;
-#endif // WXWIN_COMPATIBILITY_2
-
     return TRUE;
 #else
     return FALSE;
@@ -322,10 +318,6 @@ bool wxBitmap::CopyFromIcon(const wxIcon& icon)
 
     refData->m_hBitmap = (WXHBITMAP)hbitmap;
 
-#if WXWIN_COMPATIBILITY_2
-    refData->m_ok = TRUE;
-#endif // WXWIN_COMPATIBILITY_2
-
     return TRUE;
 #else // Win32
     return CopyFromIconOrCursor(icon);
@@ -558,10 +550,6 @@ bool wxBitmap::DoCreate(int w, int h, int d, WXHDC hdc)
 
     SetHBITMAP((WXHBITMAP)hbmp);
 
-#if WXWIN_COMPATIBILITY_2
-    GetBitmapData()->m_ok = hbmp != 0;
-#endif // WXWIN_COMPATIBILITY_2
-
     return Ok();
 }
 
@@ -686,11 +674,6 @@ bool wxBitmap::CreateFromImage(const wxImage& image, int depth, const wxDC& dc)
     SetPalette(image.GetPalette());
 #endif // wxUSE_PALETTE
 
-#if WXWIN_COMPATIBILITY_2
-    // check the wxBitmap object
-    GetBitmapData()->SetOk();
-#endif // WXWIN_COMPATIBILITY_2
-
     return TRUE;
 }
 
@@ -825,10 +808,6 @@ bool wxBitmap::CreateFromImage(const wxImage& image, int depth, WXHDC hdc )
     // validate this object
     SetHBITMAP((WXHBITMAP)hbitmap);
 
-#if WXWIN_COMPATIBILITY_2
-    m_refData->m_ok = TRUE;
-#endif // WXWIN_COMPATIBILITY_2
-
     // finally also set the mask if we have one
     if ( image.HasMask() )
     {
@@ -1397,17 +1376,6 @@ void wxBitmap::SetMask(wxMask *mask)
     GetBitmapData()->SetMask(mask);
 }
 
-#if WXWIN_COMPATIBILITY_2
-
-void wxBitmap::SetOk(bool isOk)
-{
-    EnsureHasData();
-
-    GetBitmapData()->m_ok = isOk;
-}
-
-#endif // WXWIN_COMPATIBILITY_2
-
 #if WXWIN_COMPATIBILITY_2_4
 
 void wxBitmap::SetQuality(int WXUNUSED(quality))
@@ -1865,6 +1833,7 @@ HICON wxBitmapToIconOrCursor(const wxBitmap& bmp,
     }
 
     ICONINFO iconInfo;
+    wxZeroMemory(iconInfo);
     iconInfo.fIcon = iconWanted;  // do we want an icon or a cursor?
     if ( !iconWanted )
     {
@@ -1941,8 +1910,8 @@ HBITMAP wxInvertMask(HBITMAP hbmpMask, int w, int h)
         wxLogLastError(wxT("CreateBitmap"));
     }
 
-    ::SelectObject(hdcSrc, hbmpMask);
-    ::SelectObject(hdcDst, hbmpInvMask);
+    HGDIOBJ srcTmp = ::SelectObject(hdcSrc, hbmpMask);
+    HGDIOBJ dstTmp = ::SelectObject(hdcDst, hbmpInvMask);
     if ( !::BitBlt(hdcDst, 0, 0, w, h,
                    hdcSrc, 0, 0,
                    NOTSRCCOPY) )
@@ -1950,6 +1919,10 @@ HBITMAP wxInvertMask(HBITMAP hbmpMask, int w, int h)
         wxLogLastError(wxT("BitBlt"));
     }
 
+    // Deselect objects
+    SelectObject(hdcSrc,srcTmp);
+    SelectObject(hdcDst,dstTmp);
+    
     ::DeleteDC(hdcSrc);
     ::DeleteDC(hdcDst);