comctl32: toolbar: The iImage in TBN_GETDISPINFO should be initialized to -1.
This commit is contained in:
parent
4da30bfcfc
commit
e66523e19b
|
@ -38,6 +38,7 @@ static BOOL g_fBlockHotItemChange;
|
||||||
static BOOL g_fReceivedHotItemChange;
|
static BOOL g_fReceivedHotItemChange;
|
||||||
static BOOL g_fExpectedHotItemOld;
|
static BOOL g_fExpectedHotItemOld;
|
||||||
static BOOL g_fExpectedHotItemNew;
|
static BOOL g_fExpectedHotItemNew;
|
||||||
|
static DWORD g_dwExpectedDispInfoMask;
|
||||||
|
|
||||||
#define check_rect(name, val, exp) ok(val.top == exp.top && val.bottom == exp.bottom && \
|
#define check_rect(name, val, exp) ok(val.top == exp.top && val.bottom == exp.bottom && \
|
||||||
val.left == exp.left && val.right == exp.right, "invalid rect (" name ") (%d,%d) (%d,%d) - expected (%d,%d) (%d,%d)\n", \
|
val.left == exp.left && val.right == exp.right, "invalid rect (" name ") (%d,%d) (%d,%d) - expected (%d,%d) (%d,%d)\n", \
|
||||||
|
@ -57,6 +58,7 @@ static LRESULT MyWnd_Notify(LPARAM lParam)
|
||||||
{
|
{
|
||||||
NMHDR *hdr = (NMHDR *)lParam;
|
NMHDR *hdr = (NMHDR *)lParam;
|
||||||
NMTBHOTITEM *nmhi;
|
NMTBHOTITEM *nmhi;
|
||||||
|
NMTBDISPINFO *nmdisp;
|
||||||
switch (hdr->code)
|
switch (hdr->code)
|
||||||
{
|
{
|
||||||
case TBN_HOTITEMCHANGE:
|
case TBN_HOTITEMCHANGE:
|
||||||
|
@ -70,6 +72,15 @@ static LRESULT MyWnd_Notify(LPARAM lParam)
|
||||||
if (g_fBlockHotItemChange)
|
if (g_fBlockHotItemChange)
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TBN_GETDISPINFOA:
|
||||||
|
case TBN_GETDISPINFOW:
|
||||||
|
nmdisp = (NMTBDISPINFOA *)lParam;
|
||||||
|
|
||||||
|
compare(nmdisp->dwMask, g_dwExpectedDispInfoMask, "%x");
|
||||||
|
compare(nmdisp->iImage, -1, "%d");
|
||||||
|
ok(nmdisp->pszText == NULL, "pszText is not NULL\n");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -974,6 +985,25 @@ static void test_createtoolbarex()
|
||||||
DestroyWindow(hToolbar);
|
DestroyWindow(hToolbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_dispinfo(void)
|
||||||
|
{
|
||||||
|
HWND hToolbar = NULL;
|
||||||
|
const TBBUTTON buttons_disp[] = {
|
||||||
|
{-1, 20, TBSTATE_ENABLED, 0, {0, }, 0, -1},
|
||||||
|
{0, 21, TBSTATE_ENABLED, 0, {0, }, 0, -1},
|
||||||
|
};
|
||||||
|
|
||||||
|
rebuild_toolbar(&hToolbar);
|
||||||
|
SendMessageA(hToolbar, TB_LOADIMAGES, IDB_HIST_SMALL_COLOR, (LPARAM)HINST_COMMCTRL);
|
||||||
|
SendMessageA(hToolbar, TB_ADDBUTTONS, 2, (LPARAM)buttons_disp);
|
||||||
|
g_dwExpectedDispInfoMask = 1;
|
||||||
|
/* some TBN_GETDISPINFO tests will be done in MyWnd_Notify function */
|
||||||
|
ShowWindow(hToolbar, SW_SHOW);
|
||||||
|
UpdateWindow(hToolbar);
|
||||||
|
DestroyWindow(hToolbar);
|
||||||
|
g_dwExpectedDispInfoMask = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
START_TEST(toolbar)
|
START_TEST(toolbar)
|
||||||
{
|
{
|
||||||
|
@ -1007,6 +1037,7 @@ START_TEST(toolbar)
|
||||||
test_sizes();
|
test_sizes();
|
||||||
test_getbuttoninfo();
|
test_getbuttoninfo();
|
||||||
test_createtoolbarex();
|
test_createtoolbarex();
|
||||||
|
test_dispinfo();
|
||||||
|
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
while(GetMessageA(&msg,0,0,0)) {
|
while(GetMessageA(&msg,0,0,0)) {
|
||||||
|
|
|
@ -366,6 +366,7 @@ TOOLBAR_GetBitmapIndex(const TOOLBAR_INFO *infoPtr, TBUTTON_INFO *btnPtr)
|
||||||
nmgd.idCommand = btnPtr->idCommand;
|
nmgd.idCommand = btnPtr->idCommand;
|
||||||
nmgd.lParam = btnPtr->dwData;
|
nmgd.lParam = btnPtr->dwData;
|
||||||
nmgd.dwMask = TBNF_IMAGE;
|
nmgd.dwMask = TBNF_IMAGE;
|
||||||
|
nmgd.iImage = -1;
|
||||||
TOOLBAR_SendNotify(&nmgd.hdr, infoPtr,
|
TOOLBAR_SendNotify(&nmgd.hdr, infoPtr,
|
||||||
infoPtr->bUnicode ? TBN_GETDISPINFOW : TBN_GETDISPINFOA);
|
infoPtr->bUnicode ? TBN_GETDISPINFOW : TBN_GETDISPINFOA);
|
||||||
if (nmgd.dwMask & TBNF_DI_SETITEM)
|
if (nmgd.dwMask & TBNF_DI_SETITEM)
|
||||||
|
|
Loading…
Reference in New Issue