X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f07dc2e2a71f2c9dc9886a67e834a1b12a14df47..f4998a1cc6cf4783a46fbeee4e75a0808b8afe21:/src/msw/bitmap.cpp diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp index dbb6114bee..bac7a9c0ca 100644 --- a/src/msw/bitmap.cpp +++ b/src/msw/bitmap.cpp @@ -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);