Hi Jacek,
Jacek Caban jacek@codeweavers.com wrote:
- parent = CreateWindowExA(0, "TestParentClass", "Test parent",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,100, 100, 200, 200, 0, 0, 0, NULL);- ok (parent != 0, "Failed to create parent window\n");
- child = CreateWindowExA(0, "TestWindowClass", "Test child",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,100, 100, 200, 200, 0, 0, 0, NULL);- ok (child != 0, "Failed to create child window\n");
- child2 = CreateWindowExA(0, "SimpleWindowClass", "Test child2",
WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CHILD,100, 100, 200, 200, child, 0, 0, NULL);- ok (child2 != 0, "Failed to create child window\n");
- SetParent(child, parent);
- SetFocus(child);
Is that really required to use SetParent() instead of specifying correct parent in the CreateWindowEx call?
- flush_sequence();
- DialogBoxA( 0, "TEST_DIALOG", child2, TestModalDlgProc2 );
- ok_sequence(WmModalDialogSeq_2, "ModalDialog2", TRUE);
Is this test supposed to show that actual dialog owner is parent window? If yes, then this theory is not tested at all.
- SetForegroundWindow(hdlg);
- {
const struct message WmEndDialogSeq[] = {{ WM_ENABLE, sent },{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE },{ HCBT_ACTIVATE, hook|wparam, (WPARAM)hchild },{ WM_NCACTIVATE, sent|wparam|lparam, WA_INACTIVE, (LPARAM)hchild },{ WM_ACTIVATE, sent|wparam|lparam, WA_INACTIVE, (LPARAM)hchild },/* FIXME: Following two are optional because Wine sends WM_QUERYNEWPALETTE instead of WM_WINDOWPOSCHANGING */{ WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE },{ WM_QUERYNEWPALETTE, sent|optional },{ WM_NCACTIVATE, sent|wparam|lparam, WA_ACTIVE, (LPARAM)hdlg },{ WM_GETTEXT, sent|optional|defwinproc },{ WM_ACTIVATE, sent|wparam|lparam, WA_ACTIVE, (LPARAM)hdlg },{ HCBT_SETFOCUS, hook|wparam, (WPARAM)hchild },{ WM_KILLFOCUS, sent|wparam, (WPARAM)hchild },{ WM_SETFOCUS, sent|defwinproc|wparam, (WPARAM)hdlg },{ 0 }};flush_sequence();EndDialog(hdlg, 0);ok_sequence(WmEndDialogSeq, "EndDialog", FALSE);- }
Please don't create fake embedded blocks.
Also it would be really nice to send the tests first so it would be more clear when a todo_wine is removed with a subsequent patch in order to see whether the patch is actually related to the previously sent tests.