RESEND comctl32:toolbar: Fix incorrect toolbar bitmap background color

Oleg Krylov oleg.krylov at gmail.com
Tue Aug 1 06:34:12 CDT 2006


RESEND: fixed patch line wraps, sorry

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


-------------- next part --------------
diff -urN wine/dlls/comctl32/toolbar.c wineNew/dlls/comctl32/toolbar.c
--- wine/dlls/comctl32/toolbar.c	2006-05-23 15:47:38.000000000 +0300
+++ wineNew/dlls/comctl32/toolbar.c	2006-07-27 14:04:48.000000000 +0300
@@ -2688,52 +2688,52 @@
 	switch (lpAddBmp->nID)
     {
 	    case IDB_STD_SMALL_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_STD_SMALL));
-		nIndex = ImageList_AddMasked (himlDef,
-					      hbmLoad, comctl32_color.clrBtnFace);
-		DeleteObject (hbmLoad);
-		break;
-
-	    case IDB_STD_LARGE_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_STD_LARGE));
-		nIndex = ImageList_AddMasked (himlDef,
-					      hbmLoad, comctl32_color.clrBtnFace);
-		DeleteObject (hbmLoad);
-		break;
-
-	    case IDB_VIEW_SMALL_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_VIEW_SMALL));
-		nIndex = ImageList_AddMasked (himlDef,
-					      hbmLoad, comctl32_color.clrBtnFace);
-		DeleteObject (hbmLoad);
-		break;
-
-	    case IDB_VIEW_LARGE_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_VIEW_LARGE));
-		nIndex = ImageList_AddMasked (himlDef,
-					      hbmLoad, comctl32_color.clrBtnFace);
-		DeleteObject (hbmLoad);
-		break;
-
-	    case IDB_HIST_SMALL_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_HIST_SMALL));
-		nIndex = ImageList_AddMasked (himlDef,
-					      hbmLoad, comctl32_color.clrBtnFace);
-		DeleteObject (hbmLoad);
-		break;
-
-	    case IDB_HIST_LARGE_COLOR:
-		hbmLoad = LoadBitmapW (COMCTL32_hModule,
-				       MAKEINTRESOURCEW(IDB_HIST_LARGE));
-		nIndex = ImageList_AddMasked (himlDef,
-					      hbmLoad, comctl32_color.clrBtnFace);
-		DeleteObject (hbmLoad);
-		break;
+		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 = 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 = 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 = 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 = 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 = CreateMappedBitmap (COMCTL32_hModule,
+				       IDB_HIST_LARGE, 0, NULL, 0);
+		nIndex = ImageList_AddMasked (himlDef,
+					      hbmLoad, comctl32_color.clrBtnFace);
+		DeleteObject (hbmLoad);
+		break;
 
 	    default:
 	nIndex = ImageList_GetImageCount (himlDef);
@@ -2743,7 +2743,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