comctl32:toolbar: Fix incorrect toolbar bitmap background color

Oleg Krylov oleg.krylov at gmail.com
Thu Jul 27 08:06:39 CDT 2006


comctl32:toolbar: Fix incorrect toolbar bitmap background color

changelog: 27.07.2006. by Oleg Krylov <oleg.krylov at gmail.com>

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.

===============
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 12:41:17.000000000 +0300
@@ -2687,55 +2687,55 @@
        /* Add system bitmaps */
        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;
-
-           default:
+           case IDB_STD_SMALL_COLOR:
+               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);
                ERR ("invalid imagelist!\n");
                break;
@@ -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