comctl32/tests: Detect and handle an RTL locale.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ddd1882396
commit
b8d01f9e1e
|
@ -29,11 +29,19 @@
|
|||
static HWND parenthwnd;
|
||||
static HWND sheethwnd;
|
||||
|
||||
static BOOL rtl;
|
||||
static LONG active_page = -1;
|
||||
|
||||
#define IDC_APPLY_BUTTON 12321
|
||||
|
||||
|
||||
static void detect_locale(void)
|
||||
{
|
||||
DWORD reading_layout;
|
||||
rtl = GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_IREADINGLAYOUT | LOCALE_RETURN_NUMBER,
|
||||
(void *)&reading_layout, sizeof(reading_layout)) && reading_layout == 1;
|
||||
}
|
||||
|
||||
/* try to make sure pending X events have been processed before continuing */
|
||||
static void flush_events(void)
|
||||
{
|
||||
|
@ -496,18 +504,27 @@ static void test_buttons(void)
|
|||
button = GetDlgItem(hdlg, IDCANCEL);
|
||||
GetWindowRect(button, &rc);
|
||||
ok(rc.top == top, "Cancel button should have same top as OK button\n");
|
||||
if (rtl)
|
||||
ok(rc.left < prevRight, "Cancel button should be to the left of OK button\n");
|
||||
else
|
||||
ok(rc.left > prevRight, "Cancel button should be to the right of OK button\n");
|
||||
prevRight = rc.right;
|
||||
|
||||
button = GetDlgItem(hdlg, IDC_APPLY_BUTTON);
|
||||
GetWindowRect(button, &rc);
|
||||
ok(rc.top == top, "Apply button should have same top as OK button\n");
|
||||
if (rtl)
|
||||
ok(rc.left < prevRight, "Apply button should be to the left of Cancel button\n");
|
||||
else
|
||||
ok(rc.left > prevRight, "Apply button should be to the right of Cancel button\n");
|
||||
prevRight = rc.right;
|
||||
|
||||
button = GetDlgItem(hdlg, IDHELP);
|
||||
GetWindowRect(button, &rc);
|
||||
ok(rc.top == top, "Help button should have same top as OK button\n");
|
||||
if (rtl)
|
||||
ok(rc.left < prevRight, "Help button should be to the left of Apply button\n");
|
||||
else
|
||||
ok(rc.left > prevRight, "Help button should be to the right of Apply button\n");
|
||||
|
||||
DestroyWindow(hdlg);
|
||||
|
@ -1124,6 +1141,15 @@ static void test_CreatePropertySheetPage(void)
|
|||
|
||||
START_TEST(propsheet)
|
||||
{
|
||||
detect_locale();
|
||||
if (rtl)
|
||||
{
|
||||
/* use locale-specific RTL resources when on an RTL locale */
|
||||
/* without this, propsheets on RTL locales use English LTR resources */
|
||||
trace("RTL locale detected\n");
|
||||
SetProcessDefaultLayout(LAYOUT_RTL);
|
||||
}
|
||||
|
||||
test_title();
|
||||
test_nopage();
|
||||
test_disableowner();
|
||||
|
|
Loading…
Reference in New Issue