]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/tbarmsw.cpp
extending calculation of visible region
[wxWidgets.git] / src / msw / tbarmsw.cpp
index d10ddd60a80a30f9dfb97e11ce5e9234ba8f5a98..f558a94b804fff348fb20dbfdb8321d66ec71637 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "tbarmsw.h"
 #endif
 
 
 #if wxUSE_TOOLBAR && defined(__WIN16__)
 
-#if !defined(__WIN32__) && !wxUSE_IMAGE_LOADING_IN_MSW
-    #error wxToolBar needs wxUSE_IMAGE_LOADING_IN_MSW under Win16
-#endif
-
 #if !defined(__GNUWIN32__) && !defined(__SALFORDC__)
     #include "malloc.h"
 #endif
@@ -1103,20 +1099,16 @@ WXHBITMAP wxToolBar::CreateMappedBitmap(WXHINSTANCE WXUNUSED(hInstance), void *i
 
 WXHBITMAP wxToolBar::CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap)
 {
-  HANDLE hDIB = wxBitmapToDIB((HBITMAP) hBitmap, 0);
-  if (hDIB)
-  {
-#ifdef __WINDOWS_386__
-    LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)MK_FP32(GlobalLock(hDIB));
-#else
-    LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)GlobalLock(hDIB);
-#endif
-    HBITMAP newBitmap = (HBITMAP) CreateMappedBitmap((WXHINSTANCE) wxGetInstance(), lpbmInfoHdr);
-    GlobalUnlock(hDIB);
+    HANDLE hDIB = wxDIB::ConvertFromBitmap((HBITMAP) hBitmap);
+    if ( !hDIB )
+        return 0;
+
+    WXHBITMAP newBitmap = CreateMappedBitmap(hInstance, GlobalPtr(hDIB));
+
     GlobalFree(hDIB);
-    return (WXHBITMAP) newBitmap;
-  }
-  return 0;
+
+    return newBitmap;
 }
 
-#endif
+#endif // wxUSE_TOOLBAR
+