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