[RESEND 2] comctl32:toolbar: Correctly map toolbar bitmap mask color

Oleg Krylov oleg.krylov at gmail.com
Fri Aug 18 09:05:17 CDT 2006


Hello,

RESEND: added changelog and license

TOOLBAR_AddBitmap should use CreateMappedBitmap instead of LoadBitmap
to correctly map bitmap's mask color (RGB(192,192,192) to clrBtnFace)
in a case of a non-default color scheme.

Changelog:
- Correctly map toolbar bitmap mask color in case of non-default color 
scheme.
Author: Oleg Krylov <oleg.krylov at gmail.com>
License: LGPL

-------------- next part --------------
diff -urN wineCVS/dlls/comctl32/toolbar.c wineTMP/dlls/comctl32/toolbar.c
--- wineCVS/dlls/comctl32/toolbar.c	2006-08-17 13:10:45.000000000 +0300
+++ wineTMP/dlls/comctl32/toolbar.c	2006-08-18 17:03:16.000000000 +0300
@@ -2689,48 +2689,48 @@
 	switch (lpAddBmp->nID)
     {
 	    case IDB_STD_SMALL_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_STD_SMALL));
+		hbmLoad = CreateMappedBitmap (COMCTL32_hModule,
+				       IDB_STD_SMALL, 0, NULL, 0);
 		nIndex = ImageList_AddMasked (himlDef,
 					      hbmLoad, comctl32_color.clrBtnFace);
 		DeleteObject (hbmLoad);
 		break;
 
 	    case IDB_STD_LARGE_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_STD_LARGE));
+		hbmLoad = CreateMappedBitmap (COMCTL32_hModule,
+				       IDB_STD_LARGE, 0, NULL, 0);
 		nIndex = ImageList_AddMasked (himlDef,
 					      hbmLoad, comctl32_color.clrBtnFace);
 		DeleteObject (hbmLoad);
 		break;
 
 	    case IDB_VIEW_SMALL_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_VIEW_SMALL));
+		hbmLoad = CreateMappedBitmap (COMCTL32_hModule,
+				       IDB_VIEW_SMALL, 0, NULL, 0);
 		nIndex = ImageList_AddMasked (himlDef,
 					      hbmLoad, comctl32_color.clrBtnFace);
 		DeleteObject (hbmLoad);
 		break;
 
 	    case IDB_VIEW_LARGE_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_VIEW_LARGE));
+		hbmLoad = CreateMappedBitmap (COMCTL32_hModule,
+				       IDB_VIEW_LARGE, 0, NULL, 0);
 		nIndex = ImageList_AddMasked (himlDef,
 					      hbmLoad, comctl32_color.clrBtnFace);
 		DeleteObject (hbmLoad);
 		break;
 
 	    case IDB_HIST_SMALL_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_HIST_SMALL));
+		hbmLoad = CreateMappedBitmap (COMCTL32_hModule,
+				       IDB_HIST_SMALL, 0, NULL, 0);
 		nIndex = ImageList_AddMasked (himlDef,
 					      hbmLoad, comctl32_color.clrBtnFace);
 		DeleteObject (hbmLoad);
 		break;
 
 	    case IDB_HIST_LARGE_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_HIST_LARGE));
+		hbmLoad = CreateMappedBitmap (COMCTL32_hModule,
+				       IDB_HIST_LARGE, 0, NULL, 0);
 		nIndex = ImageList_AddMasked (himlDef,
 					      hbmLoad, comctl32_color.clrBtnFace);
 		DeleteObject (hbmLoad);
@@ -2744,7 +2744,7 @@
     }
     else
     {
-	hbmLoad = LoadBitmapW (lpAddBmp->hInst, (LPWSTR)lpAddBmp->nID);
+        hbmLoad = CreateMappedBitmap(lpAddBmp->hInst, lpAddBmp->nID, 0, NULL, 0);
 	nIndex = ImageList_AddMasked (himlDef, hbmLoad, comctl32_color.clrBtnFace);
 	DeleteObject (hbmLoad);
     }


More information about the wine-patches mailing list