Commit 40e16ac1 authored by Gabriel Ivăncescu's avatar Gabriel Ivăncescu Committed by Alexandre Julliard

user32/tests: Also include LBS_NODATA cases when testing ownerdraw.

parent 423ea979
...@@ -338,65 +338,73 @@ static HWND create_parent( void ) ...@@ -338,65 +338,73 @@ static HWND create_parent( void )
static void test_ownerdraw(void) static void test_ownerdraw(void)
{ {
static const DWORD styles[] =
{
0,
LBS_NODATA
};
HWND parent, hLB; HWND parent, hLB;
INT ret; INT ret;
RECT rc; RECT rc;
UINT i;
parent = create_parent(); parent = create_parent();
assert(parent); assert(parent);
hLB = create_listbox(LBS_OWNERDRAWFIXED | WS_CHILD | WS_VISIBLE, parent); for (i = 0; i < ARRAY_SIZE(styles); i++)
assert(hLB); {
hLB = create_listbox(LBS_OWNERDRAWFIXED | WS_CHILD | WS_VISIBLE | styles[i], parent);
assert(hLB);
SetForegroundWindow(hLB); SetForegroundWindow(hLB);
UpdateWindow(hLB); UpdateWindow(hLB);
/* make height short enough */ /* make height short enough */
SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc); SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc);
SetWindowPos(hLB, 0, 0, 0, 100, rc.bottom - rc.top + 1, SetWindowPos(hLB, 0, 0, 0, 100, rc.bottom - rc.top + 1,
SWP_NOZORDER | SWP_NOMOVE); SWP_NOZORDER | SWP_NOMOVE);
/* make 0 item invisible */ /* make 0 item invisible */
SendMessageA(hLB, LB_SETTOPINDEX, 1, 0); SendMessageA(hLB, LB_SETTOPINDEX, 1, 0);
ret = SendMessageA(hLB, LB_GETTOPINDEX, 0, 0); ret = SendMessageA(hLB, LB_GETTOPINDEX, 0, 0);
ok(ret == 1, "wrong top index %d\n", ret); ok(ret == 1, "wrong top index %d\n", ret);
SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc); SendMessageA(hLB, LB_GETITEMRECT, 0, (LPARAM)&rc);
trace("item 0 rect %s\n", wine_dbgstr_rect(&rc)); trace("item 0 rect %s\n", wine_dbgstr_rect(&rc));
ok(!IsRectEmpty(&rc), "empty item rect\n"); ok(!IsRectEmpty(&rc), "empty item rect\n");
ok(rc.top < 0, "rc.top is not negative (%d)\n", rc.top); ok(rc.top < 0, "rc.top is not negative (%d)\n", rc.top);
DestroyWindow(hLB); DestroyWindow(hLB);
/* Both FIXED and VARIABLE, FIXED should override VARIABLE. */ /* Both FIXED and VARIABLE, FIXED should override VARIABLE. */
hLB = CreateWindowA("listbox", "TestList", LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE, 0, 0, 100, 100, hLB = CreateWindowA("listbox", "TestList", LBS_OWNERDRAWFIXED | LBS_OWNERDRAWVARIABLE | styles[i],
NULL, NULL, NULL, 0); 0, 0, 100, 100, NULL, NULL, NULL, 0);
ok(hLB != NULL, "last error 0x%08x\n", GetLastError()); ok(hLB != NULL, "last error 0x%08x\n", GetLastError());
ok(GetWindowLongA(hLB, GWL_STYLE) & LBS_OWNERDRAWVARIABLE, "Unexpected window style.\n"); ok(GetWindowLongA(hLB, GWL_STYLE) & LBS_OWNERDRAWVARIABLE, "Unexpected window style.\n");
ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0); ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0);
ok(ret == 0, "Unexpected return value %d.\n", ret); ok(ret == 0, "Unexpected return value %d.\n", ret);
ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0); ret = SendMessageA(hLB, LB_INSERTSTRING, -1, 0);
ok(ret == 1, "Unexpected return value %d.\n", ret); ok(ret == 1, "Unexpected return value %d.\n", ret);
ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 0, 13);
ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0); ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 0, 13);
ok(ret == 13, "Unexpected item height %d.\n", ret); ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret);
ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 1, 42); ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0);
ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret); ok(ret == 13, "Unexpected item height %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0); ret = SendMessageA(hLB, LB_SETITEMHEIGHT, 1, 42);
ok(ret == 42, "Unexpected item height %d.\n", ret); ok(ret == LB_OKAY, "Failed to set item height, %d.\n", ret);
ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 1, 0); ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 0, 0);
ok(ret == 42, "Unexpected item height %d.\n", ret); ok(ret == 42, "Unexpected item height %d.\n", ret);
DestroyWindow (hLB); ret = SendMessageA(hLB, LB_GETITEMHEIGHT, 1, 0);
ok(ret == 42, "Unexpected item height %d.\n", ret);
DestroyWindow (hLB);
}
DestroyWindow(parent); DestroyWindow(parent);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment