comctl32/tests: Test calculating the rect of a child item while handling TVN_ITEMEXPANDED.
This commit is contained in:
parent
2c354b8bbb
commit
2f77e2b93d
|
@ -819,12 +819,15 @@ static void test_get_set_unicodeformat(void)
|
||||||
|
|
||||||
static TVITEMA g_item_expanding, g_item_expanded;
|
static TVITEMA g_item_expanding, g_item_expanded;
|
||||||
static BOOL g_get_from_expand;
|
static BOOL g_get_from_expand;
|
||||||
|
static BOOL g_get_rect_in_expand;
|
||||||
|
|
||||||
static LRESULT CALLBACK parent_wnd_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
static LRESULT CALLBACK parent_wnd_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
static LONG defwndproc_counter = 0;
|
static LONG defwndproc_counter = 0;
|
||||||
struct message msg;
|
struct message msg;
|
||||||
LRESULT ret;
|
LRESULT ret;
|
||||||
|
RECT rect;
|
||||||
|
HTREEITEM visibleItem;
|
||||||
|
|
||||||
msg.message = message;
|
msg.message = message;
|
||||||
msg.flags = sent|wparam|lparam;
|
msg.flags = sent|wparam|lparam;
|
||||||
|
@ -907,6 +910,17 @@ static LRESULT CALLBACK parent_wnd_proc(HWND hWnd, UINT message, WPARAM wParam,
|
||||||
ret = SendMessageA(pHdr->hwndFrom, TVM_GETITEMA, 0, (LPARAM)&g_item_expanded);
|
ret = SendMessageA(pHdr->hwndFrom, TVM_GETITEMA, 0, (LPARAM)&g_item_expanded);
|
||||||
ok(ret == TRUE, "got %lu\n", ret);
|
ok(ret == TRUE, "got %lu\n", ret);
|
||||||
}
|
}
|
||||||
|
if (g_get_rect_in_expand) {
|
||||||
|
visibleItem = TreeView_GetNextItem(pHdr->hwndFrom, NULL, TVGN_FIRSTVISIBLE);
|
||||||
|
ok(pTreeView->itemNew.hItem == visibleItem, "expanded item == first visible item\n");
|
||||||
|
*(HTREEITEM*)&rect = visibleItem;
|
||||||
|
ok(SendMessage(pHdr->hwndFrom, TVM_GETITEMRECT, TRUE, (LPARAM)&rect), "Failed to get rect for first visible item.\n");
|
||||||
|
visibleItem = TreeView_GetNextItem(pHdr->hwndFrom, visibleItem, TVGN_NEXTVISIBLE);
|
||||||
|
*(HTREEITEM*)&rect = visibleItem;
|
||||||
|
ok(visibleItem != NULL, "There must be a visible item after the first visisble item.\n");
|
||||||
|
todo_wine
|
||||||
|
ok(SendMessage(pHdr->hwndFrom, TVM_GETITEMRECT, TRUE, (LPARAM)&rect), "Failed to get rect for second visible item.\n");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1167,6 +1181,17 @@ static void test_expandnotify(void)
|
||||||
DestroyWindow(hTree);
|
DestroyWindow(hTree);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_rect_retrieval_after_expand_with_select(void) {
|
||||||
|
BOOL ret;
|
||||||
|
HWND hTree;
|
||||||
|
hTree = create_treeview_control();
|
||||||
|
fill_tree(hTree);
|
||||||
|
g_get_rect_in_expand = TRUE;
|
||||||
|
ret = TreeView_Select(hTree, hChild, TVGN_CARET);
|
||||||
|
g_get_rect_in_expand = FALSE;
|
||||||
|
ok(ret,"TreeView_Select should return true\n");
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(treeview)
|
START_TEST(treeview)
|
||||||
{
|
{
|
||||||
HMODULE hComctl32;
|
HMODULE hComctl32;
|
||||||
|
@ -1227,6 +1252,7 @@ START_TEST(treeview)
|
||||||
test_itemedit();
|
test_itemedit();
|
||||||
test_treeview_classinfo();
|
test_treeview_classinfo();
|
||||||
test_expandnotify();
|
test_expandnotify();
|
||||||
|
test_rect_retrieval_after_expand_with_select();
|
||||||
|
|
||||||
PostMessageA(hMainWnd, WM_CLOSE, 0, 0);
|
PostMessageA(hMainWnd, WM_CLOSE, 0, 0);
|
||||||
while(GetMessageA(&msg,0,0,0)) {
|
while(GetMessageA(&msg,0,0,0)) {
|
||||||
|
|
Loading…
Reference in New Issue