comctl32/tests: Added a test that checks whether setting a custom default button in a property sheet works.
This commit is contained in:
parent
31b9fefe0e
commit
32f240bfc1
|
@ -371,6 +371,7 @@ static void test_wiznavigation(void)
|
||||||
|
|
||||||
DestroyWindow(hdlg);
|
DestroyWindow(hdlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_buttons(void)
|
static void test_buttons(void)
|
||||||
{
|
{
|
||||||
HPROPSHEETPAGE hpsp[1];
|
HPROPSHEETPAGE hpsp[1];
|
||||||
|
@ -436,6 +437,94 @@ static void test_buttons(void)
|
||||||
DestroyWindow(hdlg);
|
DestroyWindow(hdlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL add_button_has_been_pressed;
|
||||||
|
|
||||||
|
static INT_PTR CALLBACK
|
||||||
|
page_with_custom_default_button_dlg_proc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
|
||||||
|
{
|
||||||
|
switch (msg)
|
||||||
|
{
|
||||||
|
case WM_COMMAND:
|
||||||
|
switch(LOWORD(wparam))
|
||||||
|
{
|
||||||
|
case IDC_PS_PUSHBUTTON1:
|
||||||
|
switch(HIWORD(wparam))
|
||||||
|
{
|
||||||
|
case BN_CLICKED:
|
||||||
|
add_button_has_been_pressed = TRUE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_custom_default_button(void)
|
||||||
|
{
|
||||||
|
HWND hdlg;
|
||||||
|
PROPSHEETPAGEA psp[1];
|
||||||
|
PROPSHEETHEADERA psh;
|
||||||
|
MSG msg;
|
||||||
|
LRESULT result;
|
||||||
|
|
||||||
|
psp[0].dwSize = sizeof (PROPSHEETPAGEA);
|
||||||
|
psp[0].dwFlags = PSP_USETITLE;
|
||||||
|
psp[0].hInstance = GetModuleHandleA(NULL);
|
||||||
|
U(psp[0]).pszTemplate = MAKEINTRESOURCE(IDD_PROP_PAGE_WITH_CUSTOM_DEFAULT_BUTTON);
|
||||||
|
U2(psp[0]).pszIcon = NULL;
|
||||||
|
psp[0].pfnDlgProc = page_with_custom_default_button_dlg_proc;
|
||||||
|
psp[0].pszTitle = "Page1";
|
||||||
|
psp[0].lParam = 0;
|
||||||
|
|
||||||
|
psh.dwSize = sizeof (PROPSHEETHEADERA);
|
||||||
|
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_MODELESS;
|
||||||
|
psh.hwndParent = GetDesktopWindow();
|
||||||
|
psh.hInstance = GetModuleHandleA(NULL);
|
||||||
|
U(psh).pszIcon = NULL;
|
||||||
|
psh.pszCaption = "PropertySheet1";
|
||||||
|
psh.nPages = 1;
|
||||||
|
U3(psh).ppsp = psp;
|
||||||
|
U2(psh).nStartPage = 0;
|
||||||
|
|
||||||
|
/* The goal of the test is to make sure that the Add button is pressed
|
||||||
|
* when the ENTER key is pressed and a different control, a combobox,
|
||||||
|
* has the keyboard focus. */
|
||||||
|
add_button_has_been_pressed = FALSE;
|
||||||
|
|
||||||
|
/* Create the modeless property sheet. */
|
||||||
|
hdlg = (HWND)PropertySheetA(&psh);
|
||||||
|
ok(hdlg != INVALID_HANDLE_VALUE, "Cannot create the property sheet\n");
|
||||||
|
|
||||||
|
/* Set the Add button as the default button. */
|
||||||
|
SendMessage(hdlg, DM_SETDEFID, (WPARAM)IDC_PS_PUSHBUTTON1, 0);
|
||||||
|
|
||||||
|
/* Make sure the default button is the Add button. */
|
||||||
|
result = SendMessage(hdlg, DM_GETDEFID, 0, 0);
|
||||||
|
ok(DC_HASDEFID == HIWORD(result), "The property sheet does not have a default button\n");
|
||||||
|
ok(IDC_PS_PUSHBUTTON1 == LOWORD(result), "The default button is not the Add button\n");
|
||||||
|
|
||||||
|
/* At this point, the combobox should have keyboard focus, so we press ENTER.
|
||||||
|
* Pull the lever, Kronk! */
|
||||||
|
keybd_event(VK_RETURN, 0, 0, 0);
|
||||||
|
|
||||||
|
/* Process all the messages in the queue for this thread. */
|
||||||
|
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
|
||||||
|
{
|
||||||
|
if (!PropSheet_IsDialogMessage(hdlg, &msg))
|
||||||
|
{
|
||||||
|
TranslateMessage(&msg);
|
||||||
|
DispatchMessage(&msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
todo_wine
|
||||||
|
ok(add_button_has_been_pressed, "The Add button has not been pressed!\n");
|
||||||
|
|
||||||
|
DestroyWindow(hdlg);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(propsheet)
|
START_TEST(propsheet)
|
||||||
{
|
{
|
||||||
test_title();
|
test_title();
|
||||||
|
@ -443,4 +532,5 @@ START_TEST(propsheet)
|
||||||
test_disableowner();
|
test_disableowner();
|
||||||
test_wiznavigation();
|
test_wiznavigation();
|
||||||
test_buttons();
|
test_buttons();
|
||||||
|
test_custom_default_button();
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,14 @@
|
||||||
#define IDD_PROP_PAGE_RADIO 32
|
#define IDD_PROP_PAGE_RADIO 32
|
||||||
#define IDD_PROP_PAGE_EXIT 33
|
#define IDD_PROP_PAGE_EXIT 33
|
||||||
|
|
||||||
|
#define IDD_PROP_PAGE_WITH_CUSTOM_DEFAULT_BUTTON 34
|
||||||
|
|
||||||
#define IDC_PS_EDIT1 1000
|
#define IDC_PS_EDIT1 1000
|
||||||
#define IDC_PS_EDIT2 1001
|
#define IDC_PS_EDIT2 1001
|
||||||
#define IDC_PS_RADIO1 1010
|
#define IDC_PS_RADIO1 1010
|
||||||
#define IDC_PS_RADIO2 1011
|
#define IDC_PS_RADIO2 1011
|
||||||
|
|
||||||
|
#define IDC_PS_COMBO1 1020
|
||||||
|
#define IDC_PS_PUSHBUTTON1 1021
|
||||||
|
|
||||||
#endif /* __WINE_COMCTL32_TEST_RESOURCES_H */
|
#endif /* __WINE_COMCTL32_TEST_RESOURCES_H */
|
||||||
|
|
|
@ -79,3 +79,11 @@ IDB_BITMAP_128x15 BITMAP bmp128x15.bmp
|
||||||
|
|
||||||
/* @makedep: bmp80x15.bmp */
|
/* @makedep: bmp80x15.bmp */
|
||||||
IDB_BITMAP_80x15 BITMAP bmp80x15.bmp
|
IDB_BITMAP_80x15 BITMAP bmp80x15.bmp
|
||||||
|
|
||||||
|
IDD_PROP_PAGE_WITH_CUSTOM_DEFAULT_BUTTON DIALOG DISCARDABLE 5, 43, 227, 215
|
||||||
|
STYLE WS_CHILD | WS_DISABLED
|
||||||
|
FONT 8, "MS Shell Dlg"
|
||||||
|
{
|
||||||
|
COMBOBOX IDC_PS_COMBO1, 16, 68, 140, 14, CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
|
||||||
|
PUSHBUTTON "Add", IDC_PS_PUSHBUTTON1, 164, 68, 40, 13
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue